0

私のモデルには、リンクに大量のデータを含む「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、助けて、みんな!

4

2 に答える 2