У меня есть довольно основные ассоциации:Проблема с has_many: через и fields_for
# user.rb
class User < ActiveRecord::Base
has_many :services, :through => :subscriptions
has_many :subscriptions, :accessible => true
accepts_nested_attributes_for :subscriptions
end
# service.rb
class Service < ActiveRecord::Base
has_many :users, :through => :subscriptions
has_many :subscriptions
end
# subscription.rb
class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :service
end
Подписки также имеет булево столбец «уведомление», который мне нужно настроить индивидуально, поэтому я заглянул в API, следовал пример и придумал этот код для моей формы:
- if current_user.subscriptions.length > 0
%fieldset#subscriptions
%legend Abonnements
%table
%tr
%th.name
%th.notification Notifications?
- for subscription in current_user.subscriptions do
%tr
- f.fields_for :subscriptions, subscription do |s|
%td=subscription.service.name
%td= s.check_box :notification
Но когда я сохранить форму, все связанные подписки уничтожаются. Если я установил флажок, он не будет удален, , но флажок не сохранен. Кто-нибудь знает, что я делаю неправильно?
Это ничего не меняет, хотя хорошо знать, что мне вообще не нужно 'for'. –