0

我的路线中有以下内容:

  resource :login, only: [:new, :create, :destroy]

  resources :users, only: [:new, :create] do
    resources :notes
  end

但我想使用 url 'my-domain/login' 而不是 'my-domain/login/new' 和 'my-domain/register' 而不是 'my-domain/users/new'。

我该怎么办?我尝试了以下方法,但没有奏效:

  match 'login' => 'login#new'
  match 'register' => 'users#new'

  resource :login, only: [:create, :destroy]

  resources :users, only: [:create] do
    resources :notes
  end

这给了我错误

undefined local variable or method `logins_path' for #<#<Class:0x007fd99c40c608>:0x007fd99c87bdd8>

访问“我的域/登录”时

4

1 回答 1

0

尝试这个:

match '/login',  to: 'login#new'
match '/register',  to: 'users#new'

resource :login, only: [:new, :create, :destroy]

railstutorial.org是一个非常好的学习 Ruby on Rails 的教程(我敢说“最好的”)。有一章关于制作有效的登录和注册页面

更新

如果您不希望用户访问 /users/new 我认为您当前的用户资源有效:

resources :users, only: [:create] do
    resources :note
end

因为它只匹配用户/创建的路由。如果用户转到 /users/new,您还可以将用户重定向到 /register。用户控制器中的新操作:

def new
  redirect_to register_path
end
于 2013-02-07T19:59:58.090 回答