2010-12-29 3 views
3

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

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

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

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

ответ

0

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

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." }  

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

Смежные вопросы