teh*_*wer 1 ruby ruby-on-rails
我不知道确保只有一条记录具有相同的外键的正确方法是什么。我们假设有一个名为 LineItem 的类,它属于 ancart和 to item。就像是:
class LineItem < ActiveRecord::Base
belongs_to :cart
belongs_to :item
Run Code Online (Sandbox Code Playgroud)
重点是:我想让这两个“属性”的组合变得独特。此时,我的方法是使用after_save回调,但我意识到这很糟糕。你如何解决这个问题?我在 PORO 类(类似于 LineItemSaver)中思考,但我并不完全相信。
谢谢!
如果我正确理解你的问题,你想要scope的选项validates_uniqueness_of。如果是这样,这应该可行。
在你的LineItem模型中:
class LineItem < ActiveRecord::Base
belongs_to :cart
belongs_to :item
validates_uniqueness_of :cart_id, scope: :item_id
end
Run Code Online (Sandbox Code Playgroud)
而且,您应该生成迁移来添加以下内容:
add_index :line_items, [ :cart_id, :item_id ], :unique => true
Run Code Online (Sandbox Code Playgroud)
更多信息请点击此处。
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |