Devise爲您創建一組輔助函數,用於生成正確的路徑。從命令行運行rake routes
以查看它們。您將得到類似於以下內容的輸出(假定您的Devise模型名爲User
)。
new_user_session GET /users/sign_in(.:format) {:controller=>"devise/sessions", :action=>"new"}
user_session POST /users/sign_in(.:format) {:controller=>"devise/sessions", :action=>"create"}
destroy_user_session GET /users/sign_out(.:format) {:controller=>"devise/sessions", :action=>"destroy"}
user_password POST /users/password(.:format) {:controller=>"devise/passwords", :action=>"create"}
new_user_password GET /users/password/new(.:format) {:controller=>"devise/passwords", :action=>"new"}
edit_user_password GET /users/password/edit(.:format) {:controller=>"devise/passwords", :action=>"edit"}
user_password PUT /users/password(.:format) {:controller=>"devise/passwords", :action=>"update"}
user_registration POST /users(.:format) {:controller=>"devise/registrations", :action=>"create"}
new_user_registration GET /users/sign_up(.:format) {:controller=>"devise/registrations", :action=>"new"}
edit_user_registration GET /users/edit(.:format) {:controller=>"devise/registrations", :action=>"edit"}
user_registration PUT /users(.:format) {:controller=>"devise/registrations", :action=>"update"}
user_registration DELETE /users(.:format) {:controller=>"devise/registrations", :action=>"destroy"}
追加_path
每一行的第一部分給你,你需要調用輔助函數的名稱。
例如,下面會給你一個鏈接到登錄頁面:
<%= link_to "Login", new_user_session_path %>
請記住,如果該請求是DELETE
而非GET
(如退出鏈接),你需要指定這是對link_to
的呼叫的一部分。
<%= link_to "Logout", destroy_user_session_path, :method => :delete %>
謝謝,看起來像我需要在我的模板,以改變我的呼籲:<%=的link_to 「家」,home_index_path,:類=> 「navlink」 %> – bigdaveyl
嗯,實際上'index'行動通常不在輔助函數名稱中包含單詞'index'(與訪問網站時不必鍵入'index.html'的方式一樣)。所以它可能只是'home_path'。找出最好的方法就是運行'rake routes'! – Russell