0

見つかったアイテムを一覧表示する検索結果ページがあります。そのリストには、結果のサムネイルを表示するために使用するボタンがあります。

検索された画像を表示するコントローラーメソッドがあります。

def search
    @search_criteria = params[:search]
    @novels = Novel.where("lower(name) like ?", "%#{@search_criteria.downcase}%")
    @novels.sort! { |a,b| a.name.downcase <=> b.name.downcase }

    @searched_illustrations = Illustration.where("lower(name) like ?", "%#{@search_criteria.downcase}%")
    @tagged_illustrations = Illustration.tagged_with([@search_criteria], :any => true, :wild => true)
    @illustrations = @searched_illustrations + @tagged_illustrations
    @illustrations.uniq!
    @illustrations.sort! { |a,b| a.name.downcase <=> b.name.downcase }

   respond_to do |format|
      format.html #search_results.html.erb
 end
end

検索結果を表示するビューのボタンに付けたコードは次のとおりです。

<%= link_to "Show", illustration, :class => "btn btn-custom-primary btn-mini", :style => "float:right;" %>

サムネイルを表示するために必要なコントローラーメソッドは次のとおりです。

def show_illustrations
    @illustrations = params[:illustrations]

    @illustrations = Kaminari.paginate_array(@illustrations).page(params[:page]).per(20)

    respond_to do |format|
      format.html #search_results.html.erb
    end
  end

このエラーが発生しました。これにより、params [illustrations] としてイラスト ID の配列を取得していると思われます。

undefined method `aws_image_thumbnail_url' for "2":String
4

1 に答える 1

0

link_to("Show", object)は通常、 のような URL を生成します/illustrations/:id。ショールート。コレクションをレンダリングしようとしています。

一般的に、検索結果を別の方法で表示しようとしているだけだと思いますよね? 少なくともそれは私があなたの例から集めたものです. その場合は、別のビューをレンダリングします。

def search 
  # search stuff... (you should try ElasticSearch/Tire)
  #
  # Now, use a different template if the 'thumbs' param is present
  return render :search_thumbs unless params[:thumbs].nil?
end

ビューで:

= link_to "View Thumbs", search_path(search: params[:search], thumbs: true)
于 2013-07-29T00:50:02.753 に答える