2011-04-14 33 views
0

我在routes.rb中下面的代碼:爲什麼Rails 3中的這條路徑的自定義操作不起作用? (?更好的方法)

match 'users/linkedin' => "users#linkedin", :as => :register_linkedin 

我意料的是,當我有一個redirect_to的register_linkedin_url,我將被重定向到domain.com/users/linkedin。

這應該導致控制器用戶執行操作linkedin。

這是我得到的日誌:

重定向到28333ms

找到 http://localhost:3000/users/linkedin 完成302入門使用 「/用戶/ LinkedIn」 爲 127.0.0.1在週四4月14日01:12:01 -0700 2011處理 UsersController#顯示爲HTML
參數:{「id」=>「linkedin」} 已完成94ms

這就是我得到了 '耙路線':

register_linkedin
/users/linkedin(.:format)
{:動作=> 「LinkedIn」, :控制器=>」用戶「}

因此,路線工作不正常。我如何解決這個問題?

回答

1

那是因爲你很可能使用你的路由

如果你想讓你的 show行動,並使用LinkedIn的部分也是如此,前 resources :users

把你的自定義路由這樣做

resources :users,路由將匹配linkedin如果請求是特定的(用戶/ LinkedIn),如果沒有,將繼續搜索,下一個會是當然的show

閱讀更多關於一般here路由

+0

嗨,我該怎麼辦?我仍然使用「顯示」用戶 - 這只是創建一個新用戶的定製版本,不能與設計 – Angela 2011-04-14 08:26:38

+0

我編輯我的答案,現在應該是更清晰 – 2011-04-14 10:56:55

+0

好吧,這是它是 - - 但我意識到,如果可以的話,我應該以某種方式找到一種方法來使用「新」動作。 – Angela 2011-04-19 15:43:07

0

路由按其定義的順序進行匹配。把更具體的路線比不太具體的路線更高。

對於您的情況,只要確定您在定義更通用的resources :users路線之前,爲users/linkedin定義了自定義路線即可。

相關問題