Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 提取计算属性的值_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby 提取计算属性的值

Ruby 提取计算属性的值,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,在Rails4中,以下逻辑确定属性 if @items.count == 1 value = "disc1" elsif @items.count == 2 value = "disc2" else end 然后就需要访问它 @cluster.value 但是,此语法不起作用,因为值不是方法。如何使用此变量来提取对象的命名属性?如果您只是有条件地调用方法,效果会更好: if @items.count == 1 @cluster.disc1 elsif @items.count ==

在Rails4中,以下逻辑确定属性

if @items.count == 1
  value = "disc1"
elsif @items.count == 2
  value = "disc2"
else
end
然后就需要访问它

@cluster.value

但是,此语法不起作用,因为值不是方法。如何使用此变量来提取对象的命名属性?

如果您只是有条件地调用方法,效果会更好:

if @items.count == 1
 @cluster.disc1
elsif @items.count == 2
  @cluster.disc2
else
  # ...
end

不过,如果你想走这条路:

@cluster.public_send value

或者,如果
@cluster
ActiveRecord
模型,并且您希望获取相应表中的存储值,则可以:

@cluster[value]