У меня есть приложение rails 3.1 на Heroku, я постоянно получаю ошибку 500, которую не могу воссоздать в dev.
Когда я пытаюсь выполнить действие обновления на одном из моих контроллеров, я получаю 500. Я получаю следующее из логов heroku -
2011-12-05T13:52:35+00:00 app[web.1]: Completed 500 Internal Server Error in 15ms
2011-12-05T13:52:35+00:00 app[web.1]:
2011-12-05T13:52:35+00:00 app[web.1]: NoMethodError (undefined method `updated?' for #<ActiveRecord::Associations::HasOneAssociation:0x00000004058800>):
2011-12-05T13:52:35+00:00 app[web.1]: app/controllers/cars_controller.rb:81:in `block in update'
2011-12-05T13:52:35+00:00 app[web.1]: app/controllers/cars_controller.rb:80:in `update'
Действие обновления на контроллере моего автомобиля -
def update
@car = Car.find_by_url_identifier(params[:id])
respond_to do |format| #**line 80**
if @car.update_attributes(params[:car]) #**line 81**
CarMailer.gift_confirmation(@car).deliver
format.html { redirect_to(thanks_path(@car.url_identifier)) }
else
format.html { render action: "edit" }
end
end
end
Размещаемые параметры -
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"RTXCVvdsKQHc8CxHLeYS9WuztcrI1b4H8SHsdfsKWu+Iz4=",
"car"=>{"name"=>"dgdfsdfsd",
"email"=>"test@test.com",
"recipient_attributes"=>{"name"=>"fdsfsd",
"address1"=>"sdfsdfdsf",
"address2"=>"dsfdsfsdf",
"city"=>"sdfdsf",
"postcode"=>"sdfds"},
"gift_id"=>"2",
"message"=>"fsdfsdfdsf",
"terms"=>"1"},
"commit"=>"submit",
"id"=>"test5"}
Моя модель автомобиля выглядит следующим образом -
class Car < ActiveRecord::Base
validates :name, :presence =>true, :on => :update
validates :url_identifier, :presence =>true, :on => :create
has_one :recipient
belongs_to :gift
accepts_nested_attributes_for :recipient
accepts_nested_attributes_for :gift
def to_param
self.url_identifier
end
end
Есть идеи, как я могу это исправить?Помимо просмотра логов herokus, как еще я могу отладить это?
Как-то странно приложение работает какое-то время, если я перезагружаю heroku