У меня есть следующие модели с ассоциациями:
class Order < ActiveRecord::Base
has_many :guests
has_many :customers, :through => :guests
accepts_nested_attributes_for :customers
end
class Customer < ActiveRecord::Base
has_many :guests
has_many :orders, :through => :guests
has_many :slips
accepts_nested_attributes_for :slips
end
class Slip < ActiveRecord::Base
belongs_to :order
belongs_to :customer
end
class Guest < ActiveRecord::Base
belongs_to :order
belongs_to :customer
end
Моя вложенная форма выглядит следующим образом:
<!-- general form -->
<%= form_for(@order) do |f| %>
<% f.fields_for :customers do |builder| %>
<%= render "customer_fields", :f => builder %>
<% end %>
<%= f.submit %>
<% end %>
<!-- partial customer_fields -->
<p>
<%= f.label :name%><%= f.text_field :name %>
<% f.fields_for :slips do |builder| %>
<%= render "slip_fields", :f => builder %>
<% end %>
</p>
<!-- partial slip_fields -->
<p><%= f.label :quantity%><%= f.text_field :quantity %></p>
При этой настройке сохранение заказа работает, как и ожидалось, но мне нужен order_idчтобы быть сохраненным с промахом, поэтому у меня есть ссылка между ордером <-> промах.С этой настройкой я теряю ссылку.Я могу получить всех связанных клиентов, но я получу все связанные с клиентом квитанции, связанные с заказом или нет.
Вот поля моих моделей: Заказ -> id
Клиент -> id
Гость -> id, идентификатор_порядка, customer_id
Slip -> id, идентификатор_порядка, customer_id
Результат заказа должен выглядеть следующим образом
- Заказ
- Клиент A
- Клиент B
- Клиент A
Я понятия не имею, как этого добиться.