0

Рецепт содержит много ингредиентов и направлений, каждый из которых относится к рецепту. Мой views/new.html.haml выполняет частичное, частичное, частичное вложение частичных элементов. Он отвергает при подаче заявления о том, что требуемых вложенных элементов не существует. Я не уверен, что я делаю неправильно или пропуская. Я много раз перебирал код и кокон-документы. Любая помощь будет принята с благодарностью.Рельсы вложенные формы с жемчужиной Cocoon, отвергающая ассоциация

модели/recipe.rb

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 

Это ссылка на частичное для каждого вложенного элемента, ингредиентов и направлений ...

views/recipes/_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 Предотвращенные этот рецепт от экономии

Ингредиенты рецепт должен существовать Directions рецепт должен существовать

+0

Я предполагаю, что у вас есть валидация в «Ингредиент» и «Направление», что рецепт должен существовать, что-то вроде 'validates_presence_of: recipe'. Как вы экономите? Я думаю, что это может сработать, если вы проверите наличие ': recipe_id' (потому что в целом все они сохранены вместе). – nathanvda

+0

Это не работает, даже если я выберу все проверки. –

ответ