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