1

我有博客应用程序,如果已经登录到 facebook,用户可以在博客上发表评论,我正在使用omniaut-facebook gem。

我在任何地方都放了一个带有 facebook 的链接localhost:3000/blogs/:permalink

当用户单击链接连接 w/facebooklocalhost:3000/blogs/rails并成功然后渲染时如何渲染 current_pagelocalhost:3000/blogs/rails

class User::SessionsController < ApplicationController
 def create
    user = User.from_omniauth(env["omniauth.auth"])
    session[:user_id] = user.id
    render "localhost:3000/blogs/:permalink"
    end

end

我该怎么做?请帮我..

感谢谁关闭了我的问题..

好的问题解决了

origin = request.env['omniauth.origin']
redirect_to "#{origin}"
4

1 回答 1

2

首先,您需要添加一些路由来处理 OmniAuth 使用的路径。

/config/routes.rb

  match 'auth/:provider/callback', to: 'users/sessions#create'
  match 'auth/failure', to: redirect('/')
  match 'signout', to: 'users/sessions#destroy', as: 'signout'

当 Facebook 现在重定向回您的应用程序时,它将在 SessionsController 中查找创建操作。

/app/controllers/user/sessions_controller.rb

class User::SessionsController < ApplicationController
  def create
    user = User.from_omniauth(env["omniauth.auth"])
    session[:user_id] = user.id
  end
end
于 2013-02-01T12:50:53.397 回答