1

各モデルのコンテンツをと呼ばれる配列に結合するActiveRecordクエリを作成しています@contents。ただし、特定のモデルからのデータとは異なるコンテンツを表示する必要があります。

したがって、私の見解では、配列の要素に対して何らかのテストを実行する必要があります。

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

からのモデルを取得するにはどうすればよいcですか?

4

2 に答える 2

1

これはトリックを行うことができます:

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

さらに深く: Ruby: kind_of? 対 instance_of? 対 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
于 2013-02-12T19:31:58.437 に答える
1

メソッドを使用できますis_a?

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

クラス名を渡すだけです。

于 2013-02-12T19:32:36.180 に答える