设计:是否可以在模型中登录用户?

时间:2013-07-12 09:29:17

标签: ruby-on-rails devise

我的应用程序在模型的回调中创建了一个用户,我无法弄清楚如何在此之后无缝地签名,因为sign_in帮助程序仅在控制器中可用。

after_validation do
  return unless errors.empty?
  if create_account == "1"
    begin
      self.user ||= User.create!(...)
  rescue => e
    errors.add(:create_account, 'bla bla')
  end
end

那么如何在用户创建后(在模型中)登录?

1 个答案:

答案 0 :(得分:1)

您无法通过模型登录用户,也不想这样做。

为什么在这里使用验证回调?

如果将此逻辑的一部分移动到控制器,您可以轻松实现所需。

def MyController < ApplicationController
  def my_action
    my_instance.user ||= User.new(...)
    if my_instance.user.save
      sign_in my_instance.user
    end
  end
end