出于某种原因,我还没有完全明白Rails如何与Ruby进行交互/弄清楚了Ruby本身。Ruby on Rails&调用带有符号的方法基本问题
我会说点。例如,在一个Ruby on Rails项目中,你可能有这样的事情:
class Product < ActiveRecord::Base
default_scope :order => 'title'
end
这让我很困惑。我假设我们正在调用产品从基类ActiveRecord类继承的方法default_scope ...以便我们可以设置一些选项。我们传递它的符号:order =>'title'。是:在default_scope函数中只订购一个散列值,并将该散列值设置为“title”?我得到了正确的。
又例如,当你开始扔基本验证在你得到这样的事情
validates :price, :numericalcity => {:greater_than_or_equal_to => 0.01 }
我知道这是什么一样,但它的语法吹拂我的心灵。首先,它看起来像符号用于静态重用字符串值,但在这里我们发送一个动态符号...在哪里呢?然后我们是符号内的符号吗?这基本上是一个哈希内的散列或它到底是什么?我只是想在我的大脑中找出它来真正理解正在发生的事情。
你的例子是错误的:'default_scope {:order =>'title'}'被认为是一个块而不是散列参数。你应该写'default_scope({:order =>'title'})' – juandebravo