2013-02-01 63 views
1

我有博客應用程序,如果已經登錄,用戶可以在博客上發表評論與facebook連接,我正在使用omniaut-facebook gem。在與facebook連接後渲染current_page軌道

我把一個鏈接連接瓦特/ Facebook的任何localhost:3000/blogs/:permalink

如何呈現CURRENT_PAGE當用戶點擊鏈接連接瓦特/的Facebook上localhost:3000/blogs/rails併成功然後渲染localhost: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 

哪能做它? 請幫助我..

感謝誰已經關閉我quetions ..

確定問題解決

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

我不知道你在問什麼。你不是在說什麼不行。你不是說你想如何工作,但它沒有做到。 –

+0

如何渲染current_page當用戶點擊鏈接在'localhost:3000/blogs/rails'上連接w/facebook併成功,然後呈現'localhost:3000/blogs/rails' – GeekToL

+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 
+0

我以前做過,如何回到'localhost:3000/blogs /:permalink' – GeekToL

+1

運行'rake routes'檢查'/ blogs /:permalink'的路徑,然後使用redirect_to。可能如果你的路徑在運行'rake routes'後是'blog_path',那麼只需'redirect_to blog_path(params [:permalink])' –

+0

':permalink => nil' 謝謝@saurabh,分享他的知識。 – GeekToL