che*_*ell 3 nested-forms simple-form ruby-on-rails-3.2
我的模型中有以下内容:
company.rb
has_many :merits
accepts_nested_attributes_for :merits
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
def new
@company = Company.new
@company.merits.build
end
Run Code Online (Sandbox Code Playgroud)
在我的表格上:
= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
= f.simple_fields_for :merits do |m|
= m.input :description, :required => false
= m.input :picture, :required => false
Run Code Online (Sandbox Code Playgroud)
这会产生如下哈希:
..."merits_attributes"=>{"0"=>{"description"=>"stove", "picture"=>"www.it.com/stove.png"}}...
我想要的是多个对象如下:
..."merits_attributes"=> {"0"=> {"description"=>"炉灶","图片"=>"www.it.com/stove.png"},"1"=> {"cription "=>"冰箱","图片"=>"www.it.com/fridge.png"}} ...
我可以这样做,我该怎么做呢?如果在控制器中它会创建多个对象使用:
def create
@company = Company.new(params[:company])
if @company.save
sign_in @company
redirect_to root_path
else
render :new
end
Run Code Online (Sandbox Code Playgroud)
如果您想merits在表单上使用多个,只需在控制器中构建相同数量的优点:
def new
@company = Company.new
3.times { @company.merits.build } # will build 3 merits
end
Run Code Online (Sandbox Code Playgroud)