0
我想寫一個首選項的驗證。如果此用戶的首選項記錄存在,它應驗證城市(與belongs_to關聯)的存在。Ruby on Rails - ActiveRecord驗證存在如果'self.preference.present?'不工作
user.rb
# attributes
# :city, :string
has_one :preference
preference.rb
# attributes
# preferred_car_brand
belongs_to :user
我嘗試這樣做,但記錄得到保存沒有錯誤。
user.rb
validates :city, presence: true, if: :user_preference_exists
def user_preference_exists
self.preference.present?
end
我錯過了說偏好應該是一個「可選關係」。有用戶喜歡,沒有偏好的用戶。我只想驗證用戶是否有偏好。我更新了這個問題。 –
我在模型中發現了一個錯誤,那個城市並不是空白的,因此驗證不會產生錯誤,您的方法可行! –