连接facebook rails后渲染current_page

时间:2013-02-01 12:33:17

标签: ruby-on-rails facebook ruby-on-rails-3.2 omniauth

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

我在任何localhost:3000/blogs/:permalink

上放了一个连接w / facebook的链接 当用户点击localhost:3000/blogs/rails上的w / facebook连接并成功呈现localhost:3000/blogs/rails

时,

如何呈现current_page

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}"

1 个答案:

答案 0 :(得分: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