Rails嵌套,复杂的图像库形式

时间:2014-08-25 17:31:58

标签: ruby-on-rails forms associations rails-activerecord has-and-belongs-to-many

我正在尝试在我的Rails应用程序中创建媒体库。

我有两个模型,相册和图像。剥离版本如下:

class Album < ActiveRecord::Base
    has_and_belongs_to_many :images
end

class Image < ActiveRecord::Base
  has_and_belongs_to_many :albums

  mount_uploader :image, ImageUploader
end

由于图像可以属于许多相册,而相册可以有许多图像,我怀疑它们都应该有has_and_belongs_to_many。有人可以证实这是正确的吗?协会仍然经常困扰我。

对于图库,我正在使用albums#index页面列出所有相册。页面上的按钮允许用户创建相册并重定向到此相册的#show方法。那就是我被困住的地方。

从UX的角度来看,我不想强​​迫用户创建相册,然后转到单独的页面将图像上传到该相册。我希望他们能够在专辑#show页面上传图像。

我有这样的事情:

= simple_form_for [:admin, @album], html: { multipart: true } do |a|
  = a.simple_fields_for :images do |i| 
    = i.input :title
    = i.file_field :image
  = a.submit

这不起作用。我收到错误消息:Image(#70146236626460) expected, got Array(#70146232389660)

然后我尝试从我的专辑#index view中的ImagesController渲染模板:

= render admin/images/form

我正在使用inherited_resources gem,所以在我的AlbumController中我做了:

def show
  super do
    @image = Image.new
  end
end

这解决了我得到的第一个错误,但后来它给了我更多错误,我认为这不是正确的方法。

所以.. tl;博士:简单的问题。如何获取表单以上传图片并将其与album#show页面上的正确相册相关联?

0 个答案:

没有答案