Я не использую 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, а актив принадлежит_ пользователю (хотя это, по сути, не имеет отношения к назначению, так как моя модель активов полиморфна для различных типов_собрабельных)).
Где я должен назначить идентификатор current_user для актива? Я бы подумал в модели; может быть, я должен сделать значения по умолчанию с использованием сеанса [: user_id], но это выглядит довольно уродливо.
Кроме того, это nested_attributes и модели, в которые они вложены, в настоящее время ничего не знают о пользователе. Так что на самом деле источник информации для current_user не является частью текущей ассоциации.
thx
edit 1, я должен создать экземпляр пользователя на основе сеанса [: user_id] значение или просто вставить его?