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