获取Active Record对象所在的模型

时间:2013-02-12 19:27:27

标签: ruby-on-rails ruby rails-activerecord

我正在创建一个ActiveRecord查询,它将每个模型的内容连接到一个名为@contents的数组中。但我需要显示来自特定模型的数据的不同内容。

所以在我看来,我需要对我的数组元素进行某种测试:

<% @contents.each do |c| %>
  <article>
    <% if [TEST FOR EVENT] %>
      EVENT HTML
    <% elsif [TEST FOR POST] %>
      POST HTML
    <% end %>
  </article>
<% end %>

如何获得c来自的模型?

2 个答案:

答案 0 :(得分:1)

这可以解决问题:

c.kind_of?(Event) #=> true or false

更深入:Ruby: kind_of? vs. instance_of? vs. is_a?

我的比较简短版本:

3.class #=> Fixnum
3.is_a? Integer #=> true
3.kind_of? Integer #=> true
3.instance_of? Integer #=> false
# is_a? & kind_of? can 'detect' subclasses, when instance_of? does not

答案 1 :(得分:1)

您可以使用is_a?方法。

<% if c.is_a?(Event) %><% if c.is_a?(Post) %>

只需传递班级名称。