2012-04-23 99 views
1

我有一個應用程序,用戶選擇一個模板。在此模板上,用戶可以上傳圖像。定義回形針樣式大小dynamicaly

我用回形針上傳圖像。

每個模板都有不同的圖像尺寸。

是否可以在回形針中動態設置圖像風格=>'widthxheight'?

我想要這個功能,因爲如果用戶決定改變模板,那麼他們不必再次上傳照片,他們只是裁剪'原始'。

感謝您的任何幫助。

我會盡力澄清這一點。

用戶上傳頁面標題的圖像。該樣式可以稱爲「標題」,尺寸應該是該標題空間的尺寸,例如「400x600」

現在用戶查看他們上傳到圖庫中的圖像。他們希望爲他們的頁面選擇其中一個圖像,但是這次是針對尺寸爲「300x100」的「側邊欄」。我不想讓他們再次上傳相同的圖像。我想創建一個尺寸爲「300x100」的稱爲「側邊欄」的新樣式。我也不想刪除「標題」樣式或調整它的大小。

我怎樣才能用回形針做到這一點?

+0

我認爲[這個其他線程(http://stackoverflow.com/questions/4029480/paperclip-attachments-with-dynamic-style-sizes-from-model)可能是你的興趣 – Christian 2012-04-26 16:57:01

+0

基督教非常感謝,真的幫助我。 – chell 2012-05-06 13:01:37

回答

5

如果我知道你心裏有類似的東西:Paperclip change size

此外:

attr_accessor :size 

... 
self.dimensions = self.size.split("x") 

控制器:

def create 
    ... 
    @file.size = params[:size] # OR Simply include such field in form 
    ... 
end 

例子:

型號:

class File 
    has_attached_file :upload 
    attr_accessor :size 
    before_save :extract_dimensions 
    serialize :dimensions 
    ... 
    def extract_dimensions 
    ... 
    self.dimensions = self.size.split("x") 
    end 
end 

形式:

<form action="some link"> 
    ... 
    <label>Size: </label><select name="file_size"> 
    <option value="100x200">Large</option> 
    ... 
    </select> 
</form> 
+0

感謝Eraden的回答。我希望能夠以不同的尺寸保存不同的樣式名稱。第一次可能有一種稱爲「標題」的風格。所以對於標題的尺寸,這種風格是通過回形針來保存的。如果用戶從圖庫中選擇了該圖像,但希望尺寸不同,那麼我想用不同的名稱和尺寸保存不同的樣式,例如尺寸爲「50x50」的「頁腳」。這就是我想要做的。 – chell 2012-05-01 09:11:52

+0

按維度保存尺寸模型,使用回形針保存圖像。使用此架構U可以在選擇字段中將選項的值設置爲維度ID ||維度名稱[由服務器端的Dimension.find_by_name(...)]或創建新維度。當U添加新的圖像保存爲基本(U可以在數據庫中添加字段類型或創建樹表類型[parent_id])。當用戶將圖像轉換爲不同類型時,只需創建類型爲dimension_id的新條目。通過這種方式,您可以檢查是否存在該類型的圖片(如果只是獲取其ID)或創建新條目。 – Eraden 2012-05-02 09:58:06

+0

更改: remove'attr_accessor:size' add'belongs_to:dimension' add model Dimension 'self.dimensions = self.dimension.size'替換self.dimensions = self.size.split(「x」)'' .split(「x」)' – Eraden 2012-05-02 09:59:58