尝试在我的资产模型中使用current_user.id(设计),只有current_user.id不可用。如何在我的Asset模型中使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
答案 0 :(得分:1)
您不能在模型范围内的回调链中使用current_user
。这是因为current_user
是请求 - 响应周期的属性。此外,必须在模型中使用current_user
几乎肯定意味着您的数据库设计不充分或错误。
例如在您的情况下,为什么在User
更新时尝试更新Asset
的属性?除非它们是相关的,否则这是一种代码味道。
你可以尝试几件事:
Asset
和User
之间的关联。然后,您可以在控制器中执行@asset.user = current_user
(或其他类似的操作)。