1

基本的なネストされたリソースパスを機能させようとしていますが、現在次のエラーが発生しています。

No route matches {:action=>"show", :controller=>"stores"}

私の見解では、次のリンクがあります。

 <% if current_user %> Hello <%= current_user.email %> /
  <%= link_to 'Store', user_store_path %> 
    <%= link_to 'New Store', new_user_store_path %>
    <%= link_to 'My Profile', home_path %>
    <%= link_to 'Edit Profile', update_path %>
    <%= link_to "Logout", logout_path %> 
   <% else %>
   <%= link_to "Login", login_path %> / <%= link_to "Sign up", signup_path %>
  <% end %>

これで、ルートをレーキすると、与えられているパスが上記のパスと正確に一致します-user_store_pathなど。

私のルートファイルは次のようになります。

   resources :users do
     resources :stores
   end

   match "signup" => "users#new"
   match "home" => "users#show"
   match "update" => "users#edit"

   get "login" => "sessions#new"
   post "login" => "sessions#create"
   delete "logout" => "sessions#destroy"
   get "logout" => "sessions#destroy"

   resources :sessions

   root :to => 'sessions#new'

RoRのWebサイトで読んだことはすべて、これが機能するはずだと示唆しているので、これは本当に私を混乱させます。誰かが私が間違っているところについて何か考えを持っていますか?

4

2 に答える 2

3
resources :users do
  resources :stores
end

ネストされているstoreため、すべて指定されたルートを作成します。user

たとえば<%= link_to 'Store', user_store_path %>、ユーザーを提供しないため、間違っています。する必要があります<%= link_to 'Store', user_store_path(current_user, store) %>

これは他のリンクにも当てはまります<%= link_to 'New Store', new_user_store_path %><%= link_to 'New Store', new_user_store_path(current_user) %>

コメントに基づいて更新

No route matches {:action=>"show", :controller=>"stores" [...]show特定のリソース(この例では。)が必要なために発生しますstore。したがって、パス/ URLを生成するには、ストアIDまたはストアオブジェクトを渡す必要があります。例<%= link_to 'Store', user_store_path(current_user, current_user.store.first %>:私は最初の答えでそれを逃しました、ごめんなさい。

于 2012-06-01T08:48:46.403 に答える
2

パスを指定するだけでは不十分です。オブジェクトまたはそのIDも指定する必要があります。例えば:

<%= link_to 'Store', [current_user, store] %>
<%= link_to 'Store', user_store_path(user_id: current_user.id, id: store.id) %>
<%= link_to 'New Store', new_user_store_path(user_id: current_user.id) %>
#and so on

rakeルートを実行すると、いくつかのパスでidを指定したいことがわかります。次に例を示します。/users/:user_id/stores/:id

http://guides.rubyonrails.org/routing.html#creating-paths-and-urls-from-objects

于 2012-06-01T08:51:20.520 に答える