首页 > 解决方案 > 在 Rails 中创建媒体相册。新的和编辑的不同形式

问题描述

我的应用程序上有一个名为 Album 的模型,上面可以有多个媒体文件。

这是我的模型:

class Album < ApplicationRecord

  belongs_to :user
  has_many :photos,dependent: :destroy

  has_many :media
  accepts_nested_attributes_for :media

class Media < ApplicationRecord
  mount_uploader :file_name, MediaUploader
  belongs_to :album
end

在我看来,我使用 dropzone 以便用户可以为他的专辑拖放媒体。

这里的问题。创建新专辑时,仍然没有它的 id。因此,当使用 javascript 添加这些媒体时,我得到了一个错误,因为当然,belongs_to :album 坏了,因为我们的应用程序上仍然没有专辑。

所以,我想为相册创建一个视图,当用户创建新相册时,首先它选择一个名称并保存它。然后他可以为这张专辑编辑添加媒体。

问题是,我怎样才能让它尽可能干燥?一种在创建新专辑时仅显示 NAME 属性的表单。然后,保存后,它可以显示Medias拖放区域吗?

标签: ruby-on-rails

解决方案


使用一种形式,只在 if 条件后显示 dropzone

<% if form.object.persisted? %>

推荐阅读