加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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为您自动执行此操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读