出於某種原因,我還沒有完全明白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