2013-03-31 46 views
0

我有一個控制器的頁面如下:與軌道控制問題

class PagesController < ApplicationController 
    def home 
    end 

    def about 
    end 

    def login 
    end 

end 

我也有相應的意見,並在我的routes.rb中,我有以下

devise_for :users 

    get 'log in' => 'pages#login' 
    get 'about' => 'pages#about' 


    root :to => 'pages#home' 

當我嘗試去登錄頁面它給了我一個錯誤:

未定義的局部變量或方法`login_path」爲#<#:0x2b9a298>

我嘗試匹配控制器的行動,相同的錯誤。我是新的鐵軌,我試圖瞭解我做錯了什麼,因爲它適用於'大約'頁面。感謝

回答

1

你的路線應該是:

match 'login', :to => "pages#login", :as => :login 
match 'about', :to => "pages#about", :as => :about 

要了解更多關於Rails的路由,檢查出routing guide

+0

這樣我就有login_path幫手在視圖中使用? –

+0

是的,雖然'login_url'是慣例。 –

+0

好的,它的工作 –

1
get 'log in' => 'pages#login' 

在「登錄」中是否有空格或者它是如何出現在這裏的?

我認爲Devise在定製路線方面也有一些特殊的設置。這是在他們的GitHub頁面上提供的示例: devise_for:users,:path =>「auth」,:path_names => {:sign_in =>'login',:sign_out =>'logout',:password =>'secret '::confirm =>'verification',:unlock =>'unblock',:registration =>'register',:sign_up =>'cmon_let_me_in'}

它位於https://github.com/plataformatec/devise的配置路由下。

+0

我檢查了配置路線,我想要的是:我有一個控制器頁面與登錄操作,這個登錄操作只是頁面的名稱。,與設計無關,所有設計視圖工作正常,但在登錄頁面中,我將通過partials渲染一些設計視圖。 –