rails设置表单默认值&&隐藏表单

简介: 需求:用户没有登录时游客评论,需要游客输入用户名和评论内容;当用户已登录时,读取session获取用户名,隐藏输入用户名的表达,用户直接发表评论。

需求:

用户没有登录时游客评论,需要游客输入用户名和评论内容;当用户已登录时,读取session获取用户名,隐藏输入用户名的表达,用户直接发表评论。
这里写图片描述
用户评论代码:

<h2>Add a comment:</h2>

<%= form_for([@book, @book.comments.build]) do |f| %>
  <p>
     <%= f.label :commenter %><br>
     <%= f.text_field :commenter %>
  </p>
  <p>
    <%= f.label :body %><br>
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>
这里写代码片

1.设置表单默认值

设置表达默认值参考了这篇博客: rails form 如何设置默认值

因此用户登录后设置默认值:

<%= f.text_field :commenter,:value =>session['loginedUser']  %></font>

2.隐藏表单

f.text_field改成f.hidden_field

3. 完整代码

<h2>Add a comment:</h2>
<%= form_for([@book, @book.comments.build]) do |f| %>
  <p>
    <% if @user!=nil %>
      <%= f.hidden_field :commenter,:value =>session['loginedUser']  %>
    <% else %>
     <%= f.label :commenter %><br>
      <%= f.text_field :commenter %> 
    <% end %>

  </p>
  <p>
    <%= f.label :body %><br>
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>

目录
相关文章
|
存储 PHP 数据库
Laravel-admin实现时间戳和自定义日期的自动转换
今天介绍我在使用laravel-admin遇到的坑,我数据库存储的时间是int类型的时间戳,需要在管理后台展示日期怎么优雅的实现呢?
1386 0
Laravel-admin实现时间戳和自定义日期的自动转换
|
2月前
|
前端开发 容器
表单的默认样式
【10月更文挑战第17天】
22 1
|
PHP
【技术分享】select下拉框option默认选中(php模板渲染)
【技术分享】select下拉框option默认选中(php模板渲染)
190 0
|
PHP 数据库
Laravel模型更改时间戳列名称
Laravel模型更改时间戳列名称
119 0
【PhpStorm】取消参数前的类型显示
【PhpStorm】取消参数前的类型显示
176 0
【PhpStorm】取消参数前的类型显示
|
前端开发
如何基于Joomla默认表单组件创建联系表单
本教程将向您展示如何基于Joomla默认组件创建联系人表单。我们将向您展示以下的方法:
如何基于Joomla默认表单组件创建联系表单
Confluence 6 属性的一个示例
下面是有关 Confluence 页面被调用的前几行的访问概述。 [344ms] - /display/ds/Confluence+Overview [313ms] - SiteMesh: parsePage: h...
1011 0
Confluence 6 为翻译显示用户界面的键(Key)名称
这个功能在你使用 Confluence 用户界面为 Confluence 创建翻译的时候会非常有用。当你打开主面板的时候,在你访问的 URL 的最后面添加下面的文字:can add the following actio...
957 0