gpt4 book ai didi

ruby-on-rails - rescue_from NoMethodError

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:30 25 4
gpt4 key购买 nike

在解决这个问题时遇到问题。

尝试做一个

rescue_from NoMethodError, :with => :try_some_options

但它不起作用。

编辑:为了测试,我正在做一个简单的重定向

def try_some_options
redirect_to root_url
end

编辑 2:我的 Controller 样本。按照下面的建议添加(异常(exception))。

我知道我收到错误的原因。使用 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 中 rescue_from 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

最佳答案

我刚刚在尝试为同一问题提出解决方案时阅读了您的帖子。最后我做了以下事情:

class ExampleController < ApplicationController
rescue_from Exception, :with => :render_404
...

private

def render_404(exception = nil)
logger.info "Exception, redirecting: #{exception.message}" if exception
render(:action => :index)
end
end

这对我来说效果很好。这是一个包罗万象的情况,但它可能会对你有所帮助。一切顺利。

关于ruby-on-rails - rescue_from NoMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com