Ruby on rails ruby语法(rails模型)
有人能解释一下这两者的区别吗: 假设我有一个模型产品 在该模型中,我有:Ruby on rails ruby语法(rails模型),ruby-on-rails,ruby,Ruby On Rails,Ruby,有人能解释一下这两者的区别吗: 假设我有一个模型产品 在该模型中,我有: self.price self[:price] 我假设一个调用一个属性(产品价格),而另一个调用一个名为'price'的方法 如果这是真的,那么哪个是哪个?都在调用一个方法: 第一个调用方法:price 第二个调用方法:[],将:price作为参数传递 你可以通过运行 self.method(:[]) #=> #<Method: User(ActiveRecord::AttributeMethods)#[
self.price
self[:price]
我假设一个调用一个属性(产品价格),而另一个调用一个名为'price'的方法
如果这是真的,那么哪个是哪个?都在调用一个方法:
- 第一个调用方法
:price
- 第二个调用方法
,将:[]
作为参数传递:price
self.method(:[])
#=> #<Method: User(ActiveRecord::AttributeMethods)#[]>
self.method(:[])
#=> #
基本上,只要您想知道方法从何而来,就可以使用。调用方法:
- 第一个调用方法
:price
- 第二个调用方法
,将:[]
作为参数传递:price
self.method(:[])
#=> #<Method: User(ActiveRecord::AttributeMethods)#[]>
self.method(:[])
#=> #
基本上,只要您想知道方法来自何处,就可以使用。Rails将这些模型属性创建为访问器,从而动态创建获取/设置值的方法。在您自己的类中使用也很有趣,请看这里:Rails将这些模型属性创建为访问器,动态创建获取/设置值的方法。在您自己的类中使用它也很有趣,请看这里:谢谢您的解释。谢谢您的解释。因此,如果我使用与属性相同的名称创建自己的方法,我的方法被调用不是rails默认值?这里有一篇文章详细说明了您可能希望如何实现这一点:因此,如果我使用与属性相同的名称创建自己的方法,我的方法被调用不是rails默认值?这里有一篇文章详细说明了您可能希望如何实现这一点: