0
試圖在我的資產模型中使用current_user.id(設計),只有current_user.id不可用。我如何在我的資產模型中使current_user.id可用? (通過用戶資產模型不知何故?)新手:如何通過用戶自定義方法的資產模型?
after_save :set_photo
def set_photo
user = User.find_by_id(1)
# user = User.find_by_id(current_user.id) <-- should be this
user.has_photo = true
user.save
end
您無法訪問模型中的當前用戶,因爲它是由devise提供的幫助方法。如果你google'在模型中使用current_user',你會發現一個實現多線程的解決方案,但我個人不這樣做,特別是如果我使用ActiveRecord,因爲它可能會與AR的連接池發生衝突。 – prasvin 2012-03-05 10:12:45
順便說一下,你能詳細說明你正在嘗試做什麼。我可以理解,如果保存了任何資產對象,您希望爲當前用戶設置「has_photo」字段爲true。你使用什麼資產,是否與用戶相關聯?如果你想要一個簡單直接的解決方案,那麼在'assets#create'和'assets#update'中,你可以簡單地更新'current_user'的has_photo'字段(如果你願意,你可以在User中創建一個實例方法)或更新成功。 – prasvin 2012-03-05 10:19:27
資產屬於用戶是,也許它更好地使用控制器創建和更新操作,資產是載波附加圖像,然後只 - 如果資產被刪除,如何檢測更新操作? thx – Rubytastic 2012-03-05 11:13:52