2012-04-07 94 views
1

我對Ruby on Rails很新穎。Ruby on Rails,將圖像從一個對象傳遞到另一個對象或從NEW創建到創建

我改變了這個主題,因爲我意識到我在錯誤的結尾尋找我的問題的解決方案。

這裏是我的問題:

我有一個類ProfileProposal我上傳與(使用CarrierWave)的圖像。 現在我想將ProfileProposal轉換爲另一個類,稱爲配置文件。 因此,我將所有信息傳遞給的新表格

適用於字符串,但不適用於圖像。

我已經嘗試/完成:

傳遞形象作爲GET參數去創建方法:

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

# 

現在的工作,所以我有圖像的URL。

什麼不工作如下:

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

@ profile.image仍然由Carrierwave給出的默認值。

在此先感謝!

回答

0

我終於通過

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

我來自使用回形針,而不是carrierwave,所以我會盡量保持這個高水平。但我有一個想法給你。也許你可以在它存在之前設置新附件的文件名,然後將圖像移動到該路徑。隨着回形針這將發揮出像:

@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 2012-04-08 10:45:49

+0

哎,我改變了我的問題,希望你們能幫助我 – Stefan 2012-04-08 14:04:44

+0

後端特定的黑客 – skrat 2012-04-08 14:20:08

0

你應該在Profile形式嵌入一個隱藏字段,一些ID引用ProfileProposal。然後,在處理表單服務器端時,在所有內容都經過驗證並準備好保存之後,您應該使用一些讀/寫方法將圖像從ProfileProposal實例複製到Profile實例。我不確定CarrierWave如何讓你做到這一點。

+0

有建議多單的一個輪廓的可能性,所以: 輪廓的has_many profile_proposals 我可以在配置文件表單中傳遞參數,但是在Create中我無法設置圖像: - / – Stefan 2012-04-08 14:58:03

相關問題