ruby-on-rails-3 - 错误率: why am I getting undefined method 'hidden_field_tag' ?

标签 ruby-on-rails-3 form-helpers

现在我连续有两个表格

<section>
        <%= render 'shared/micropost_form_purchase' %>
        <%= render 'shared/micropost_form_sale' %>
      </section>

然后是_micropost_form_purchase.html.erb

<%= form_for(@micropost) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= f.hidden_field_tag :type, :value => "purchase" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

对于 _micropost_form_sale.html.erb 我有

<%= form_for(@micropost, :html => { :id => "sale" }) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= f.hidden_field_tag :type, :value => "sale" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

所以我希望第一个微帖子自动成为购买微帖子(我在微帖子数据库中有一个名为 type 的列,它是我想要描述销售或购买的字符串),而对于第二个微帖子,我希望它成为成为销售微博。我使用的是hidden_​​field_tag,因为我认为您不必在 Controller 中定义它,但我错了吗? hidden_​​field 更合适吗?如何使用hidden_​​field_tag?

最佳答案

您可以使用:

<%= f.hidden_field :type, :value => "sale" %>

或者:

<%= hidden_field_tag 'micropost[type]', "sale" %>

但不是:

<%= f.hidden_field_tag :type, :value => "sale" %>

使用f.hidden_​​field将使用变量@micropost中的值,而hidden_​​field_tag不会使用该值。

关于ruby-on-rails-3 - 错误率: why am I getting undefined method 'hidden_field_tag' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415544/

相关文章:

ruby-on-rails - 新安装的 Rails + Devise 总是得到 401 Unauthorized

javascript - 选择不转到 URL 栏的导航选项

ruby-on-rails - Rails 应用程序所需的最少文件数量是多少?

Clojure:Hiccup 表单处理程序

ruby-on-rails - Ruby on Rails 时间助手

jquery - 如果 Rails 中的 text_field_tag 表单助手被禁用,它不会提交吗?

mysql - Rails 编辑迁移文件以包含索引吗?

ruby-on-rails - 有没有办法在辅助方法中缓存字符串片段?

ruby-on-rails - 如何在 Rails 的 date_select 中同时使用空白日期和默认日期?

php - CakePHP:防止 URL 中的 GET 表单字段