我没有使用Devise但是已经实现了一个简单的身份验证方案(基本上在这里概述http://railscasts.com/episodes/250-authentication-from-scratch),相关部分在这里:
application_controller.rb
helper_method :current_user
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
我有一个必须授权用户添加的资产列表。我正在使用回形针。用户可以has_many和资产belongs_to用户(尽管这与其分配的位置基本无关,因为我的资产模型对于不同的assetable_types是多态的)。
我应该将current_user id分配给资产?我会在模型中思考;也许我应该使用session [:user_id]来做一个default_values,但这看起来有点难看。
此外,这些是nested_attributes以及这些嵌套到的模型,目前对该用户一无所知。实际上,current_user的信息源不是当前关联的一部分。
THX
编辑1 我应该根据会话[:user_id]值创建一个用户实例,还是只将其推入?
答案 0 :(得分:1)
如果我正确理解您的问题,为什么不将用户分配给资产,无论哪个控制器首先发现资产属于用户?控制器有责任将Web请求(包括会话/当前用户)转换为适用于该模型的内容。