Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何处理rails 4中的嵌套形式和强参数_Ruby On Rails_Ruby On Rails 4_Nested Forms - Fatal编程技术网

Ruby on rails 如何处理rails 4中的嵌套形式和强参数

Ruby on rails 如何处理rails 4中的嵌套形式和强参数,ruby-on-rails,ruby-on-rails-4,nested-forms,Ruby On Rails,Ruby On Rails 4,Nested Forms,我有一个rails 4应用程序,我尝试在其中填充Post和Detail模型。 模型之间的关系是有一个。 我有一个邮政控制器: def post_params params.require(:post).permit(:title, :email, :tel, :detail_attributes => [:id, :description, :post_id]) end 我的表格是: <%= f.fields_for @post.detail do |builder| %>

我有一个rails 4应用程序,我尝试在其中填充Post和Detail模型。 模型之间的关系是有一个。 我有一个邮政控制器:

def post_params
  params.require(:post).permit(:title, :email, :tel, :detail_attributes => [:id, :description, :post_id])
end
我的表格是:

<%= f.fields_for @post.detail do |builder| %>
  <%= render "detail_form", detail: builder%>
<% end %>

` 当我检查post_参数时,我得到: {“标题”=>,“电子邮件”=>“toto@example.com“,”电话“=>”}

如何将详细信息属性列为白名单

谢谢

请试试这个

class Post < ActiveRecord::Base
  has_one :detail
  accepts_nested_attributes_for :detail, allow_destroy: true
end

<%= form_for @ost do |f| %>
  <%= f.fields_for :detail do |builder| %>
    <%= render "detail_form", detail: builder%>
  <% end %>
<% end %>
class Post
您的strong参数行
要求
/
允许
代码看起来正确。如Prashant4224所回答的,您是否在model.rb中包含了的接受嵌套属性

class Post < ActiveRecord::Base
  has_one :detail
  accepts_nested_attributes_for :detail
end

如果模型中已接受嵌套参数,则表单可能无法发送这些参数。您应该在调用post_params之前检查参数,并从那里调试视图代码。

我支持同时检查params和post_params的想法,这样可以更容易地查看问题发生的位置:在传入的params中,或者在post_params方法中。
def post_params
  params.require(:post).permit(:title, :email, :tel, :detail_attributes => [:id, :description, :post_id, :_destroy])
end