【发布时间】:2013-12-13 02:19:08
【问题描述】:
我有一个项目模型,我可以在其中创建项目并为每个项目上传视频和照片。我正在使用嵌套属性。我的表单显示 5 个照片上传按钮和 5 个视频上传按钮。我想隐藏使用的按钮。例如:如果我上传了 1 张照片和 2 个视频,我希望我的编辑表单显示 4 个上传照片按钮和 3 个视频按钮。
现在,如果上传照片,它会隐藏照片中的 1 个上传按钮和视频中的一个按钮。有谁知道如何做到这一点?
这是我的控制器。
def new
@project = Project.new()
(5 - @project.assets.length).times { @project.assets.build }
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @project }
end
end
# GET /projects/1/edit
def edit
@project = Project.find_by_permalink(params[:id])
(5 - @project.assets.length).times { @project.assets.build }
end
宝石:
gem "paperclip", "~> 3.5"
# handels video upload
gem "paperclip-ffmpeg", "~> 1.0.0"
项目模型:
class Project < ActiveRecord::Base
has_permalink :title
default_scope :order => 'created_at desc'
attr_accessible :title, :description, :assets_attributes, :dependent => :destroy
validates_uniqueness_of :title
validates_presence_of :title
has_many :assets, :dependent => :destroy
accepts_nested_attributes_for :assets, :allow_destroy => true
end
资产模型:
class Asset < ActiveRecord::Base
require 'paperclip'
require 'paperclip-ffmpeg'
belongs_to :project, :foreign_key => "project_id"
attr_accessible :project_id, :photo, :video
has_attached_file :photo, :styles => { :thumb => "130x130#", :medium => "300x300#", :small => "160x160#"}
has_attached_file :video, :styles => {
:mobile => {:geometry => "400x300", :format => 'flv', :streaming => true}
}, :processors => [:ffmpeg, :qtfaststart]
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 file-upload ruby-on-rails-4