如何将5张最近的照片与帐户相关联

时间:2014-03-10 16:53:09

标签: ruby-on-rails ruby

我有model Company has_many :company_pictures但最多5张照片。我必须向用户显示所有5个文件字段以进行图像上传。

class Company < ActiveRecord::Base
  has_many :company_pictures
  accepts_nested_attributes_for :company_pictures
end

class CompanyPicture < ActiveRecord::Base
    belongs_to :company
    has_attached_file :picture, :styles => { :medium => "300x300>"}
end

控制器代码

def new
    @company = Company.new
    5.times { @company.company_pictures.build }
end

现在以新的形式通过这个我可以显示5个文件字段。现在提交。现在说,由于任何其他错误,我的表单没有得到保存。现在我只找到那些具有某些价值的文件字段。我想确保用户最多可以附加5张照片,无论他是创建新公司还是更新公司。

1 个答案:

答案 0 :(得分:0)

在这种情况下我通常做的是,在向用户呈现“新”布局之前,我首先在数据库中创建并保存对象,其状态为“草稿”,目的是获取主键并且能够保存图片(图片需要主键才能保存)。然后,当用户提交表单时,无论是否有错误,我总是保存图片,然后向用户显示表单,错误(如果有),并且由于图像保存到数据库,您可以将它们显示给用户。如果没有错误,只需从用户中删除“草稿”状态并继续您的工作流程。

现在的问题是,我们如何处理所有这些草案?创建一个每小时运行一次的rake任务,并删除此状态下的所有记录。