2016-12-01 11 views
2

私は現在、検索フォームにEasyAutoCompleteを使用しています。 「View All」を押すと、同じページにリダイレクトされますが、すべてのカードを表示するにはparams [:name]を使用します。Rails 5 - ビューの配列の一部を繰り返します。

私はこれをレンダリングする:あなたはカードの特定のセットを見ればしかし、本質的に同じカードの数百人(またはそれ以上)を返すために起こっている

<% @cards.in_groups_of(6, false).each do |group| %> 
     <div class='row'> 
     <% group.each do |card| %> 
      <div class='col-sm-2 col-md-2'> 
      <div class="wrapperImg"> 
       <%= link_to image_tag(card.image_url, class: "img-responsive"), {:controller => "cards", :action => "show", :id => card.id }%> 
      </div> 
      </div> 
     <% end %> 
     </div> 
    </div> 
    <% end %> 

。私は、パラメータにより、これらのカードを識別することができます(希少性)

「DEFインデックスが」EasyAutoCompleteが動作しますので、私はもともとコントローラでそれを変更しようとするつもりだったが、それは問題である

def index 
    wild_search = "%#{params[:name]}%" 
    @cards = Card.order(multiverse_id: :desc).limit(30) 
    # debugger 
    #@cards = @cards.where("name like :name", name: wild_search).page(params[:page]) if params[:name] 
    @cards = @cards.where("name like :name OR setName like :name", name: wild_search).page(params[:page]) if params[:name] 
    end 

cards = @cards.where('rarity IS NOT ?', 'Land')などのビューを同じようにする方法がありますか?@cards.in_group_ofからcards.in_group_ofに出力を変更しますか?またはコントローラを使用してこれを行う方法があり、def indexの代わりにdef searchを使用しますか?

すべての入力を歓迎します。

答えて

2

このようにしますか?

<% @cards.where.not(rarity: "Land").in_groups_of(6, false).each do |group| %> 

http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods/WhereChain.html

+0

ああ、私はチェーンがそのようにどこにできるとは思いませんでした。ありがとう! 私は答えを受け入れるでしょう - しかしそれはデイジーチェーンの問題です。正しいバージョンは '<%@ cards.where.not(rarity:" Basic Land ")です。in_groups_of(6、false).each do | group | %> ' – DNorthrup

+0

これは私のお尻を保存しました、ありがとう – Jordan

関連する問題