У меня проблемы с получением fields_for
для работы с атрибутом Array модели, отличной от ActiveRecord.
Дистиллировано, мне нужно следующее:
Модели / parent.rb
class Parent
extend ActiveModel::Naming
include ActiveModel::Conversion
include ActiveModel::Validations
extend ActiveModel::Translation
attr_accessor :bars
end
Контроллеры / parent_controller.rb
def new_parent
@parent = Parent.new
@parent.bars = ["hello", "world"]
render 'new_parent'
end
Вид / new_parent.html.haml
= form_for @parent, :url => new_parent_path do |f|
= f.fields_for :bars, @parent.bars do |r|
= r.object.inspect
С кодом, указанным выше, моя страница содержит ["hello", "world"]
- то есть результат inspect
, вызванный для массива, присвоенного bars
. (С пропуском @parent.bars
в строке fields_for
я просто отображаю nil
).
Как заставить fields_for
вести себя так же, как для ассоциации AR - то есть выполнить код в блоке один раз для каждого члена моего bars
массива?