Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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-动态集合选择值不会与表单的其余部分一起过帐_Ruby On Rails_Forms - Fatal编程技术网

Ruby on rails Rails-动态集合选择值不会与表单的其余部分一起过帐

Ruby on rails Rails-动态集合选择值不会与表单的其余部分一起过帐,ruby-on-rails,forms,Ruby On Rails,Forms,我正在根据另一个集合选择中的值填充位于分部中的集合选择 动态集合select values会像您预期的那样更新,但是当我提交表单时,该值不存在。请注意,表单输入的所有其余部分的其余数据都会被传递 由于需要动态采集选择中的数据,控制器会将您重定向回新视图。现在,由于您上次尝试填写表单时已选择了第一个下拉列表的值,因此动态下拉列表中已加载了可能的选择,并且在发布表单时传递了动态选择的值。如果更改第一个集合的值,请选择第二个集合,直到第二次时,它才会像以前一样发布其值 有人知道我做错了什么吗 以下是我

我正在根据另一个集合选择中的值填充位于分部中的集合选择

动态集合select values会像您预期的那样更新,但是当我提交表单时,该值不存在。请注意,表单输入的所有其余部分的其余数据都会被传递

由于需要动态采集选择中的数据,控制器会将您重定向回新视图。现在,由于您上次尝试填写表单时已选择了第一个下拉列表的值,因此动态下拉列表中已加载了可能的选择,并且在发布表单时传递了动态选择的值。如果更改第一个集合的值,请选择第二个集合,直到第二次时,它才会像以前一样发布其值

有人知道我做错了什么吗

以下是我认为与我的代码相关的部分:

包含动态集合的分部选择:

<%= collection_select(:f, :address_id, @addresses, :id, :concatenateAddress, {:include_blank => "Select an Address"}) %>
“我的视图”中的零件显示“收藏”选择框和“我的观察”字段

<tr>
  <td colspan = "2">
    <%= 
      @company = ContactCompany.find(:all)
      f.collection_select(:company_id, @company, :id, :name,{:selected => @contact.company_id }) 
    %>
    <br/>
    <%= link_to 'Company Index', {:controller=>"contact_companies", :action=>"index"} %> | <%= link_to 'New Company', {:controller=>"contact_companies", :action=>"new"}%>
  </td>
  <td><%= f.text_field :phone_number %></td>
  <td><%= f.text_field :fax_number %></td>
</tr>

<tr>
  <td colspan = "2">Address</td>
  <td>Cell Phone</td>
  <td>Alternate Phone</td>
</tr>

<tr>
  <td colspan = "2">
  <% @addresses = ContactCompanyAddress.find(:all, :conditions=> {:company_id => @contact.company_id}) %>
  <%= observe_field "contact_company_id", :url=>{:controller => 'contact_companies', :action=>'ajax_get_addresses', :id => ContactCompany.first}, :with=> 'company_id' %>
  <div id="addresses"><%= render :partial => 'contact_companies/addresses', :object => @addresses, :f => 'f'%> </div>
  <%= link_to 'Address Index', {:controller=>"contact_company_addresses", :action=>"index"} %> | <%= link_to 'New Address', {:controller=>"contact_company_addresses", :action=>"new"}%>
  </td>
</tr>

一些附加信息:我测试了IE中的内容,表单按预期工作。当我使用Firefox或Safari时,它有上述问题。我还注意到,当发生此错误时,动态选择框中的参数没有与表单的其余部分一起发布,但我不知道为什么。地址div中的部分是什么样子的?所有的东西是否都正确地包装在表单_和结束标签中?
<tr>
  <td colspan = "2">
    <%= 
      @company = ContactCompany.find(:all)
      f.collection_select(:company_id, @company, :id, :name,{:selected => @contact.company_id }) 
    %>
    <br/>
    <%= link_to 'Company Index', {:controller=>"contact_companies", :action=>"index"} %> | <%= link_to 'New Company', {:controller=>"contact_companies", :action=>"new"}%>
  </td>
  <td><%= f.text_field :phone_number %></td>
  <td><%= f.text_field :fax_number %></td>
</tr>

<tr>
  <td colspan = "2">Address</td>
  <td>Cell Phone</td>
  <td>Alternate Phone</td>
</tr>

<tr>
  <td colspan = "2">
  <% @addresses = ContactCompanyAddress.find(:all, :conditions=> {:company_id => @contact.company_id}) %>
  <%= observe_field "contact_company_id", :url=>{:controller => 'contact_companies', :action=>'ajax_get_addresses', :id => ContactCompany.first}, :with=> 'company_id' %>
  <div id="addresses"><%= render :partial => 'contact_companies/addresses', :object => @addresses, :f => 'f'%> </div>
  <%= link_to 'Address Index', {:controller=>"contact_company_addresses", :action=>"index"} %> | <%= link_to 'New Address', {:controller=>"contact_company_addresses", :action=>"new"}%>
  </td>
</tr>