通过form_for中的text_field_tag传递额外的参数

时间:2013-12-23 09:14:39

标签: ruby-on-rails

我在使用rails 3上的表单时遇到了麻烦。

我想做的是:

我想传递一个额外的参数来决定你想要做多少个构建 到下一个表格。我试图通过text_field_tag传递值,但我无法得到它 在控制器方面。

这就是我所做的:

型号:

  class Story < ActiveRecord::Base
    attr_accessible :resume,
                 :title,
                 :prelude,
                 :chapter_numbers

    attr_accessor :chapter_numbers
    # etc etc etc

  end

查看:

<%= simple_form_for(@story) do |f| %>

    <div class="field">
      <%= f.input :prelude, as: :text, input_html: { rows: 10, style: 'width: 100%' } %>
    </div>
    <div class="field">
      <%= text_field_tag :chapter_numbers %>
    </div>
<% end %>

额外的参数是:chapter_numbers,我想在控制器中捕获 params [:chapter_numbers],但它不起作用。试图将其添加为虚拟属性(不知道是否有必要)

提前致谢!

1 个答案:

答案 0 :(得分:2)

text_field_tag是一个独立字段,不会在您的参数中发送


text_field_tagtext_field不同

您需要使用f.text_field,因为这会将所需的参数发送到您的控制器,如下所示:

<%= f.text_field :chapter_numbers %>

或在您的情况下(使用simple form):

<%= f.input :chapter_numbers, as: :text  %>

Good resource here about this