1

私はRuby on Railsにかなり慣れていません。

私は自分の問題の解決策を間違った場所で探していたことに気付いたので、このスレッドを変更しました。

ここに私の問題があります:

(CarrierWaveを使用して)画像をアップロードするClass ProfileProposalを取得しました。ここで、 ProfileProposalをProfileという別のクラスに変換したいと思います。したがって、すべての情報を NEW-Form のProfileに渡します。

文字列では正常に機能しますが、画像では機能しません。

私がすでに試したこと/行ったこと:

イメージを GET パラメータとして Create メソッドに渡します。

<%= form_for @profile, :url => { :action => "create", :controller => "profiles", :image => @profile_proposal.image } do |f| %>

#

これで機能するようになったので、image-url を持っています。

機能していないのは次のとおりです。

@profile = Profile.new(params[:profile], :image => new_image_url)
# OR
@profile.image = new_image_url

@profile.image には、Carrierwave によって指定されたデフォルト値がまだあります。

前もって感謝します!

4

3 に答える 3

0

私はキャリアウェーブではなくペーパークリップを使用しているので、この高レベルを維持しようとします。しかし、私はあなたのための考えを持っています。新しい添付ファイルが存在する前にファイル名を設定してから、画像をそのパスに移動できる場合があります。ペーパークリップを使用すると、次のようになります。

@profile.image_file_name = "profile.jpg"
# creates the directory of the new path.  There's probably a better way to do this:
FileUtils.mkdir_p @profile.image_file_path.gsub(/[^\/]*$/,'')
FileUtils.mv @profile_proposal.image_path @profile.image_path
于 2012-04-07T15:33:32.230 に答える
0

ペーパークリップを使用して新しいインスタンスを作成することで、最終的にその問題を修正しました

Profile.create(:name => @profile_proposal.name, :image => @profile_proposal.image)
于 2012-04-11T10:39:10.753 に答える
0

IDProfileで参照する隠しフィールドをそのフォームに埋め込む必要があります。ProfileProposal次に、フォーム サーバー側を処理している間、すべてが検証されて保存の準備ができたら、いくつかの読み取り/書き込みメソッドを使用して、インスタンスからProfileProposalインスタンスへとイメージをコピーする必要がありProfileます。CarrierWave がどのようにこれを行うことを望んでいるのかわかりません。

于 2012-04-08T14:23:55.817 に答える