1

У меня есть Article, у которого есть вложенный ресурс Image Gallery. У Image Gallery есть вложенный ресурс Image Gallery Image. Я настроил мой Params для Articles как таковые:Rails Cocoon Gem - двойной вложенный ресурс

params.require(:article).permit(
    :featured_image, :title, :description, :department_id, :order_number, 
    image_galleries_attributes: [:id, :order_number, :_destroy, 
     image_gallery_images_attributes: [:id, :order_number, :caption, :_destroy] 
    ] 
) 

я в настоящее время с помощью Cocoon Gem - и попытался иметь двойной вложенный ресурс внутри формы ввода, например, так:

= f.fields_for :image_galleries do |gallery| 
    %h4 Image Gallery 
    = gallery.input :order_number, placeholder: "1" 
    = link_to_remove_association "Remove", gallery, class: "btn-remove" 

    = gallery.simple_fields_for :image_gallery_images do |image| 
    = render 'image_gallery_image_fields', image: image 

    = link_to_add_association 'add', gallery, :image_gallery_images 

_image_gallery_image_fields .html.haml

= image.input :order_number 
= link_to_remove_association "Remove", image 

Даже имея локальные переменные, передаваемые оказанной зрения, я все еще получаю следующее сообщение об ошибке:

undefined local variable or method `image' 

Нужно ли передавать переменную по-разному при работе с вложенными ресурсами? Или есть ли причина, по которой автоматически используемый шаблон (_image_gallery_image_fields.html.haml) должен использоваться по-другому?

Спасибо за любую доступную помощь!

UPDATE

Создать метод в статье контроллера.

def create 
    @article = @issue.articles.create(article_params) 
    @article.user_id = current_user.id if current_user 
    @article.save 
    if @article.save 
     flash[:notice] = "Article was successfully created" 
     redirect_to edit_admin_issue_article_path(@issue, @article) 
    else 
     render 'new' 
    end 
end 
+0

Как выглядит ваш метод создания в вашем контроллере статей? –

+0

Возможно, проблема заключается в том, что вы не правильно создаете свой образ в своем контроллере статей? Этот ответ (для Rails 3, но довольно ясный) - http://stackoverflow.com/questions/3784183/rails-3-how-to-create-a-new-nested-resource. В ваших статьях новое действие что-то вроде: @ article.image_galleries.image.build (возможно, требуется?) Тогда ваши параметры param будут позаботиться об остальном в действии create. –

ответ

0

Я думаю, вам нужно разместить поле с именем изображения на своих разрешенных параметрах. Это поле будет иметь путь к вашему изображению в базе данных. Что вы используете для загрузки изображения?