私はモデルを持っています
class ServiceRequest < ActiveRecord::Base
has_many :services
accepts_nested_attributes_for :services
...
end
と子供
class Service < ActiveRecord::Base
belongs_to :service_category, :foreign_key => "wsi_web_serv_cats_uid_fk"
belongs_to :service_type, :foreign_key => "wsi_web_serv_types_uid_fk"
belongs_to :service_subtype, :foreign_key => "wsi_web_srv_subtypes_uid_fk"
belongs_to :service_requests, :foreign_key => "wsi_web_inq_audits_uid_fk"
end
そして、次のようなフォームを介してそれを作成しています:
<% form_for(@request, :url => { :action => :create }) do |form| %>
<table>
<tr>
<td><font style="font-weight: bold" color="red">*</font><b>First Name</b></td>
<td><b>Middle Initial</b></td>
<td><font style="font-weight: bold" color="red">*</font><b>Last Name</b></td>
</tr>
<tr>
<td><%= form.text_field :first_name %></td>
<td><%= form.text_field :win_middle_init, :size => "2" %></td>
<td><%= form.text_field :last_name %></td>
</tr>
<tr>
<td colspan="2">
<font style="font-weight: bold" color="red">*</font><b>Address 1</b><br/>
<%= form.text_field :address_1 %><br/>
<%= form.text_field :address_2 %>
</td>
</tr>
<tr>
<td><font style="font-weight: bold" color="red">*</font><b>City</b></td>
<td><font style="font-weight: bold" color="red">*</font><b>State</b></td>
<td><font style="font-weight: bold" color="red">*</font><b>Zip Code</b></td>
</tr>
<tr>
<td><%= form.text_field :municipality %></td>
<td><%= form.text_field :state, :size => "4" %></td>
<td><%= form.text_field :zip, :size => "9" %></td>
</tr>
<tr>
<td>
<font style="font-weight: bold" color="red">*</font><b>Phone Number</b><br/>
<%= form.text_field :day_phone %>
</td>
<tr/>
<tr>
<td>
<font style="font-weight: bold" color="red">*</font><b>Email</b><br/>
<%= form.text_field :email %>
</td>
<tr/>
<tr>
<td>
<font style="font-weight: bold" color="red">*</font><b>Confirm Email</b><br/>
<%= form.text_field :email_confirmation %>
</td>
</tr>
<tr>
<td>
<font style="font-weight: bold" color="red">*</font><b>Preferred Contact</b><br/>
<%= form.select "contact_method", options_for_select([["Phone", "PHN"], ["Email", "EML"], ["Phone or Email", "BTH"]]) %>
</td>
</tr>
</table>
<% form.fields_for :services do |fields| %>
<%= fields.hidden_field :wsi_web_serv_cats_uid_fk %>
<%= fields.hidden_field :wsi_web_serv_types_uid_fk %>
<%= fields.hidden_field :wsi_web_srv_subtypes_uid_fk %>
<% end %>
<p>
<%= form.submit "Create" %>
</p>
<% end %>
非表示のフィールドは、このフォームの送信元のページのフォームから入力されます。これはすべて正常に機能します。私のcreateメソッドは次のとおりです。
def create
service_request = ServiceRequest.new(params[:service_request])
if service_request.save!
flash[:notice] = "Information submitted successfully. You will be contacted by a customer service representative regarding the services you selected."
redirect_to :controller => "customer", :action => "index"
else
flash[:notice] = "Error submitting info. Please try again."
redirect_to :back
end
end
すべてがデータベースに問題なく作成されます。ただし、2つのモデルは外部キーによってリンクされていません。つまり、子モデルに外部キーが設定されることはありません。どうすればこれを修正できますか?これは文書化されたバグだと言う人もいますが、これがどこにも当てはまるとは思えません。助けてくれてありがとう。