Агрегации ActiveRecord и form_for - PullRequest
0 голосов
/ 29 января 2011

Я размышляю об использовании агрегатора ActiveRecord для некоторых полей.

Меня беспокоит то, насколько хорошо агрегированные атрибуты работают с полями form_for и input.То есть, как вы генерируете поля ввода для агрегированных атрибутов (поскольку они только для чтения)?

Как, давайте возьмем пример из http://api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.html.

class Customer < ActiveRecord::Base
    composed_of :balance, :class_name => "Money", :mapping => %w(balance amount)
    composed_of :address, :mapping => [ %w(address_street street), %w(address_city city) ]
  end

class Money
   attr_reader :amount, :currency

   def initialize(amount, currency = "USD")
     @amount, @currency = amount, currency
   end
 end

Теперь предположим, что у нас есть форма, в которой клиенту будет разрешено вводить свой собственный баланс.Как вы делаете это form_for и генерировать поля ввода для баланса?Кроме того, к чему относятся проверки баланса?Работает ли массовое присвоение?

1 Ответ

1 голос
/ 29 января 2011

Массовое присвоение работает (с помощью обычных методов записи атрибутов), но, по-видимому, оно не выполняется с помощью метода инициализации класса агрегатора.

В классах Customer также обычно можно установить проверки.

...