0
iam只是問自己,最好的解決方案是什麼問題。Rails 3.決定保存對象是否應該保存
這裏是我的模型:
class Product < ActiveRecord::Base
has_many :prices, :class_name => "ProductPrice"
accepts_nested_attributes_for :prices
end
class ProductPrice < ActiveRecord::Base
belongs_to :product
end
控制器
def create
@product = Product.new(params[:product])
@product.save
...
end
什麼我想要做的是防止被保存的所有ProductPrices時product_price.value == nil
或product_price.value == 0.0
before_save
鉤在ProductPrice中。return false
將回滾整個交易,那不是我想要做的。我只是想「踢」與value == 0 or value == nil
- 第一次射門都價格從
params[...]
,比電話Product.new(params[:product])
所有price_params似乎並沒有被導軌方式eighter ... - 後
Product.new(params[:product])
迭代所有的價格和從數組刪除。但邏輯應該在我的模型中是正確的?我只是不想重複自己創造新價格的每一個控制器...
有人可以告訴我最好的解決方案嗎?什麼是鐵軌方式?
謝謝!
但這將回滾事務,並在意見提出了一些錯誤。那不是我想要的。如果我執行product.save,那麼我希望該產品被保存,所有價格> 0!沒有錯誤和回滾。 – ali 2012-07-09 20:13:28
如果是這樣,您可以在傳遞到保存之前從嵌套屬性哈希中刪除這些product_prices - 請參閱更新。 – PinnyM 2012-07-09 20:39:41
哦,這是一個不錯的主意。這個解決方案的問題是,它不會涵蓋其他控制器中的一些情況:'price.value = 0; price.save'。這應該破壞對象。有可能嗎? – ali 2012-07-09 21:17:28