Несмотря на то, что я уверен, что знаю, почему эта ошибка возникает, я, похоже, не знаю, почему и как моя сессия превышает предел 4 КБ...
Мое приложение работало нормально, но как только я сознательно начал добавлять ошибки, чтобы проверить, катились ли мои транзакции, я начал получать эту ошибку.
Чтобы дать некоторый фон, я занят кодированием турнирного приложения, которое (в этом разделе) создаст турнир, а затем добавит некоторые турнирные ножки на основе количества команд, а также заполнит турнир некоторыми призрачными светильниками "когда ноги созданы".
Флеш [: турнир] работал правильно раньше; используя объект турнира, у меня есть доступ к любым ошибкам проверки AR, а также данные, которые были введены на предыдущей странице, чтобы создать турнир.
TournamentController.rb
begin
<other code>
Tournament.transaction do
tournament.save!
Tournament.generate_legs tournament
Tournament.generate_ghost_fixtures tournament
end
flash[:notice] = "Tournament created!"
redirect_to :action => :index
rescue Exception => e
flash[:tournament] = tournament
redirect_to :action => :new, :notice => "There was an error!"
end
Tournament.rb
self.generate_ghost_fixtures(tournament)
<other code>
#Generate the ghost fixtures
#tournament_legs is a has_many association
tournament_legs_array = tournament.tournament_legs
tournament_legs_array.each do |leg|
number_of_fixtures = matches[leg.leg_code]
#For the first round of a 32 team tournament, this block will run 16 times to create the matches
number_of_fixtures.times do |n|
Fixture.creatse!(:tournament_leg_id => leg.id, :match_code => "#{leg.leg_code}-#{n+1}")
end
end
end
Я ничего не могу сделать, кроме размышлений о том, почему моя переменная сеанса превышает 4 Кбайт? Возможно ли, что объект турнира, проходящий через переменную вспышки, содержит все ассоциации?
Вот дамп моей сессии, как только я получу ошибку.
Надеюсь, этого достаточно, чтобы помочь мне:)
Спасибо
Сброс сеанса
_csrf_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
flash: {:tournament=>#<Tournament id: nil, tournament_name: "asd", tournament_description: "asdasd", game_id: 1, number_of_teams: 16, start_date: "2011-04-30 00:00:00", tournament_style: "single elimination", tournament_status: "Drafting", active: true, created_at: "2011-04-30 10:07:28", updated_at: "2011-04-30 10:07:28">}
player_id: 1
session_id: "4e5119cbaee3d5d09111f49cf47aa8fa"