我有以下代码:
# app/models/part.rb
class Part < ActiveRecord::Base
has_many :lots
# attributes: id, number
end
#app/models/lot.rb
class Lot < ActiveRecord::Base
belongs_to :part
# attributes: id, number, part_id, quantity
end
# app/views/lots/_form.html.erb
...
<p>
<%= f.label :number %><br />
<%= f.text_field :number %>
</p>
<p>
<% f.fields_for :part do |p| %>
<%= p.label :number, 'Part' %><br />
<%= p.text_field :number %>
<% end %>
</p>
<p>
<%= f.label :quantity %><br />
<%= f.text_field :quantity %>
</p>
...
表单应该编辑或创建批量。表单接受现有零件的零件号,并将part_id保存到批次中。 fields_for组不会为我渲染。我确信这很容易。这里发生的是部件号是一个自然键,但Rails使用代理键。我可以使用选择列表,但我需要接受键盘输入。我最终需要为表单连接ajax。你有什么想法?
答案 0 :(得分:0)
你错过了一个等号
<%= f.fields_for :part do |p| %>
在Rails 3中,助手通常返回值,而不是直接打印出来。因此,请使用&lt;%=而不是&lt;%