Вложенная форма не сохраняет вложенные модели Rails 3 - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь создать форму, которая создает игру и game_players одновременно.Проблема, с которой я сталкиваюсь, заключается в том, что когда я отправляю форму, игра создается, а game_players - нет.

Я посмотрел по сторонам, но не нашел ни одного полезного ответа.* Игровая модель

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 Model

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 %>

1 Ответ

0 голосов
/ 19 марта 2012

Скорее всего, вам нужно передать :game_players_attributes в attr_accessible, так как .new уважать безопасность массового назначения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...