ruby-on-rails – Rails中的全局控制器变量
发布时间:2020-12-17 01:27:08 所属栏目:百科 来源:网络整理
导读:我有一个ChatController和一个@user变量.在主页面上,我显示@ user.name.我也有破坏和创建与ajax一起使用的方法,所以当我从聊天中删除一条消息时,@ user变为零.为了防止在nil对象上调用name的问题,我可以在每个方法中添加@ user = User.find_by_id(:user_id)
我有一个ChatController和一个@user变量.在主页面上,我显示@ user.name.我也有破坏和创建与ajax一起使用的方法,所以当我从聊天中删除一条消息时,@ user变为零.为了防止在nil对象上调用name的问题,我可以在每个方法中添加@ user = User.find_by_id(:user_id).但如果我有很多方法,这就变得乏味了.我可以声明@ user = User.find_by_id(:user_id)一次并干掉我的代码吗?
解决方法
是的,这是在before_filter(
Documentation)中完成的.
就像是: class ChatController < ActionController::Base before_filter :find_user private def find_user @user ||= User.find_by_id(params[:user_id]) end end 您也可以考虑使用Inherited Resources为您自动执行此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |