У меня есть 3 модели в моей Rails 4.2 приложения:кокон перл: защитить вложенная связанный модель
class Vintage < ActiveRecord::Base
has_many :grapers, dependent: :destroy
has_many :grapes, through: :grapers
attr_accessible :grapers_attributes
accepts_nested_attributes_for :grapers, reject_if: :all_blank, allow_destroy: true
accepts_nested_attributes_for :grapes
end
class Grape < ActiveRecord::Base
has_many :grapers
has_many :vintages, through: :grapers
end
class Graper < ActiveRecord::Base
belongs_to :vintage
belongs_to :grape
attr_accessible :grape_attributes
accepts_nested_attributes_for :grape, reject_if: :all_blank
attr_accessor :name
end
Мой кокон форма с вложенными атрибутами работает хорошо. Моя проблема uniq заключается в том, что я не хочу разрешать создавать/обновлять виноград через вложенную форму.
Мои марочные владеет многими grapers связанные с винограда. Я не хочу, чтобы приложение могло создавать/обновлять виноград через эту форму. У меня есть другая форма, чтобы добавить виноград. Я просто хочу использовать вложенную форму, чтобы прикрепить виноград к мародерству через стражников.
Что я пропустил? Как запретить приложение редактировать виноград через вложенную форму?
На самом деле, например, если я вхожу в «Мерло» и не нажимаю на строку «Мерло», приложение изменит «Мерло» на «Мерло» в моей базе данных!
EDIT: Код на мой взгляд:
<%= link_to_add_association 'Add grape', f, :grapers, 'data-association-insertion-node' => "#vintage-grapes ol", 'data-association-insertion-method' => "append", :wrap_object => Proc.new {|graper| graper.build_grape; graper }, :partial => '/admin/vintages/graper_field' %>
На самом деле, я уже удалил «accepts_nested_attributes_for: grapes» в винтажной модели. Но я все же могу изменить имя винограда, например. Что вы подразумеваете под grape_parameters в моем дезинфицирующем устройстве? Я добавил ссылку link_to_add_association в основное сообщение. –
ОК, я прокомментировал «attr_accessible: grape_attributes» в модели graper. Кажется, что я работаю: я не могу изменить виноградник, который уже спасен. Мне нужно удалить graper (виноград) и добавить новый, если я хочу изменить. –
По умолчанию rails 'sanitizer' является' strong_parameters', и вам не нужно комментировать 'attr_accessible'. –