如果动作是编辑,则不显示表单字段

时间:2014-11-08 09:50:56

标签: ruby-on-rails ruby-on-rails-4

我有rails表单,使用字段列表呈现部分以创建新用户。那些我也用来渲染编辑表单的字段。我想知道是否有可能不在编辑表单上显示特定字段(即部门),因为我不想让用户选择更改部门?

4 个答案:

答案 0 :(得分:10)

您可以使用持久化?方法确保它不是将要插入的新记录,甚至使用 new_record?方法,如果记录是没有在您的数据库中保留“新记录”。 ex ::

<%= f.text_field :department if @user.persisted? %>
 or 
<%= f.text_field :department unless @user.new_record? %>

另一种方法是检查操作本身,如果你从不同的视图渲染部分并且你想将它限制到特定的控制器,它也可以让你控制控制器,这些存储在::

params[:controller] -->> contains the name of the controller ex. UserController  that you just hit on
params[:action] -->> contains the action name ex. new or edit

答案 1 :(得分:2)

只需填写表格:

<%= f.text_field :department unless @user.new_record? %>

答案 2 :(得分:1)

如果编辑了params [:action],则不显示该字段可能是使用display none

答案 3 :(得分:1)

可以通过多种方式完成。

我通常会这样做

if !@user.new_record?
 # department field.
end