【发布时间】:2018-10-12 04:44:15
【问题描述】:
我需要制作一个可以处理创建同一模型的多个记录的表单,并以通过 Rails 的强参数的方式提交信息。在前端,我为小狗名称和品种动态添加了两个新文本字段,并希望将它们全部保存到一个表单中。但是我无法通过 Strong Params 传递一系列小狗的名字和品种;得到
小狗的未知属性“小狗”
我认为这是我忽略的非常简单的事情。请帮助生成这些小狗!
new.html.erb
<%= form_tag puppies_path do %>
<%= text_field_tag “puppies[puppies][]puppy[name]” %>
<%= text_field_tag “puppies[puppies][]puppy[breed]” %>
<%= submit_tag “Add Puppy” %>
<% end %>
生成这些参数
"puppies"=>{"puppies"=>[{"puppy"=>{"name"=>"ribbon", "breed"=>"poodle"}}]}
以及控制器中的强参数
class PuppiesController < ApplicationController
def index
@puppies = Puppy.all
end
def new
end
def create
puppies_array = puppies_params[:puppies].each do |puppy|
puppy[:puppy]
end
Puppy.create(puppies_array)
end
def show
@puppy = Puppy.find(params[:id])
end
private
def puppies_params
params.require(:puppies).permit({
puppies: [
puppy: [
:name,
:breed
]
]
})
end
end
任何想法我错过了什么?
我想通过的伪代码:
[(名称,品种),(名称,品种),(名称,品种)]
【问题讨论】:
-
你不必将参数
params传递给方法puppies_params吗?
标签: ruby-on-rails strong-parameters