2012-04-14 51 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