Rails 5 - 迭代视图的一部分数组

时间:2016-12-01 00:12:35

标签: ruby-on-rails ruby

我目前使用EasyAutoComplete作为搜索表单。如果您点击“查看全部”,它会重定向到同一页面,但使用参数[:name]显示所有卡片。

我用以下方式渲染:

<% @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 index'使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?或者有没有办法使用Controller执行此操作并使用def search而不是def index

欢迎任何输入。

1 个答案:

答案 0 :(得分:2)

喜欢这个吗?

#inner {
    vertical-align: middle;
    display: table-cell;

    //added
    position: relative;
}

.below_gauge2 {
    width: 240px;
    margin: 0 auto;
    color: blue;

    //added
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
}

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