【问题标题】:Rails 3 helper method available in model模型中可用的 Rails 3 辅助方法
【发布时间】:2011-07-28 08:17:46
【问题描述】:

我正在将一个应用程序升级到 Rails 3。我们有一个如下所示的应用程序控制器:

class ApplicationController < ActionController::Base
     helper_method :current_user

     def current_user
       @current_user ||= User.find(session[:user_id]) if session[:user_id]
     end

因为我们定义了“helper_method”,所以所有视图都可以使用“current_user”。它对控制器可用,因为它们都继承自 ApplicationController 类。

但是,当我们在 2.3.8 上时,可以通过模型访问“current_user”,但现在不行。有没有办法让模型暴露出来?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    我可以建议将current_user 移动到像UserHelper 这样的助手中,然后您可以使用include UserHelper 将其包含在您的模型中。

    您还必须在 ApplicationController 中添加 include UserHelper,但 helper :user 也会像往常一样将其包含在您的视图中。

    【讨论】:

    • 当访问模型文件时,这会导致我出现stack level too deep 错误。可能不适用于 rails 3.2(我尝试过使用 3.2.3 和 3.2.8)。
    • 这里也一样……有什么办法吗?
    • 听起来您正在执行一些递归调用,使其陷入无限循环。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    相关资源
    最近更新 更多