0

Я пытаюсь установить CarrierWave gem на ActiveAdmin в рельсах, и установка показалась достаточно легкой. Однако, когда я пытаюсь загрузить тестовое изображение в каталог /public/uploads, изображение не сохраняется. Более раздражает тот факт, что не возникает никаких исключений, поэтому я не знаю, где искать, чтобы найти проблему. Я могу создать сообщение, просмотреть изображение, выбрать это изображение и отправить сообщение для сохранения, но я все еще получаю IMAGE: EMPTY на странице показа в ActiveAdmin, как показано ниже. На изображении я написал сообщение lorem ipsum, в котором было изображение, и я его сохранил.CarrierWave gem не загружается, так почему нет исключений?

Как я могу загрузить загрузчика?


рубинового 1.9.3p547 (2014-05-14 редакция 45962) [x86_64-darwin10.8.0]

Рельсы 4.1.6


Это страница показа для одного объекта Post в ActiveAdmin

Image not uploading


Это полный скриншот страницы формы в вопросе

full page

Та же форма, но увеличено. Очевидно, что я не пытался, чтобы загрузить изображение на этом скриншоте.

zoomed in on form


/app/uploaders/image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base 

    storage :file 

    def store_dir 
     "public/uploads" 
    end 

end 

/app/models/post.rb

class Post < ActiveRecord::Base 

    belongs_to :category 

    scope :rails, -> { where(category_id: 1) } 

    extend FriendlyId 
    friendly_id :title, use: [:slugged, :finders] 

    mount_uploader :image, ImageUploader 

end 
+0

Здесь может быть несколько ошибок, давайте начнем с версии rails и посмотрим вашу форму, которая используется для создания вашей записи. – Richlewis

+0

Хорошо, @Richlewis, я обновил вопрос. Спасибо, что обратились за помощью. Я полностью застрял, пока не смогу понять эту штуку. – elersong

ответ

0

После парыбольше часов поиска, я нашел вдохновение для ответа в другом вопросе, который вы найдете here.

Причина, по которой я не получал результата, состоял в том, что я не разрешил приложению принимать :image в файле app/admin/post.rb. Теперь, я до сих пор не знаю, почему не было никакой ошибки подняли (или даже строка записывается в консоль), но фиксируя проблему получать загрузку так просто, как разрешение параметр загрузки следующим образом:

permit_params :title, :slug, :blurb, :content, :category_id, :image 

Когда я разместил этот вопрос, я не добавил его в последний :image, поэтому мое приложение просто отбрасывало этот параметр вместо сохранения его в файловой системе с остальной частью сообщения.

+1

Это будет моим следующим моментом, но хорошо сделано для выяснения этого ... Если вы посмотрите на консоль, когда вы отправите запись, вы заметите, что все отправленные Params будут показаны, и любые парамы, которые не разрешены, будут показаны как «unpermitted params» или, по крайней мере, что-то в этом роде, поэтому, даже если вы не видите никаких ошибок в своем представлении, ваша консоль - ваш друг, о, и puts тоже очень полезен, хотя я и есть потрясающий шрифт, который я нахожу даже лучше – Richlewis

+0

О, и следующая вещь, которую вы захотите разрешить, - _destroy, чтобы вы могли удалять изображения. – Richlewis

+0

Как я могу это разрешить? Просто добавьте '_destroy' в список' allow_params' и ничего больше? – elersong

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