如何在同一个地方呈现不同的集合?

时间:2016-01-20 07:30:04

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 enums

假设我有一个名为Animal的模型。此模型包含具有两种可能状态的枚举属性种类

class Animal < ActiveRecord::Base
  enum kind: [ :cat, :dog ]
end

然后在我的控制器中创建相应的实例变量集合。

class AnimalsController < ApplicationController
  def index
    @cats = Animal.cat
    @dogs = Animal.dog
  end
end

在我看来,我有两个链接和两个集合。

<h1>Animals</h1>

<b><%= link_to 'List Cats' %></b>
<b><%= link_to 'List Dogs' %></b>

<%= render partial: 'animals/cat', collection: @cats, as: :cat %>
<%= render partial: 'animals/dog', collection: @dogs, as: :dog %>

根据点击的链接显示第一个集合而不是第二个集合而不是第一个集合在同一个地方的首选方式是什么?怎么做?

1 个答案:

答案 0 :(得分:1)

您可以编写以下代码以在不同列表之间切换

<%= link_to "List Cats", animals_path(:cat => true) if params[:dog] %>
<%= link_to "List Dogs", animals_path(:dog => true) if params[:cat] %>

<div id="list">
 <% if params[:cat] == true %>
  <%= render partial: 'animals/cat', collection: @cats, as: :cat  %>
 <% elsif params[:dog] == true  %>
  <%= render partial: 'animals/dog', collection: @dogs, as: :dog  %>
 <% end %>
</div>