【发布时间】:2013-10-28 09:07:10
【问题描述】:
我的模型有一个“url”虚拟参数,链接上有大量数据。同一个模型有一个回形针附件:所以当一个新实例被创建时,它可以包含附件的数据或对象应该从哪里下载它的 url 字符串。我想封装所有检查是基于 url 的数据还是来自控制器的原始数据:
@music = @order.build_music(params[:soundtrack])
if @music.save
format.html { redirect_to edit_order_path(@order) }
format.js
else
format.html {render :action => 'new'}
format.js
end
我要我的音乐模型检查是否设置了 url 虚拟参数,是否设置了异步下载:
has_attached_file :soundfile
after_save :check_if_url
def self.downloadSoundtrack(id, url)
find(id).update_column(:soundfile, open(url))
end
private
def check_if_url
if self.url.present?
Soundtrack.delay.downloadSoundtrack(self.id, self.url)
end
end
但是 update_column 不适用于虚拟参数,我不能使用 save '因为它会反复触发 after_save 回调。请帮助,伙计们!
【问题讨论】:
标签: ruby-on-rails activerecord callback paperclip