2016-12-06 1 views
0

В принципе, я хочу, чтобы пользователь выбрал файл для загрузки. Затем, когда пользователь нажимает кнопку отправки формы, она будет успешной только в том случае, если пользователь выбрал файл.Попытка проверки выполнения на загруженные файлы (в частности, изображения)

Я думаю, что мне нужно что-то вроде validates_attachment в Paperclip, за исключением несущей волны. Код, который я отправляю, всегда будет отображать recipe_images/new независимо от того, выбрал ли пользователь изображение или нет.

Модель

class RecipeImage < ApplicationRecord 
    # upload images 
    mount_uploader :image, ImageUploader 
    validates_presence_of :image 
    # associations 
    belongs_to :recipe 
end 

Контроллер

class RecipeImagesController < ApplicationController 
    def new 
    @recipe_image = RecipeImage.new 
    @recipe_id = params[:recipe_id] 
    if current_user != Recipe.find(@recipe_id).user 
     redirect_to recipe_path(@recipe_id) 
    end 
    end 

    def create 
    @recipe_image = RecipeImage.new(recipe_image_params) 
    @recipe_id = params[:recipe_id] 
    @recipe = Recipe.find(@recipe_id) 
    if @recipe.recipe_images << @recipe_image 
     redirect_to recipe_path(@recipe) 
    else 
     flash[:recipe_image_create] = 'Please choose an image.' 
     render 'recipe_images/new' 
    end 
    end 

    private 
    def recipe_image_params 
     params.permit(:image) 
    end 
end 

Посмотреть

<% if flash[:recipe_image_create] %> 
    <strong><%= flash[:recipe_image_create]%></strong> 
<% end %> 

<%= form_for(@recipe_image, html: {multipart: true}) do |f| %> 
    <p>Select Image</p> 
    <div class="form-group"> 
    <%= f.file_field :image %> 
    </div> 

    <%= hidden_field_tag 'recipe_id', @recipe_id %> 
    <%= f.submit 'Save',{class: 'btn btn-primary'} %> 
<% end %> 

ответ

0

По какой-то причине СОЗДАНИЯ добавив еще один столбец в модели фиксированной эту ошибку. Не знаю, почему, но я возьму его.

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