-3

@revenue_categoryRevenue.all(:order => "revenue_made")は、収益テーブルから取得して並べ替えた1 行を含む ActiveRecord オブジェクトです。したがって、その各属性は列名であり、属性の値はその特定の行のその列に格納されているものです。

@revenue_category次のようになります。

--- !ruby/ActiveRecord:Revenue
attributes:
    id: 1
    revenue_made: 3000000
    premium_option_a_cost: 250
    premium_option_b_cost: 450
    premium_option_c_cost: 650

@option_picked次のようになります。

    picked_option_(could be a,b or c)_cost

属性の名前が別のインスタンス変数に格納されている場合、ActiveRecord インスタンス変数の特定の属性にアクセスするにはどうすればよいですか?

4

1 に答える 1

1

@option_pickedこれは、オブジェクトに送信するメッセージを動的に作成したいようです。これを試して、何が起こるかを確認してください。

# Given
@option_picked = "a"
lookup = "picked_option_#{ @option_picked }_cost"

# Attributes might be accessible as methods
# depending on the nature of the object...
result = @revenue_category.send(lookup)

# ...or an attribute lookup like this might work
result = @revenue_category[lookup]
于 2012-09-26T20:33:37.963 に答える