railscast(http://railscasts.com/episodes/235-omniauth-part-1)をフォローした後、rails3アプリでdeviseとomniauthを使用しています。
ログインできます。データベースで、sign_in_count列がインクリメントされていることがわかります。
ただし、user_signed_in?
常にfalseをcurrent_user?
返し、 。を返す場合no method error
。
この問題はrails.jsが原因であるという他の回答を見たことがありますが、私はrails.jsを使用していません。
私のコントローラーは
def create omniauth = request.env ["omniauth.auth"] authentication = Authentication.find_by_provider_and_uid(omniauth ['provider']、omniauth ['uid']) 認証の場合 sign_in_and_redirect(:user、authentication.user) elsif current_user current_user.authentications.create!(:provider => omniauth ['provider']、:uid => omniauth ['uid']) redirect_to root_url そうしないと user = User.new user.apply_omniauth(omniauth) user.save(:validate => false)の場合 sign_in(:user、user) redirect_to root_url そうしないと flash [:notice]="アカウントの作成中にエラーが発生しました" redirect_to root_url 終わり 終わり 終わり