我正在使用Ryan Bates在Railscasts Episode 197中演示的技术,以便随着用户向表单添加更多项目,表单可以"增长"。 这一切都很好用,但我需要在提供初始项目作为 URL 的一部分的同时调用页面。
由于 Ryan 的技术让用户单击添加按钮来调用 jQuery 函数以将字段添加到表单中,因此我有点困惑如何将信息从控制器传递到 jQuery 以调用和预填充这些新字段之一。
我有没有想错?
是的,你想错了;-)
以这个表格为例:
<% form_for @survey do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<% f.fields_for :questions do |builder| %>
<%= render 'question_fields', :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add Question", f, :questions %>
<p><%= f.submit "Submit" %></p>
<% end %>
fields_for
是一个迭代器;所以你的控制器所要做的就是:
@survey.questions.build(:content => "Prepared question")
它将显示在页面上。
像往常一样在 Rails 视图中生成文本字段。