Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 on rails 获取虚拟属性值的方法_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 获取虚拟属性值的方法

Ruby on rails 获取虚拟属性值的方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试获取模型上虚拟属性的值,是否有其他方法获取该值?我需要在散列中传入一个字符串来检索值 class Property < ApplicationRecord def full_address "#{address1}, #{city}, #{postcode}" end end 最后一行似乎不适合我。property是property的一个实例。正如Pavan在评论中提到的那样,我将尝试更多地解释那里发生了什么 att\u name='full\u address

我正在尝试获取模型上虚拟属性的值,是否有其他方法获取该值?我需要在散列中传入一个字符串来检索值

class Property < ApplicationRecord
  def full_address
    "#{address1}, #{city}, #{postcode}"
  end
end

最后一行似乎不适合我。property是property的一个实例。

正如Pavan在评论中提到的那样,我将尝试更多地解释那里发生了什么

att\u name='full\u address'
,这里您为att\u name分配了一个字符串,但您打算调用函数full\u address。因此,通过删除完整地址周围的“”来调用该函数


您的代码变为
att\u name=full\u address

正如Pavan在评论中提到的,我将尝试解释更多的内容

att\u name='full\u address'
,这里您为att\u name分配了一个字符串,但您打算调用函数full\u address。因此,通过删除完整地址周围的“”来调用该函数


您的代码变为
att\u name=full\u address

正如我所说,您应该执行
att\u name=full\u address
而不是
att\u name='full\u address'


当你做
att\u name='full\u address'
时,它将
att\u name
赋值为
full\u address
,因为你把它定义为一个字符串。

正如我说的,你应该做
att\u name=full\u address
而不是
att\u name='full\u address'


当您执行
att_name='full_address'
操作时,它将
att_name
赋值为
full_address
,因为您将其定义为字符串。

尝试
att_name=full_address
(不带引号)什么是
指令
属性的一个实例
?@DeepakMahakale是的,它被更新了,只是为了避免混淆。感谢您让我知道。请尝试
att_name=full_address
(不带引号)什么是
说明
属性的一个实例
?@DeepakMahakale是的,它被更新了,只是为了避免混淆。感谢您让我知道。是否仍要通过传递字符串来调用函数,请参阅att_名称是通过参数动态设置的,在大多数情况下,我实际上是在调用属性,例如address1、city、postcode。然而,我已经定义了一个名为full_address的函数,我想在这种特殊情况下调用它,如果您想让我进一步澄清,请告诉我…@Haroon我不明白传递字符串是什么意思。对于不同的属性实例,始终可以从
full\u address
返回动态值。也可以像
属性那样直接调用它。完整地址
是否可以通过传入字符串来调用函数,请参见通过参数动态设置收件人名称,在大多数情况下,我实际上是在调用属性,例如address1、city、postcode。然而,我已经定义了一个名为full_address的函数,我想在这种特殊情况下调用它,如果您想让我进一步澄清,请告诉我…@Haroon我不明白传递字符串是什么意思。对于不同的属性实例,始终可以从
full\u address
返回动态值。也可以直接调用它,如
property.full\u address
att_name = 'full_address'
property[att_name]