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'

当我尝试进入登录页面时,它给了我一个错误:

#<#:0x2b9a298> 的未定义局部变量或方法 `login_path'

我尝试将控制器与操作匹配,同样的错误。我是 Rails 的新手,我试图了解我做错了什么,因为它适用于“关于”页面。谢谢

4

2 回答 2

1

您的路线应该是:

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

要了解有关 Rails 路由的更多信息,请查看路由指南

于 2013-03-31T20:10:26.743 回答
1
get 'log in' => 'pages#login'

“登录”中是否有空格,或者它就是这里的显示方式?

我认为 Devise 在自定义路线方面也有一些特殊设置。这是他们 GitHub 页面上提供的示例:devise_for :users, :path => "auth", :path_names => { :sign_in => 'login', :sign_out => 'logout', :password => 'secret' , :confirmation => '验证', :unlock => '解锁', :registration => '注册', :sign_up => 'cmon_let_me_in' }

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

于 2013-03-31T20:13:28.683 回答