0
我試圖重載initialize方法。見下面在Rails中重寫初始化方法到模型中
class Restriction < ActiveRecord::Base
RESTRICTION_TYPES = {
less_than: "IND<X",
greater_than: "X<IND",
between: "X<IND<Y"
}
def initialize restriction_type_name
super
formula = RESTRICTION_TYPES[restriction_type_name]
end
private
def formula=f
self[:formula] = f
end
end
當我運行r = Restriction.new(:between)
我得到異常:
NoMethodError: undefined method `stringify_keys' for :between:Symbol
我在做什麼錯?
順便說一下,我這樣做是因爲formula
屬性不能從外部接受。
真的不是一個好主意。 ActiveRecord在初始化方法的幕後做了很多魔術。 – sevenseacat
我讀到了。那麼,對我的問題最好的解決方案是什麼? –