2

私はグーグル検索のためにこれをどのように表現するか理解できません-ごめんなさい。私が次のようなモデルを持っている場合:

c = Color.all

私は言うことができます:

c.Color[0].color_name

したがって、そのモデルのフィールドの名前を含む変数がある場合、次のようになります。

b = 'color_name'

フィールド名の文字列を使用して、このように( "c.color_name")と言うにはどうすればよいでしょうか。

c[0].b  

または、変数の内容をフィールド名として使用するようにRuby/Railsに指示することを意味します。

c[0].[the string value of b]

考えられるすべてのことを試してみましたが、その構文がわかりません。

ありがとう!

Rails 2.3.5 / Ruby 1.8.7

4

2 に答える 2

7

bがのインスタンス変数またはメソッドである場合は、次のメソッドをColor使用します。sendObject

c = Color.all
b = 'color_name'
c[0].send(b.to_sym)
于 2012-05-31T12:41:45.887 に答える
0

私はこのバージョンのレールを使用したことはありませんがobject['nameoffield']、動作するobject.read_attribute('nameoffield')可能性があります。

于 2012-05-31T12:39:56.150 に答える