0

わかりました、できるだけ具体的にしようと思います。これが私のコードです:

ルート.rb

root to: "users#index"
match "/users/:id/about", to: "users#about", as: :about
match "/users/:id/blog", to: "users#blog", as: :blog
match "users/:id/contact", to: "users#contact", as: :user_contact
match "/contact", to: "static_pages#contact", as: :static_contact

resources :sessions, only: [:new, :create, :destroy]
resources :users do
  resources :portfolios do
    resources :pictures
  end
end

メイン ページのすべてのリンクを含むナビゲーション バーは次のとおりです。

 <nav>
    <ul class="sf-menu" id="nav">
      <li class="<%= "selected" if current_page?(root_path) %>"><%= link_to "home", root_path %></li>
      <li class="<%= "selected" if current_page?(about_path) %>"><%= link_to "about me", about_path %></li>
      <li><%= link_to "my portfolio" %>
        <ul>
          <% @user.portfolios.each do |portfolio| %>
            <li><%= link_to portfolio.name, user_portfolio_path(@user, portfolio) %></li>
          <% end %>
        </ul>
      </li>
      <li class="<%= "selected" if current_page?(blog_path) %>"><%= link_to "blog", blog_path %></li>
      <li class="<%= "selected" if current_page?(user_contact_path) %>"><%= link_to "contact", user_contact_path %></li>
    </ul>
  </nav>

任意のリンク (ホーム、自己紹介、ブログ、連絡先) から他のリンクにリンクすると、すべて正常に機能します。たとえば、私についてのページ (/users/8/about) にいる場合、連絡先ページ (users/8/contact) にリンクできます。問題は、ポートフォリオ ページ (/users/8/portfolios/31) にアクセスして、自己紹介ページにリンクしようとすると、たとえば、URL が /users に戻るのではなく /users/31/about になることです。 /8/約。ユーザー 31 は存在しませんが、ポートフォリオ 31 は存在します。

4

0 に答える 0