Ruby on rails Rails表单创建未看到传递给它的参数
感谢阅读,这是rails的新手,但正在尝试构建一个表单来传递参数。但是,在表单中输入参数后,create页面中的验证没有看到它,并且给了我一个错误。但是日志显示参数是输入的。。。我也在使用简单的宝石 控制器: 类FoundsControllerRuby on rails Rails表单创建未看到传递给它的参数,ruby-on-rails,ruby,forms,parameters,Ruby On Rails,Ruby,Forms,Parameters,感谢阅读,这是rails的新手,但正在尝试构建一个表单来传递参数。但是,在表单中输入参数后,create页面中的验证没有看到它,并且给了我一个错误。但是日志显示参数是输入的。。。我也在使用简单的宝石 控制器: 类FoundsController
def index
@found = Found.all
end
def new
@found = Found.new
end
def create
@found = Found.new(found_params)
if @found.save
redirect_to "/founds#index"
else
render "new"
end
end
end
def found_params
params.require(:floc).permit(:ftitle, :fdescription, :fcontact)
end
新表格页:
<h1>Founds#new</h1>
<p>Find me in app/views/founds/new.html.erb</p>
<%= simple_form_for @found do |form| %>
<%= form.input :floc, label: "floc" %>
<%= form.input :fcontact, label: "fcontact" %>
<%= form.input :fdescription, label: "fdescription" %>
<%= form.input :ftitle, label: "ftitle" %>
<%= form.button :submit %>
<% end %>
除了强大的参数外,一切看起来都很好 它应该是
参数require(:found).permit(:floc,:ftitle,:fddescription,:fcontact)
您告诉Rails,传入的参数必须具有
:found
键,嵌套在该键下的是您真正关心的参数。在这些参数中,只有被允许的参数才能通过。不允许的参数将无法通过,但不会抛出错误。完美!谢谢,这是有效的,我缺少了关键,我的假设是.require(floc)意味着没有floc参数我无法传递表单。。。没有包含或定义强参数块也给了我同样的错误。
def found_params
params.require(:floc).permit(:ftitle, :fdescription, :fcontact)
end
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"bJ1bUhd3G8z4S1QV+XsEAHmOcdSQyQxVS0rOSAsq6YANvz9ED7lFTME6falij4nrXkWEypWsSnPW7k9YHFGhDQ==",
"found"=>{"floc"=>"location",
"fcontact"=>"contact",
"fdescription"=>"descript",
"ftitle"=>"title"},
"commit"=>"Create Found"}