ruby - Rails 根据 Action 隐藏表单字段

标签 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 %>
  </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 %>

但它不起作用。 我也试过像这样更改 Controller 设置:

format.html { :except => [:default_field] }

但它不起作用。

请告诉我,我应该在条件中使用什么比较? 谢谢。

最佳答案

如果您遵循正常的 Rails 约定,您将通过任务 Controller 中的 newedit 方法显示此表单。

对于新建,创建一个新的(空)任务,对于编辑,从数据库中获取现有任务。

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

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

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

关于ruby - Rails 根据 Action 隐藏表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13751064/

相关文章:

ruby-on-rails - 将 PG::Result 转换为 Active Record 模型

ruby-on-rails - 我可以在 Rails 中使用 link_to 创建链接数组吗?

ruby-on-rails - HABTM 连接表需要两个索引吗?

php - Codeigniter 3.1.0 Active Record 更新查询既不出错也不更新数据库

php - 无法弄清楚如何将 &lt;input type ="checkbox"> 转换为 PHP bool 值

python - 呈现形式 ('utf-8' 中的 Django UnicodeEncodeError )

ruby - 在 Mac 上运行 ruby​​ 实用程序时出现 GEM LOAD 错误

ruby-on-rails - 如何在 Ruby on Rails 中生成 API Key 和 Secret?

ruby-on-rails - counter_cache 可以与 has_many 一起使用吗?

ruby-on-rails-3 - Rails 3 jquery日期选择器日期未保存到数据库