2 модели по форме в рельсах 3 - PullRequest
0 голосов
/ 03 ноября 2011

Я очень новичок в разработке рельсов. Я создаю простой бэкэнд для своего сайта портфолио.

Я не уверен насчет названия этого вопроса. Предыдущий вопрос, который я задал, может быть, слишком запутанный. Так что я упрощаю это.

Я использую 3 модели: сообщение, вложение, вложение_категория

У меня есть форма, которую я использую:

  1. Составьте сообщение с заголовком, содержанием и категорией.

  2. Отображение категорий вложений в раскрывающемся списке (слайд-шоу, изображения, видео)

  3. Загрузить приложение (я).

Я реализовал шаги 1 и 2.

Для шага 3: я хочу, чтобы, когда я в конце концов нажал кнопку отправки в форме, attachment_category_id был сохранен в таблице вложений.

У меня есть следующие отношения:

post.rb

class Post < ActiveRecord::Base

has_many :attachment_categories, :through => :attachments
has_many :attachments,:dependent => :destroy

accepts_nested_attributes_for :attachments
validates_presence_of :title, :content, :category

end

Attachment.rb

class Attachment < ActiveRecord::Base

belongs_to :post
belongs_to :attachment_category


#paperclip
has_attached_file :photo, :styles =>{

:thumb => "100x100#",
:small => "400x400>"

}

end

Attachment_category.rb

class AttachmentCategory < ActiveRecord::Base

has_many :posts , :through => :attachments
has_many :attachments

validates :category_name, :presence =>true

end

1 Ответ

0 голосов
/ 15 ноября 2011

Итак, я выполнил шаги 1, части шага 2 и шага 3.

Благодаря моему решению я могу загрузить только одно вложение.Но это работает: вложение сохраняется в таблице вложений с post_id и attachment_category_id.

Следующий код взят из _form.html.erb, который отправляется на post_controller.rb.Усеченный код:

.....

   <%= f.fields_for :attachments do |attach| %> <br>

   <%= attach.collection_select :attachment_category_id, AttachmentCategory.all, :id, :category_name %>
   <%= attach.file_field :photo %> <br>

   <% end %>

.....
...