2016-07-20 8 views
1

4種類のモデルがあります。オブジェクトのモデル名はどのようにしてレールに入れることができますか?

ここ@productionがあるモデルをチェックする方法を、次に

@single = Single.all 
@coe = Coe.all 
@blend = Blend.all 
@production = @[email protected][email protected] 

、例ですか?

私は

<% @production.each do |p| %> 
    <%=p.class.name%> 
<% end %> 

を試してみましたが、それは簡単なことのようです "アレイ"

を返しますが、私は を見つけることができません(私は質問を編集した)

+0

@productionと@ production.classの出力を共有できますか? – power

+0

"Array" –

答えて

5

問題が

@single = Single.all 
@coe = Coe.all 
@blend = Blend.all 
@production = @[email protected][email protected] 

変更を行っ

@single = Single.all.to_a 
@coe = Coe.all.to_a 
@blend = Blend.all.to_a 
@production = @[email protected][email protected] 

としてこれらの行をので、あなたのビューで、あなたがこれを行うことができますが、

@production.first.class.name #Single 
@production.last.class.name #Blend 

をチェックする場合はここにあります

<% @production.each do |p| %> 
    <% p.each do |product| %> 
    <%= product.class.name %> 
    <% end %> 
<% end %> 
+1

'Object.all'を' Object.all.to_a'に変更しました!どうもありがとう!! –

0

@productionは、コレクションでありますcoe、blendの組み合わせのうち、@production.class.nameがうまくいかない場合は、次のように各オブジェクトを繰り返し処理する必要があります。

<% @production.each do |object| %> 
    <%= object.class.name %> 
<% end %> 
+0

"Array"という値を返します。 –

+0

'@single = Single.all、@coe = Coe.all、@blend = Blend.all'のオブジェクトは存在しますか?そうでない場合、結果はNilClassになる – mrvncaragay

0

@productionを反復している間に配列を返すので、これを試す必要がある場合。

<% @production.each do |p| %> 
    <% p.each do |product| %> 
    <%= product.class.name %> 
    <% end %> 
<% end %> 
関連する問題