引用问题#2013421,我有以下RoR模型:
class Game < ActiveRecord::Base
has_many :piles
end
class Pile < ActiveRecord::Base
belongs_to :game
end
为了论证,假设Game
具有属性name
,Pile
具有属性type
,两者都string
。每场比赛只有10次。
我想要一个HTML表单来创建一个新游戏,类似于ruby script\generate scaffold
生成的游戏;就像:
<h1>New game</h1>
<% form_for(@game) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', games_path %>
如何为表格添加字段,以便为10个桩中的每一个读取Pile.type
字段的值?
答案 0 :(得分:3)
您可以这样做:
模型:
class Game < ActiveRecord::Base
has_many :piles
accepts_nested_attributes_for :piles
end
在您的表单中:
<% f.fields_for :piles do |pile_form| %>
<%= pile_form.label :your_attribute %>
<%= pile_form.text_field :your_attribute %>
<% end %>
考虑ActiveRecord保留'type'method-keyword-column以实现多态关联