-3

@revenue_category是一个 ActiveRecord 对象,其中包含我的收入表中的一行,该表被检索Revenue.all(:order => "revenue_made")并整理出来。所以它的每个属性都是一个列名,属性的值是存储在该列中的那个特定行的值。

@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 回答