[英]how to validate presence of element in absence of another in rails
我有這個 model 可以驗證presence: true
對於post_id
和user_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.