我有一个控制器页面如下:
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'
当我尝试进入登录页面时,它给了我一个错误:
#&lt;#:0x2b9a298&gt;
的未定义局部变量或方法`login_path'我尝试将控制器与动作相匹配,同样的错误。我是rails的新手,我试图理解我做错了什么,因为它适用于'about'页面。谢谢
答案 0 :(得分:1)
您的路线应为:
match 'login', :to => "pages#login", :as => :login
match 'about', :to => "pages#about", :as => :about
要了解有关Rails路由的更多信息,请查看routing guide。
答案 1 :(得分:1)
get 'log in' => 'pages#login'
“登录”中是否有空格或者它是如何出现在这里的?
我认为Devise在如何自定义路线方面也有一些特殊的设置。以下是他们的GitHub页面上提供的示例: devise_for:users,:path =&gt; “auth”,:path_names =&gt; {:sign_in =&gt; 'login',:sign_out =&gt; 'logout',:password =&gt; 'secret',:confirmation =&gt; '验证',:unlock =&gt; 'unblock',:registration =&gt; 'register',:sign_up =&gt; 'cmon_let_me_in'}