如何在RubyonRails中访问实例变量

如何在RubyonRails中访问实例变量,ruby,ruby-on-rails-3,attributes,instance-variables,Ruby,Ruby On Rails 3,Attributes,Instance Variables,@revenue\u category是一个ActiveRecord对象,它包含我的revenues表中的一行,该表是通过revenue.all(:order=>“revenue\u Maked”)检索的,然后进行排序。因此,它的每个属性都是一个列名,属性的值是存储在该列中的特定行的值 @revenue\u category如下所示: --- !ruby/ActiveRecord:Revenue attributes: id: 1 revenue_made: 3000000

@revenue\u category
是一个ActiveRecord对象,它包含我的revenues表中的一行,该表是通过
revenue.all(:order=>“revenue\u Maked”)
检索的,然后进行排序。因此,它的每个属性都是一个列名,属性的值是存储在该列中的特定行的值

@revenue\u 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
    picked_option_(could be a,b or c)_cost
@选项\u选择的
如下所示:

--- !ruby/ActiveRecord:Revenue
attributes:
    id: 1
    revenue_made: 3000000
    premium_option_a_cost: 250
    premium_option_b_cost: 450
    premium_option_c_cost: 650
    picked_option_(could be a,b or c)_cost

当ActiveRecord实例变量的名称存储在另一个实例变量中时,如何访问该实例变量的特定属性?

这听起来像是要动态生成一条消息,发送给所选的
@选项对象。试试这个,看看会发生什么

# 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]

您需要在哪里访问@option\u picked?在视野中?为什么不使用if语句呢?请说得更具体一点。@IonutHulub代码中我的注释就在这里<代码>@policy_cost=@revenue_category.#@revenue\u类别的数据类型是什么?如果是数组或散列,请使用@revenue\u category[@option\u picked],不幸的是,这根本不是我想要做的。我在~@object\u picked`中存储了一个值,我想使用该值选择
@revenue\u category
中的一个属性。请参见编辑。我认为动态值查找是您正在尝试做的。如果我尝试
@revenue\u category.send(lookup)
我会得到一个方法缺少错误,如果我使用
@revenue\u category[lookup]
它不会出错,但
结果
不包含任何内容。