2012-06-18 1 views
1

Прошу прощения за довольно глупый вопрос, но после нескольких дней поиска у меня все еще нет ответа, и я действительно уверен в этом.RefineryCMS, Загрузить изображение на стороне FrontEnd

У меня есть расширение продления. Пример:

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

Я хочу, чтобы это контролировалось как с бэкэнд, так и с интерфейсом моего приложения. Не имеют проблем с бэкэнд. (Спасибо за команду refinerycms.) Не имеют проблем с интерфейсом, когда в форме содержится только «имя». (Или любой другой атрибут, который не имеет типа изображения).

Возникли проблемы с атрибутами типа изображения.

Я не хочу, чтобы пользователь интерфейса имел ту же форму редактирования изображений, что и пользователь backend. Я хочу, чтобы форма, чтобы быть чем-л так:

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

И я хочу изображения, загруженные пользователем во внешнем интерфейсе должны быть сохранены с завода :: Image.

Уверен, что проблема только в моем контроллере frontend создает действие для магазинов, но я не знаю, как его следует перезаписать.

Большое спасибо за любое предложение.

ответ

2

В контроллере вам необходимо передать параметр «логотип» модели в качестве экземпляра Refinery::Image. Для этого вы создаете экземпляр Refinery::Image и объединяете его с моделью.

Пример:

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

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

У меня FE форму с file_field (: логотип) на 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 

Надеется, что это может помочь! :)

 Смежные вопросы

  • Нет связанных вопросов^_^