2017-07-20 5 views
0

内の属性の値は、ここに私のコードのget:ActiveRecordの

a1.superclass 
=> ApplicationRecord(abstract) 

また、私は文字列として属性の名前を持っています。私はその価値をどのように得ることができますか?これは動作しません:

​​

これはありませんが、それはハッシュを返します。

a1.attribute(attr1) 


=> {"my_super_attr"=>[#<ActiveModel::Type::Value:0x0055b83c524ac8 @precision=nil, @scale=nil, @limit=nil>, {}]} 

にはどうすれば実際の値を取得することができますか?

答えて

2

a1.superclassApplicationRecord(abstract)を返す場合、これはa1がクラスであり、実際のレコードではないことを意味します。インスタンスではないので、クラスから値を読み取ることはできません。 a1.first[attr1]のようなことをすれば、すべてうまくいくはずです。

+0

でも、1)a1.first→1st **レコード**、正しい? 2)どうすればそれらを反復処理できますか?私は "each"と[]を試しましたが、うまくいきませんでした。 – Posh344

+0

複数のレコードを取得するには、 'NameOfTheClass.all'を実行するか、他のスコープ/ Arelメソッド(例えば' NameOfTheClass.order(title::asc) ')を使用する必要があります。そして 'each 'を使うことができます。 –