0
我有一個json文件,我正在導入到我的Rails數據庫。before_save rails替換零值
JSON:
{
"data": [{
"title": "foo",
"color": "bar",
"size" : "baz",
"occupation" : "engineer",
"location" : "dallas",
"car" : "tesla",
"married" : true,
"dogs" : 4,
"food" : "tacos"
}]
現在讓我們說「標題」是不是在其中一個樣品上市,它的存儲爲零。我知道我可以使用before_save更新此模型
Class Person
before_save :replace_nil_values
private
def replace_nil_values
self.title = "Not Listed" if title == nil
end
end
This works。問題是如果多個屬性丟失或列爲nil會發生什麼?我覺得這樣做會超效率:
def replace_nil_values
self.title = "Not Listed" if title == nil
self.color= "Not Listed" if color == nil
self.size = "Not Listed" if size == nil
self.occupation = "Not Listed" if occupation == nil
self.location = "Not Listed" if location == nil
self.car = "Not Listed" if car == nil
end
有沒有更高效的方法來做到這一點?
感謝
感謝Philip!我從未考慮過這些後果。我跑你的答案,並執行一個幫手方法在這裏解釋:http://stackoverflow.com/a/22098115/3007294 欣賞它! – user3007294
你可能想要閱讀關於裝飾者/演示者模式,這將允許你創建一個'PersonPresenter'和'title'方法來封裝你的幫助者邏輯。同樣的事情,只是鞏固了一些。有關其他選項,請參閱http://railscasts.com/episodes/286-draper。 –