У меня есть множество моделей, которые необходимо выполнить следующие действия:Каков наилучший способ вставки/вставки нескольких форм в простой форме?
1) Галерея имеет много изображений и принадлежит к книге
belongs_to :books
has_many :images
accepts_nested_attributes_for :books
accepts_nested_attributes_for :images, :allow_destroy => true
// галерея контроллер
class GalleriesController < ApplicationController
before_action :set_gallery, only: [:show, :edit, :update, :destroy]
def index
@galleries = Gallery.all
end
def show
end
def new
@gallery = Gallery.new
end
def edit
end
def create
@gallery = Gallery.new(gallery_params)
end
def update
end
def destroy
@gallery.destroy
end
private
def set_gallery
@gallery = Gallery.find(params[:id])
end
def gallery_params
params.require(:gallery).permit(:name, :book_id)
end
end
2) Изображения принадлежат галерее
belongs_to :gallery
has_attached_file :file, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :file, :content_type => /\Aimage\/.*\Z/
// диспетчер изображений
3) Книга имеет одной галереи
belongs_to :author
has_one :gallery
accepts_nested_attributes_for :author
accepts_nested_attributes_for :gallery
Gemfile:
gem 'simple_form'
gem 'nested_form'
В форме для галереи у меня simple_fields_for и я сгенерировали поля формы там для изображений в загружайте, поскольку для создания галереи необходимо сделать несколько снимков:
<%= simple_form_for(@gallery, html: { multipart: true }) do |f| %>
<%= f.error_notification %>
<div class="inputs">
<%= f.input :name %>
<%= f.input :book_id %>
<%= f.simple_fields_for :image do |a| %>
<%#= f.input :picture %>
<%#= a.file_field :file %>
<%= f.input_field :file, as: :file, multiple: true, name: 'gallery[image]' %>
<% end %>
</div>
<div class="actions">
<%= f.button :submit %>
</div>
<% end %>
Затем в м y book form, где я создаю книгу. У меня есть форма, где я хочу вложить форму галереи, чтобы добавить галерею для каждого создания книги. По какой-то причине это не работает, и я продолжаю получать ошибки:
undefined method `simple_nested_form_for' for #<SimpleForm::FormBuilder:0x00000104d52640
Форма приведена ниже.
<%= simple_form_for(@book, :html => { :multipart => true }) do |f| %>
<%= f.simple_nested_form_for (@gallery) do |t| %>
<%= t.simple_fields_for :gallery do |t| %>
<%= render 'galleries/form' %>
<% end %>
<% end %>
<% end %>
Эти ошибки, похоже, из-за того, что он не находит этот метод, я дважды перезапустил сервер, и я все равно получаю ту же ошибку.
Проблема, с которой я столкнулась, - это получить галерею внутри самой книги, чтобы я мог создать книгу.