Проблемы с выяснением этого.
пытается сделать
rescue_from NoMethodError, :with => :try_some_options
Но это не работает.
Редакция:
Для тестирования я делаю простой редирект
def try_some_options
redirect_to root_url
end
РЕДАКТИРОВАНИЕ 2:
Образец моего контроллера. Добавлено (исключение), как рекомендуется ниже.
Я знаю причину, по которой я получаю ошибку. Использование плагинов Authlogic и authlogic_facebook_connect. Когда пользователь создается из плагина facebook, модель «MyCar», связанная с пользователем, создается не так, как обычно, если пользователь регистрируется локально. Поскольку я обращаюсь к модели пользователя и ссылаюсь на автомобиль пользователя в разных частях сайта, я хотел бы сделать что-то похожее на то, что вы видите ниже, и в конечном итоге поместить его в мой application_controller.
class UsersController < ApplicationController
before_filter :login_required, :except => [:new, :create]
rescue_from NoMethodError, :with => :try_some_options
...
def show
store_target_location
@user = current_user
end
def create
@user = User.new(params[:user])
if @user.save
MyCar.create!(:user => @user)
flash[:notice] = "Successfully created profile."
redirect_to profile_path
else
render :action => 'new'
end
end
...
protected
def try_some_options(exception)
if logged_in? && current_user.my_car.blank?
MyCar.create!(:user => current_user)
redirect_to_target_or_default profile_path
end
end
...
end
РЕДАКТИРОВАНИЕ 3: Пока что взломал его, так как я знаю, почему появляется ошибка, но хотел бы выяснить, как спасти_от NoMethodError
class UsersController < ApplicationController
before_filter :login_required, :except => [:new, :create]
before_filter :add_car_if_missing
def add_car_if_missing
if logged_in? && current_user.my_car.blank?
MyCar.create!(:user => current_user)
end
end
end