У меня проблемы с тем, чтобы fields_for
работал на атрибуте Array не ActiveRecord модели.
В уменьшенном виде у меня есть следующее:
models/parent.rb
class Parent
extend ActiveModel::Naming
include ActiveModel::Conversion
include ActiveModel::Validations
extend ActiveModel::Translation
attr_accessor :bars
end
controllers/parent_controller.rb
def new_parent
@parent = Parent.new
@parent.bars = ["hello", "world"]
render 'new_parent'
end
views/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
, вызванного на Array, присвоенном bars
. (Если опустить @parent.bars
в строке fields_for
, я просто получаю nil
).
Как я могу заставить fields_for
вести себя как для AR-ассоциации - то есть выполнять код в блоке один раз для каждого члена моего bars
массива?