繁体   English   中英

Rails 3:如何在父模型形式上接受子模型的自然键

[英]Rails 3: How to accept natural key of child model on parent model form

我有以下代码:

# 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。 你怎么看?

您缺少等号

<%= f.fields_for :part do |p| %>

在Rails 3中,助手通常返回值,而不是直接打印出来。 因此,请使用<%=而不是<%

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM