2012-04-14 17 views
0

使用电池和设计,试图访问一个设计的时候:当前_#{}映射(如CURRENT_USER)我收到请求作为未定义的错误:Rails的细胞与设计和访问请求和会话

::的ActionView模板::错误(未定义的局部变量或方法`请求'为#)

我已经包含Devise Helpers方法,但它们访问Cell :: Base中不存在的Web上下文请求。我的手机控制器看起来是这样的:

class ActivityCell < Cell::Base 
    include Devise::Controllers::Helpers 
    helper_method :current_user 

    def display 
    puts current_user.id # <-- Error starts here 
    ... 
    end 
end 

我使用的RubyMine,当我调试的情况,非正常细胞内控制,自我有请求。在Cells :: Base Controller中,请求不在。

我发现这个代码片段here应该显示如何从单元控制器访问请求和其他重要的位,但它有点不清楚如何简单地让设计在单元控制器中按预期工作。例如Cells :: Base提出请求和其他任何设计需求

我认为我的Cells版本可能有问题,但我使用的是3.8.3。 (最新)我认为这是因为我也没有“会议”可用here项目#4“控制器应该是苗条的”。我无法从Cell :: Base Controller访问会话。我不知道这是否仅适用于Ruby 2.x,而现在只适用于3.x,这是不可能的。 (文章没有提到版本,但我看到评论2010年底发布)

class CartCell < Cell::Base 
    def display 
    @user = session[:user] 

    render 
end 

除了这个问题,我超级挖细胞。我将它用于独立的小部件,它使用jQuery AJAX从它们中抽出JSON用于绘图目的。

任何帮助,将不胜感激。我需要了解当前登录的Devise用户的详细信息!

回答

1

正如您已经指出的那样;-)只是从Cell :: Rails派生单元,一切都会正常工作。

+0

是的。切换到单元:: Rails修复了设计需求:会话。我会给你答案,但请注意,如果你想在routes.rb中使用Cell :: Base.render_cell_for,你会得到参数错误,这是我的错,但我没有提出它这个问题,所以我不会拖延这一点。 https://github.com/apotonick/cells/issues/106 – garlicman 2012-04-18 23:37:24