私のモデルには、リンクに大量のデータを含む「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 仮想パラメーターが設定されているかどうかを My music model で確認し、設定されている場合は非同期でダウンロードします。
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 を使用できません。Plz、助けて、みんな!