1

<%= link_to('登録の編集'、edit_user_registration_path)%>にアクセスしようとすると、次のエラーが発生します。

Routing Error
No route matches {:action=>"edit", :controller=>"profiles"}
Try running rake routes for more information on available routes.

ルート.rb

xyz::Application.routes.draw do

root :to => "home#index"

resources :profiles 

devise_for :users

authenticated :user do
root :to => "home#index"
end
end

私のルートは次のとおりです。

root        /                              home#index
profiles GET    /profiles(.:format)            profiles#index
POST   /profiles(.:format)            profiles#create
new_profile GET    /profiles/new(.:format)        profiles#new
edit_profile GET    /profiles/:id/edit(.:format)   profiles#edit
profile GET    /profiles/:id(.:format)        profiles#show
PUT    /profiles/:id(.:format)        profiles#update
DELETE /profiles/:id(.:format)        profiles#destroy
new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
user_session POST   /users/sign_in(.:format)       devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
user_password POST   /users/password(.:format)      devise/passwords#create
new_user_password GET    /users/password/new(.:format)  devise/passwords#new
edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
user_registration POST   /users(.:format)               devise/registrations#create
new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
PUT    /users(.:format)               devise/registrations#update
DELETE /users(.:format)               devise/registrations#destroy
root        /                              home#index

よろしくお願いします!

4

3 に答える 3

3
<%= link_to('Edit registration', edit_user_registration_path) %>.

渡されていない私は

<%= link_to('Edit registration', edit_user_registration_path(@user)) %>.
于 2012-07-26T11:46:20.053 に答える
0

問題は登録の編集リンクではありません。理由はルートにあるためです。

edit_profile GET    /profiles/:id/edit(.:format)   profiles#edit

そしてプロフィールページへのリンク:

<%= link_to 'Edit Profile', edit_profile_path %>

edit_profile_pathにはIDが必要です

プロファイルを編集するオブジェクトを渡す必要があります。

<%= link_to 'Edit Profile', edit_profile_path(@user) %>

または、プロファイルが現在のユーザーにのみ作用するようにする場合は、routes.rbで単一のリソースとして設定します。

resource :profile
于 2012-07-26T13:45:32.753 に答える
0

私も同じ問題を抱えていました。ルートを編集して解決しました。rb:

Rails.application.routes.draw do
  if Rails.env == 'production'
    default_url_options :host => "myserver.com"
  else
    default_url_options :host => "localhost:3000"
  end
于 2017-04-14T02:35:48.747 に答える