Ruby on rails Rails 3:如何在父模型窗体上接受子模型的自然关键点

Ruby on rails Rails 3:如何在父模型窗体上接受子模型的自然关键点,ruby-on-rails,Ruby On Rails,我有以下代码: # 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/lo

我有以下代码:

# 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>
...
#app/models/part.rb
类部件



...

表单应该编辑或创建批次。该表格用于接受现有零件的零件号,并将零件id保存到批次中。组的字段\u没有为我呈现。我相信这很容易。这里的情况是零件号是一个自然键,而Rails使用代理键。我可以使用选择列表,但我需要接受键盘输入。我最终需要为表单连接ajax。你的想法是什么?

你缺少一个等号


在Rails3中,助手通常返回值,而不是直接打印出来。因此,在发布表单时使用是否应根据零件号查找零件,并将其分配给批次模型,然后保存?或者是我用什么东西来装饰模型,从而隐式地做到这一点?你能在config/routes.rb中发布一个单独的问题并包括你的控制器逻辑以及任何相关的路由吗?现在是脚手架代码。我觉得重新发布这个问题会伤害杰夫对stackoverflow应该如何工作的感情。我最初的一段问题应该暗示我在这里要做什么。我提供了上面的代码来演示我正在使用的东西,我试图理解连接嵌套字段的总体概念。很抱歉,我并不想太难。感谢上面的语法更正。除了上面的语法修复之外,我还向模型添加了一个虚拟属性,从而解决了我的问题。