我有一個mongoid模型,說的網頁,這是這樣的:如何在保存爲mongoid之前設置一個零字段的值?
class Webpage
include Mongoid::Document
field :short_link, type: String
field :actual_link, type: String
before_save :generate_short_link
protected
def generate_short_link
short_link ||= rand(36**8).to_s(36)
end
end
但是當我做Webpage.create,該short_link不會自動填充。我究竟做錯了什麼?
是'self.short_link'的正確訪問者?我只用'short_link'。 – 2012-02-28 03:50:25
當前範圍內的'self'是網頁的一個實例,它是正確的訪問者。 – Voldy 2012-02-28 08:42:14
是的,應該在這裏使用rails回調,默認情況下:如果應用了零值(例如,來自工廠方法),則Mongoid上的值不會設置該字段。我會。但是,大部分使用before_validation回調代替 – Houen 2013-12-18 08:39:51