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

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

你可以坚持使用吗? 方法,以确保它不是一个将被插入的新记录,甚至使用new_record? 如果记录未在数据库“新记录”中持久存在,则返回true的方法。 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 

只需填写您的表格:

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

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

它可以通过多种方式完成。

我通常喜欢这样做

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