2012-06-18 63 views
1

對不起,我覺得很愚蠢的問題,但經過幾天的搜索,我仍然沒有答案,我真的對它有stackoverfloved。RefineryCMS,在前端上傳圖片

我有refinerycms擴展。像這樣:

$ rails generate refinery:engine shop name:string logo:image 

我希望它能夠從我的應用程序的後端和前端進行控制。 後端沒有問題。 (謝謝refinerycms團隊。) 當表單只包含「名稱」時,前端沒有問題。 (或任何其他沒有圖像類型的屬性)。

圖像類型屬性​​有問題。

我不希望前端用戶擁有與後端用戶相同的圖像編輯窗體。 我希望表單是水木清華這樣的:

<div class='field'> 
    <%= f.label :logo , "Logo"%> 
    <%= f.file_field :logo %> 
</div> 

而且我想通過前端用戶加載的圖像進行保存與煉油廠::圖片。

我敢打賭,問題只出現在我的前端控制器爲商店創建動作,但我不知道應該如何覆蓋它。

非常感謝您的任何建議。

回答

2

在控制器中,您必須將「標誌」參數作爲Refinery::Image實例傳遞給模型。爲此,您創建一個Refinery::Image的實例並將其合併到模型中。

實施例:

logo = Refinery::Image.create(image: params[:shop][:logo]) 

@shop = Refinery::Shops::Shop.create(params[:shop].merge({logo: logo})) 
0

我有是,file_field FE形式:在FE和在我的正常控制器(不是管理員一個)我有此方法從請求處理PARAMS(標識):

def model_params 
    permitted = params.require(:model).permit! 
    permitted[:logo] = Refinery::Image.create(image: permitted[:logo]) 
    return permitted 
end 

允許參數和創建圖像形式文件。

然後在我的創建方法:

def create 
    if (@new_beer = ::Refinery::Models::Model.create(model_params)) 
     #do some stuff when it succeeds to create it 
     redirect_to SOMEWHERE 
    else 
     redirect_to SOMEWHERE, notice: "Something went wrong!" 
    end 
    end 

希望它可以幫助! :)