2012-04-07 5 views
1

Ruby on Railsの新機能です。Ruby on Rails、あるオブジェクトから別のオブジェクトに画像を渡すか、またはNEWからCREATEへ

私は間違ったところで私の問題の解決策を探していたので、このスレッドを変更しました。私は(CarrierWaveを使用)で画像をアップロードするクラスProfileProposalを得た

は、ここに私の問題です。 ProfileProposalを別のクラス(プロファイル)に変換したいとします。 私はすべての情報をNEW-Form のプロフィールに渡します。

文字列はうまく動作しますが、イメージは正しく動作しません。

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

# 

機能するようになりましたので、私は画像のURLを持っている:メソッドを作成するのParamをGETとして

イメージを渡す:私はまだ行って/試した何

。働いていない何

は以下の通りです:profile.image @

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

はまだCarrierwaveによって与えられたデフォルト値を持っています。

ありがとうございます!

答えて

0

私は最終的にねえ、ファイルを移動すると、ディレクトリを作成しない、正常に動作ペーパークリップを使用して

Profile.create(:name => @profile_proposal.name, :image => @profile_proposal.image) 
0

私はcarrierwaveではなくpaperclipを使用していますので、この高レベルを維持しようとします。しかし、私はあなたのためのアイデアを持っています。新しい添付ファイルが存在する前にファイル名を設定し、その画像をそのパスに移動することもできます。あなたは、いくつかのIDでProfileProposalを参照し、そのProfileフォームで隠しフィールドを埋め込む必要があります

@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 
+0

経由で新しいインスタンスを作成することで、その問題を修正しました。 ファイル名が変更されていません:( – Stefan

+0

私の質問を変更しました。皆さんが私を助けてくれることを願っています。 – Stefan

+0

バックエンド固有のハック – skrat

0

:ペーパークリップでは、これは次のように出て遊ぶでしょう。その後、フォームサーバー側を処理している間、すべてが検証され、保存準備が整ったら、ProfileProposalインスタンスからProfileインスタンスへの読み取り/書き込みメソッドを使用してイメージをコピーする必要があります。私はCarrierWaveがどのようにこれをやりたいのか分かりません。

+0

1つのプロファイルに複数の提案がある可能性があります。 profile has_many profile_proposals。 プロファイルフォームにパラメータを渡すことができます。ここで私はまだ画像を知っていますが、Createではイメージを設定できません: - / – Stefan

関連する問題