Несмотря на то, что я почти уверен, что знаю, почему возникает эта ошибка, я, похоже, не знаю, почему или как мой сеанс превышает лимит 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 КБ ??Возможно ли, что объект турнира, который я прохожу через переменную flash, также содержит все ассоциации?
Вот дамп моей сессии, как только я получу ошибку.
Надеюсь, этого достаточночтобы выручить меня:)
Спасибо
Дамп сеанса
_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"