2011-09-16 35 views
0

在安裝Devise之前,我有一個現有的用戶模型,因此我按照說明here設計路線的問題 - 查看頁面中的錯誤

我甚至生成了設計視圖。但是,當我在我的本地主機,並輸入本地主機:3000 /用戶/ sign_in或任何其他路線可通過設計,這是行不通的。

而且,我現有的REST風格的路線,我使用了

resources :users 

不再可用,除非我有兩個用戶:

devise_for :users 
resources :users 

,但我認爲我應該刪除該資源:用戶在我的路線文件中有devise_for:users行時。

這是怎麼回事?有人有什麼主意嗎?

編輯

的問題是,當我去到的用戶/密碼,它告訴我,有一個與ID =密碼沒有用戶,但是這條線路提供給我。

我也有用戶/ sign_in和用戶/ sign_out的問題。由於某種原因它重新導向我的根路徑。有時它有效,其他時間則不起作用,我不知道爲什麼。日誌看起來像這樣:

Started GET "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2011-09-16 19:05:43 -0400 
Processing by Devise::SessionsController#new as HTML 
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 
Redirected to http://localhost:3000/ 

回答

0

什麼在這裏不起作用?你在日誌或其他地方找到有用的東西嗎?另外,你有沒有設置你的:用戶模型,包括devise :recoverable, :authenticateable, ...等?

您需要config/routes.rb中定義的devise_forresourcesdevise_for設置路線,將去設計控制器,但不處理任何其他事情。所以你仍然需要正常的機智的路線爲用戶模型添加,更新,刪除等。

+0

嗨,剛編輯的問題,基本上我的本地主機:3000 /用戶/密碼不起作用。它告訴我「沒有ID =密碼的用戶」。 – noob

+0

@ming,確保devise_for是在resources:users之前的routes.rb文件中定義的。 routes.rb文件按順序處理,並返回匹配的第一個路由。 – ipd

+0

謝謝。事實證明,這個問題不是設計。我意識到日誌說,mysql SELECT'users'。* FROM'users' WHERE'users'.'email'是NULL NULL限制1.不是取出郵件[email protected],而是取出電子郵件NULL。任何想法,爲什麼? – noob