2017-09-13 79 views
0

我在rails上得到這個錯誤。我製作了一個名爲Style的腳手架,它有一個標題和一個描述(字符串和文本),一個用戶會話和紅寶石寶石設計以及一個叫做類別的模型,我用add_category_id_to_styles添加了樣式。 我改變了StylesController中的NoMethodError#新的未定義方法`樣式'爲零:NilClass

def new 
@style = Style.new 
end 

def new 
@style = current_user.styles.build 
end 

在樣式控制器,現在它給我的無未定義的方法「風格」:NillClass。你們有沒有人知道爲什麼給我這個錯誤?

+0

current_user將爲空,直到您登錄。 –

+0

我應該做一個條件嗎?謝謝 – marcos

+0

在這種情況下,current_user爲空。這意味着你沒有登錄。是的,你可以檢查'如果current_user.present?' –

回答

0

Devise爲您提供方法#user_signed_in?來檢查當前用戶是否登錄。如果是,那麼您有權訪問#current_user。所以,你可以有:

def new 
    @style = user_signed_in? ? current_user.styles.build : Style.new 
end 

當然你也可以檢查current_user.present?直接太多,但我認爲#user_signed_in?傳達的意圖更好。

相關問題