Ruby Rails基于操作隐藏表单字段

Ruby Rails基于操作隐藏表单字段,ruby,ruby-on-rails-3,forms,Ruby,Ruby On Rails 3,Forms,我正在制作一个表单,它将有几个字段,其中一个应该有默认值,如果正在创建资源,则默认值不可见。但如果正在编辑该字段,则应显示该字段。所以我试着这样做: <%= form_for(@task) do |f| %> <div class="field" id="v_field"> <%= f.label :v_field, "Always visible field." %> <%= f.text_field :status %>

我正在制作一个表单,它将有几个字段,其中一个应该有默认值,如果正在创建资源,则默认值不可见。但如果正在编辑该字段,则应显示该字段。所以我试着这样做:

<%= form_for(@task) do |f| %>
    <div class="field" id="v_field">
    <%= f.label :v_field, "Always visible field." %>
    <%= f.text_field :status %>
  </div>
  <% if params[:action] != "new" %>
    <div class="field" id="default_field">
    <%= f.label :default_field, "Default field (should be invisible for new resources only)." %>
    <%= f.text_field :status %>
  </div>
  <% end
<% end %>
format.html { :except => [:default_field] }
但它不起作用

请告诉我,在这种情况下我应该使用什么比较?
谢谢。

如果您遵循正常的Rails惯例,您将通过任务控制器中的
new
edit
方法显示此表单

对于new,将创建一个新(空)任务,对于edit,将从数据库中获取一个现有任务

一个简单的测试就是看看任务是否有
id

<% if @task.id %>
  ...
<% end %>

...

您最好查看您操作的对象的状态,而不是用户为达到该状态而采取的操作。

简单但天才的解决方案。非常感谢你。我应该猜到我自己--