0
我在使用omniauth使用Twitter登錄的Rails應用程序中遇到了無路由匹配錯誤。我開始用Railscast沿着以下的應用,其中登錄Twitter的用戶在會話控制器創建這樣沒有匹配的顯示操作路由
class SessionsController < ApplicationController
def create
twitteruser = Twitteruser.from_omniauth(env["omniauth.auth"])
session[:twitteruser_id] = twitteruser.id
redirect_to twitterquestions_url, notice: "Signed in!"
end
我創建了一個表來存儲用戶喜歡這個
def change
create_table :twitterusers do |t|
t.string :provider
t.string :uid
t.string :name
t.string :image
t.timestamps
end
end
的Twitter信息
這是一個databaseentry
=> [#<Twitteruser id: 1, provider: "twitter", uid: "1121308772", name: "mytwitteraccou t", image: "http://a0.twimg.com/profile_images/3164285746/.", created_at: "2013-02-12 23:52:44", updated_at: "2013-02-12 23:52:44">]
我還創建了一個Twitterusers控制器,這樣,這樣我可以顯示用戶
class TwitterusersController < ApplicationController
def show
@twitteruser = Twitteruser.find(params[:id])
end
end
在路由文件
resources :twitterusers
基於耙路線的輸出,I創建到currentusers一個鏈接簡檔這樣的(並且還增加在視圖中show.html.erb文件)
<li>Signed in as <%= link_to "current_user.name", twitteruser_path %>!</li>
耙路線
twitterusers GET /twitterusers(.:format) twitterusers#index
POST /twitterusers(.:format) twitterusers#create
new_twitteruser GET /twitterusers/new(.:format) twitterusers#new
edit_twitteruser GET /twitterusers/:id/edit(.:format) twitterusers#edit
twitteruser GET /twitterusers/:id(.:format) twitterusers#show
PUT /twitterusers/:id(.:format) twitterusers#update
DELETE /twitterusers/:id(.:format) twitterusers#destroy
當我的錯誤,我想知道,如果它與用戶在sessions_controller創建的事實做,所以後來我創建的會話控制器
sessions_controller
def show
@twitteruser = Twitteruser.find(params[:id])
end
表演動作,創造了基於耙航路
resources :sessions
,然後會議資源,我創建了以下鏈接
,但得到了同樣的錯誤
sessions GET /sessions(.:format) sessions#index
POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
edit_session GET /sessions/:id/edit(.:format) sessions#edit
session GET /sessions/:id(.:format) sessions#show
PUT /sessions/:id(.:format) sessions#update
DELETE
目前已經在會話控制器,這些路線
match 'auth/:provider/callback', to: 'sessions#create'
match 'auth/failure', to: redirect('/')
match 'signout', to: 'sessions#destroy', as: 'signout'
有人能指出我在做什麼錯?
感謝您的幫助 – Leahcim 2013-02-15 05:46:20