0

検索できるようにしたいsong.rbモデルとgenre.rbモデルがあります。

何らかの理由で、Tire はジャンルではなく曲の検索結果のみを返します。

コード:

genre.rb

class Genre < ActiveRecord::Base
  has_many :genre_songs, :dependent => :destroy
  has_many :songs, through: :genre_songs

  include Tire::Model::Search
  include Tire::Model::Callbacks


end

song_controller スニピット

def index
    if params[:query].present?
      @songs = Song.search(params[:query], load: true)
    elsif params[:genre]
      @songs = Song.tagged_with(params[:genre]).paginate(:page => params[:page], :per_page => 15)
      get_last_song
    else      
      @songs = Song.order('id').order('plusminus desc nulls last').paginate(:page => params[:page], :per_page => 15) 
      #@songs = Song.tally.paginate(:page => params[:page], :per_page => 15)
      get_last_song
    end
  end

song.rb スニピット

include Tire::Model::Search include Tire::Model::Callbacks

index.html.erb スニピット

<%= form_tag songs_path, method: :get do %>
  <p>
    <%= text_field_tag :query, params[:query] %>
    <%= submit_tag "Search", name: nil %>
  </p>
<% end %>
4

1 に答える 1