У меня есть следующее в моем обратном вызове Omniauth:
@user = User.find_for_linked_in_oauth(env["omniauth.auth"], current_user)
Я ожидаю, что в любом случае получить объект пользователя.Ее метод пользователя.Сейчас я тестирую случай, когда не может найти существующего пользователя, поскольку он еще не создан:
def self.find_for_linked_in_oauth(omniauth_hash, signed_in_resource=nil)
debugger
#omniauth_hash is a hash passed in from env["omniauth_hash"] by callback controller
linkedin_uid = omniauth_hash['uid']
debugger
if user = User.find_by_linkedin_uid(linkedin_uid)
debugger
user
else # Create an user with a stub password.
#redirect to a page to ask for an email address and display information
#User.create!(:email => "token@email.com", :linkedin_uid => linkedin_uid, :password => Devise.friendly_token[0,20])
user = User.new
user.first_name = omniauth_hash['user_info']['first_name']
user.last_name = omniauth_hash['user_info']['last_name']
user.linkedin_uid = linkedin_uid
user
debugger
end
В настоящее время с помощью отладчика я возвращаю '1'в качестве значения для p @ user.
Я хочу, чтобы вновь созданный объект пользователя был передан обратно, чтобы я мог затем попросить текущего пользователя добавить дополнительную информацию перед его сохранением.
Почему яне получить вновь созданного пользователя в качестве значения @user?