2012-05-03 48 views
0

我以前通過軌道控制的創建方法,使用加入我的當前用戶ID到我的曲目設置上nested_attributes:設定值先前在控制器通過模型

@track.user_id = current_user.id 

這工作得很好,不過,我現在已經嵌套我的發佈模型中的曲目,我試圖通過我的版本模型回調做同樣的使用:

before_save :add_user_to_tracks 
before_update :add_user_to_tracks 

def add_user_to_tracks 
    tracks.each { |t| t.user_id = self.current_user.id} 
end 

我得到一個未定義的方法`CURRENT_USER」錯誤,但是,我知道這是非常接近的工作如果我te st使用「99」而不是self.current_user.id它將99添加到數據庫中每個軌道的user_id。

爲什麼我不能訪問任何想法current_user.id

回答

1

我想你應該從你的形式使用隱藏字段發送USER_ID。

如果在發佈模型中沒有user_id。您可以將其創建爲虛擬屬性。

class Release < ActiveRecord::Base 
    attr_accessor :user_id 

    before_save :add_user_to_tracks 
    before_update :add_user_to_tracks 

    def add_user_to_tracks 
    tracks.each { |t| t.user_id = user_id} 
    end 
end 
+0

User_id來自Devise,所以我希望它可以在全球範圍內使用?我會盡快給你的建議。謝謝! – Raoot

+0

你只能在控制器和視圖層上使用current_user helper,而不是在型號 – Suborx

+0

中啊,那就是了! – Raoot

相關問題