0

ルートには次のものがあります。

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

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

しかし、「my-domain/login/new」の代わりに「my-domain/login」という URL を、「my-domain/users/new」の代わりに「my-domain/register」という URL を使用したいと考えています。

どうすればできますか?私は次のことを試しましたが、うまくいきませんでした:

  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>

「my-domain/login」にアクセス中

4

1 に答える 1

0

これを試して:

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

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

Ruby on Rails を学習するための非常に優れたチュートリアル (あえて「最高」と言います) はrailstutorial.orgです。ログインおよび登録ページの作成に関する章があります。

アップデート

ユーザーが /users/new にアクセスしたくない場合は、現在のユーザー リソースが機能していると思います。

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

users/create のルートにのみ一致するためです。ユーザーが /users/new にアクセスする場合、ユーザーを /register にリダイレクトすることもできます。ユーザーコントローラーの新しいアクション:

def new
  redirect_to register_path
end
于 2013-02-07T19:59:58.090 に答える