В рецепте много ингредиентов и направлений, каждое принадлежит рецепту. Мой views/new.html.haml
отображает партиал _form
, который отображает вложенные партиалы. Он отклоняет отправку, говоря, что требуемые вложенные элементы не существуют. Я не уверен, что я делаю неправильно или отсутствует. Я неоднократно просматривал код и документы кокона. Любая помощь будет принята с благодарностью.
модели/рецепт.рб
has_many :ingredients
has_many :directions
accepts_nested_attributes_for :ingredients, reject_if: :all_blank, allow_destroy: true
accepts_nested_attributes_for :directions, reject_if: :all_blank, allow_destroy: true
Использование драгоценного камня simple_form в партиале _form.html.haml
%h3 Ingredients
#ingredients
= f.simple_fields_for :ingredients do |ingredient|
= render 'ingredient_fields', f: ingredient
.links
= link_to_add_association 'Add Ingredient', f, :ingredients
%h3 Directions
#directions
= f.simple_fields_for :directions do |direction|
= render 'direction_fields', f: direction
.links
= link_to_add_association 'Add Step', f, :directions
= f.button :submit
Это ссылки на партиал для каждого вложенного элемента, ингредиентов и направлений...
представления/рецепты/_direction_fields.html.haml
.nested-fields
= f.input :step, input_html: { class: 'form-input form-control' }
= link_to_remove_association "Remove Step", f, class: 'btn btn-default form-button'
представления/рецепты/_ingredient_fields.html.haml
.nested-fields
= f.input :name, input_html: { class: "form-input form-control" }
= link_to_remove_association "Remove", f, class: "form-button btn btn-default"
Когда я пытаюсь отправить новый рецепт с инструкциями и ингредиентами, я получаю откат и всплывающее уведомление с надписью...
2 Предотвращено сохранение этого рецепта
Должен существовать рецепт ингредиентов Должен существовать рецепт направлений
Ingredient
иDirection
, что рецепт должен существовать, что-то вродеvalidates_presence_of :recipe
. Как вы экономите? Думаю может сработать, если проверить наличие:recipe_id
(ибо вообще они все вместе сохраняются). - person nathanvda   schedule 18.12.2016