Ruby on rails 4 Rails 4有多个直通:未插入嵌套模型id字段

Ruby on rails 4 Rails 4有多个直通:未插入嵌套模型id字段,ruby-on-rails-4,params,Ruby On Rails 4,Params,我有visit和condition\u value模型,通过condition\u visit与有很多关联。 此外,还有另外两种模型:condition\u type和condition\u name。所以基本上有几个条件,每个条件都有一个类型和几个值。创建访问时,用户为每个条件选择多个值。每种情况都有一个详细信息字段 我省略了代码中看起来不相关的部分 class ConditionValue < ActiveRecord::Base belongs_to :condition_n

我有
visit
condition\u value
模型,通过
condition\u visit
有很多关联。
此外,还有另外两种模型:
condition\u type
condition\u name
。所以基本上有几个条件,每个条件都有一个类型和几个值。创建访问时,用户为每个条件选择多个值。每种情况都有一个
详细信息
字段

我省略了代码中看起来不相关的部分

class ConditionValue < ActiveRecord::Base
    belongs_to :condition_name
    has_many :visits
    has_many :condition_visits, through: :visits
end

class ConditionVisit < ActiveRecord::Base
    belongs_to :visit
    belongs_to :condition_value
end

class Visit < ActiveRecord::Base
    has_many :condition_values, through: :condition_visits
    has_many :condition_visits, :dependent => :destroy
    accepts_nested_attributes_for :condition_visits, :allow_destroy => true
end

如何修复此问题?

在控制器
参数中。允许使用
条件值id[]
而不是
条件值id[]
@GokulM谢谢!“unpermitted parameter”警告已消失,但仍未插入
条件值id
字段。
条件值id
表中是否有可用的
条件访问
请检查。@GokulM是的,它在那里,但您的显示如下
插入到“条件访问”(“详细信息”,“访问id”“已创建”、“已更新”)
请重新启动服务器并检查。
class VisitsController < ApplicationController
    ...
  def new
    @visit = Visit.new
    @visit.condition_visits.build
  end
   ...
  private
    # Use callbacks to share common setup or constraints between actions.
    def set_visit
      @visit = Visit.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def visit_params
      params.require(:visit).permit( ... , condition_visits_attributes:
       [:details, condition_value_id:[]])
    end
end
<div class="field">
<% ConditionType.all.each do |type| %>
  <% ConditionName.all.each do |v| %>
    <% if ConditionName.find_by(:name => v.name, :condition_type_id => type.id) %>
      <%= f.fields_for :condition_visits do |s| %>
        <%= v.name %> <%= s.collection_select(:condition_value_id, ConditionName.find_by(:name => v.name, :condition_type_id => type.id).condition_values, :id, :name, {:include_hidden => false}, :multiple => true) %>   
        Details: <%= s.text_field :details %>
      <% end %> 
    <% end %> 
    <br>
  <% end %>
  <hr>
<% end %>  
Parameters: {"utf8"=>"✓", "authenticity_token"=>"eo9jxQqPk0UlPxAomDy4Njvf2+evVE/yySiaDFZMQM4Db5IvmTQ5fDK8wtxd5bTDMNfzfDBxXO+c+RdAXMjiMQ==", 
"visit"=>{"condition_visits_attributes"=>{
"0"=>{"condition_value_id"=>["2", "3"], "details"=>"1"}, 
"1"=>{"condition_value_id"=>["13"], "details"=>"2"}, 
"2"=>{"details"=>""}, "3"=>{"details"=>""}, 
"4"=>{"details"=>""}, "5"=>{"details"=>""}, "6"=>{"details"=>""}, 
"7"=>{"details"=>""}, "8"=>{"details"=>""}, "9"=>{"details"=>""}, 
"10"=>{"details"=>""}, "11"=>{"details"=>""}, "12"=>{"details"=>""}, 
"13"=>{"details"=>""}, "14"=>{"details"=>""}, "15"=>{"details"=>""}, 
"16"=>{"details"=>""}, "17"=>{"details"=>""}, "18"=>{"details"=>""}, 
"19"=>{"details"=>""}, "20"=>{"details"=>""}, "21"=>{"details"=>""}, 
"22"=>{"details"=>""}, "23"=>{"details"=>""}, "24"=>{"details"=>""}, 
"25"=>{"details"=>""}, "26"=>{"details"=>""}, "27"=>{"details"=>""}, 
"28"=>{"details"=>""}, "29"=>{"details"=>""}}, ..., 
"commit"=>"Create Visit", "doctor_id"=>"1", "patient_id"=>"14"}

....

SQL (0.2ms)  INSERT INTO "condition_visits" ("details", "visit_id",
    "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["details", "1"],
    ["visit_id", 236], ["created_at", "2016-03-22 13:20:46.254311"], 
    ["updated_at", "2016-03-22 13:20:46.254311"]]
SQL (0.1ms)  INSERT INTO "condition_visits" ("details", "visit_id",
    "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["details", "2"],
    ["visit_id", 236], ["created_at", "2016-03-22 13:20:46.256021"], 
    ["updated_at", "2016-03-22 13:20:46.256021"]]
SQL (0.1ms)  INSERT INTO "condition_visits" ("details", "visit_id",
    "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["details", ""], 
    ["visit_id", 236], ["created_at", "2016-03-22 13:20:46.257165"], 
    ["updated_at", "2016-03-22 13:20:46.257165"]]
...