#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.2
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.2
Вопрос:
У меня есть две связанные модели (упрощенные) :
Объявление :
class Ad < ActiveRecord::Base
has_many :propositions
validates :pricemin
validates :pricemax
...
Предложение :
class Proposition < ActiveRecord::Base
belongs_to :ad
attr_accessible :price_proposition
...
Я пытаюсь добавить ограничение для price_proposition (в модели «предложение») между «pricemin» и «pricemax».
Как я мог это сделать?
Спасибо за вашу помощь
Комментарии:
1. Вам необходимо создать проверку jquery
2. Вот пример bestror.wordpress.com/2013/06/29 /…
Ответ №1:
Проверка на стороне клиента с помощью Javascript, безусловно, является одним из способов. Но если вы хотите выполнить проверку на стороне сервера, вы можете сделать что-то вроде этого:
class Proposition < ActiveRecord::Base
belongs_to :ad
attr_accessible :price_proposition
validate :price_proposition_in_range
def price_proposition_in_range
pricemin = self.ad.pricemin
pricemax = self.ad.pricemax
if self.price_proposition < pricemin || self.price_proposition > pricemax
errors.add(:price_proposition, "Must be between #{pricemin} and #{pricemax}")
end
end
.
.
.
end
И, конечно, вы можете добавить дополнительные проверки в метод, в зависимости от того, хотите ли вы разрешить пробел или нет и т. Д. И т. Д.