0

我的应用程序在模型的回调中创建了一个用户,之后我无法弄清楚如何无缝地让他登录,因为 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

结尾

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

4

1 回答 1

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
于 2013-07-12T09:55:31.353 回答