Как проверить составленный класс ActiveRecord? - PullRequest
3 голосов
/ 29 декабря 2010

Мне нравится использовать Comme_of в моих приложениях на Rails, это помогает мне создавать красивые объекты проблемного пространства из необработанных данных базы данных.

У меня проблема, однако, каков наилучший способ их проверки, в идеале с использованием автоматического метода ActiveRecord?

Иногда проверки необработанных данных достаточно, но часто объект слишком сложен для этого, и вы хотите сообщить пользователю значимую информацию (близкую к составляющему объекту).

Я нашел это: http://www.stephenchu.com/2008/05/rails-composedof-validation.html, но это не кажется очень элегантным или похожим на Rails.

1 Ответ

0 голосов
/ 18 апреля 2012

Почему вы не можете сделать это (пример из одного из моих приложений):

composed_of :cents_cost_amount,
            :class_name => "Money",
            :mapping => [%w(cents_cost_amount cents), %w(currency currency_as_string)],
            :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) },
            :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") }   

validates :cents_cost_amount,             
          :numericality => {:greater_than_or_equal_to => 0, 
                            :less_than_or_equal_to => 1000000, 
                            :message => "Only amounts in the range 0 to 10000.00 are allowed."  }    

Трудно дать вам более глубокое понимание вашей проблемы без конкретного примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...