生成嵌套路由的链接标记

时间:2014-01-22 19:00:46

标签: ruby-on-rails ruby hyperlink routes

我有以下路线:

   namespace :gallery do
      resources :collections, only: [:index, :show] do
         resources :albums, only: [:index, :show] do
            resources :photos, only: :show
         end
      end
   end

我正在尝试从相册显示页面链接到照片显示页面。我尝试了各种各样的事情,但是我无法让任何帮助者生成正确的链接。

专辑节目:

<div class="container--padded">
  <div class="home-intro">
    <h1><%= @album.title %></h1>
    <div class="grid">
      <% @photos.each do |photo| %>
         <div class="grid__item grid__item--photo flex-embed flex-embed--1by1">
            <div class="flex-embed__item">
               <% @dimensions = FastImage.size(photo.source(:small)) %>
               <img src="<%= image_path(photo.source(:small)) %>" class="<%= @dimensions[0] > @dimensions[1] ? 'landscape' : 'portrait' %>" />
               <%= link_to 'Photo', gallery_collection_album_photo_path(photo) %>
            </div>
         </div>
      <% end %>
    </div>
  </div>
</div>

我有什么想法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要将所有嵌套对象作为参数传递给url helper,即

gallery_collection_album_photo_path(@collection, @album, photo)

url_for也应该有效:

url_for([@collection, @album, photo])