나는 모델accepts_nested_attributes_for하지 외래 키
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 %>
숨겨진 필드는 이 페이지의 양식에서 채워집니다. 이 모든 것이 잘 작동합니다. 내 작성 방법은 다음과 같습니다.
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
모든 것이 데이터베이스에 정상적으로 생성됩니다. 그러나 두 모델은 외래 키로 연결되어 있지 않습니다. 즉, 외래 키는 자식 모델에 설정되지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 어떤 사람들은 이것이 문서화 된 버그라고 말한 적이 있습니다 만, 나는 이것이 어디서나 진실이라고 발견 할 수 없었습니다. 어떤 도움을 주셔서 감사합니다.
노트'belongs_to : service_requests는, 상기 서비스 요청 및 서비스 유형에 대한 FK 관계가 연결되도록되어 어디 foreign_key =>는 "wsi_web_inq_audits_uid_fk은"'이다. 그 코드를 보아서는 분명치 않다. 이것은 설정되지 않는 열입니다. – Lukas