嵌套形式不保存嵌套模式的Rails 3
问题描述:
我试图创建一个用于创建在同一时间游戏和game_players一种形式。 我遇到的问题是,当我提交表单,本场比赛被创建,但game_players都没有。嵌套形式不保存嵌套模式的Rails 3
我环顾四周,但没有发现任何有用的答案。
博弈模型
class Game < ActiveRecord::Base
belongs_to :league
has_many :game_players, :dependent => :destroy
accepts_nested_attributes_for :game_players
attr_accessible :league_id, :game_date
validate :league_id, :presence => true
end
Game_Player型号
class GamePlayer < ActiveRecord::Base
belongs_to :game
has_many :users
validate :game_id, :presence => true
validate :user_id, :presence => true
end
游戏控制器
class GamesController < ApplicationController
def new
@title = "New Game"
@game = Game.new
3.times { @game.game_players.build }
end
def create
@game = Game.new(:league_id => cookies[:league_id])
if @game.save
flash[:success] = "Succesfully Created Game"
redirect_to League.find_by_id(cookies[:league_id])
else
@title = "New Game"
render 'new'
end
end
形式
<%= form_for @game do |f| %>
<%= f.fields_for :game_players do |builder| %>
<p>
<%= builder.label :user_id, "User" %><br />
<%= builder.text_field :user_id %><br />
</p>
<% end %>
<p><%= f.submit "Submit" %></p>
<% end %>
答
最有可能你需要传递:game_players_attributes
到attr_accessible
因为尊重。新大众分配安全