考虑以下几点:
楷模
class Location < ActiveRecord::Base
has_many :games
end
class Game < ActiveRecord::Base
validates_presence_of :sport_type
has_one :location
accepts_nested_attributes_for :location
end
调节器
def new
@game = Game.new
end
查看(表)
<%= simple_form_for @game do |f| %>
<%= f.input :sport_type %>
<%= f.input :description %>
<%= f.simple_fields_for :location do |location_form| %>
<%= location_form.input :city %>
<% end %>
<%= f.button :submit %>
<% end %>
为什么位置字段(市)都没有出现在形式? 我没有得到任何错误。 我在想什么?
好吧,我不知道如果你正在寻找接现有位置与名利相关联,或者如果您希望为每个游戏一个新的位置。
假设它是第一种方案:
让游戏属于一个位置更改游戏模型的关联。
class Game < ActiveRecord::Base
validates_presence_of :sport_type
belongs_to :location
accepts_nested_attributes_for :location
end
您可能需要通过迁移LOCATION_ID字段添加到您的游戏模式。
然后,而不是一个嵌套的表格,你只是要有所改变的博弈模型本身的位置字段。
如果是第二种情况下,你要建立每场比赛,那么你将需要改变你的模型如下新的位置:
class Location < ActiveRecord::Base
belongs_to :game
end
class Game < ActiveRecord::Base
validates_presence_of :sport_type
has_one :location
accepts_nested_attributes_for :location
end
您将需要一个game_id字段添加到位置的模型,如果你不已经有一个。
然后在你的控制器,你需要为了得到嵌套表格字段显示建一个位置:
def new
@game = Game.new
@location = @game.build_location
end