我有一个嵌套表单(在各自的模型中使用accepts_nested_attributes_for):
<%= form_for(:technician, :url => {:controller => 'pos', :action => 'create_ticket'}) do |f| %>
<%= f.fields_for :service do |s| %>
<%= s.text_field :name %>
<%= s.text_field :name %>
<%= s.text_field :name %>
<%= s.text_field :name %>
<% end %>
<% end %>
如果我只有一个s.text_field,这样可以正常工作。但是一旦我添加了额外的text_fields,它就无法正常运行。如果查看源代码,那么所有六个的id和名称都是相同的?
如何将这些参数放入数组中? [所以我可以像这样隔离它们:]
service1 = Service.named(params[:technician][:service][1][:name])
(我已经尝试过在railscasts第192集中描述的方法,但它也没有用)。
答案 0 :(得分:0)
经过数小时的反复试验,我已经攻击了一些有效的东西(但如果你知道一种更好,更有说服力的方式,请告诉我):
在视图中:
<%= form_for(:technician, :url => {:controller => 'pos', :action => 'create_ticket'}) do |f| %>
<% for @i in 1..6 do %>
<%= f.fields_for "services[#{@i}]" do |s| %>
<% end %>
<% end %>
<% end %>
控制器中的:
for i in 1..6 do
@service = Service.named(params[:technician][:services][i.to_s][:name]).first
end
确保你把我变成字符串