rails控制器问题

时间:2013-03-31 20:06:25

标签: ruby-on-rails

我有一个控制器页面如下:

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'页面。谢谢

2 个答案:

答案 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'}

在配置路由下的https://github.com/plataformatec/devise