0

私はペーパークリップとレールを使用しています。私はこのチュートリアルに従いました: Paperclip&Rails 3を使用した複数のファイルのアップロード(スクリーンキャスト)

ギャラリー写真がたくさんあるギャラリーモデルがあります。

ビュー内の元の画像にリンクする代わりに、photoimageでshowメソッドを作成しましたが、次のエラーが発生します。

undefined method `galleryphoto_path' for #<#<Class:0x007f40a0000c20>:0x00000005385d60>

これが私のコードです:

<% for asset in gallery.galleryphotos %>
  <%= link_to image_tag(asset.photo.url(:thumb)), url_for(asset) %>
<% end %>

これが私のgalleryphotoコントローラーです:

class GalleryphotosController < ApplicationController
  load_and_authorize_resource

  def show
    @gallery = Gallery.find(params[:gallery_id])
    @galleyphoto = @gallery.galleyphotos.find(params[:id])


    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @gallery }
    end
  end
 end

これらのルートは次のとおりです。

  resources :galleries do
    resources :galleryphotos
  end

これを修正する方法はありますか?

4

1 に答える 1

2

モデルに依存するためurl_for、ヘルパーはモデルのルートを見つけることができません。ルートでネストされたリソースとして宣言されているため、URLにaがないとaは存在しません。GalleryphotoGalleryGalleryphotoGallery

これを修正するには、次のいずれかを実行します。

<%= link_to image_tag(asset.photo.url(:thumb)), url_for(gallery, asset) %>

また

<%= link_to image_tag(asset.photo.url(:thumb)), gallery_galleryphoto_path(gallery, asset) %>
于 2012-07-06T12:55:29.210 に答える