簡體   English   中英

如何在 rails 中不存在另一個元素的情況下驗證元素的存在

[英]how to validate presence of element in absence of another in rails

我有這個 model 可以驗證presence: true對於post_iduser_id但我希望它在另一個不存在的情況下驗證一個的存在。

這是驗證:

validates :user_id, :comment_id, :post_id, presence: true

如果您有任何問題,請隨時提出

validates_presence_of :post_id, unless: :user_id
validates_presence_of :user_id, unless: :post_id

由於 ActiveRecord 會自動為模型的每個屬性創建問號方法,因此您還可以:

validates_presence_of :post_id, unless: :user_id?
validates_presence_of :user_id, unless: :post_id?

:post_id? user_id? 對於 nil 或空白返回 false。

感謝 rubocop 的簡單更新,當我嘗試使用此邏輯時,rubocop 實際上自動更正我的行

C:[已更正] Rails/Validation:更喜歡新樣式驗證 validates:column, presence: value over validates_presence_of。 validates_presence_of:<model_name>,除非::

它基本上轉換了這個版本

validates_presence_of :<model_name>, unless: :<condition>

對此:

validates :<model_name>, presence: { unless: :<condition> }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM