Загрузка файла Rails с помощью стрекозы
Здравствуйте, у меня есть эта проблема с загрузкой файлов в рельсах. Я установил dragonfly, и он хорошо работает на стороне администратора, однако затем я пытаюсь загрузить свой файл (pdf или doc), он передает пустой параметр для моего атрибута файла
Окей, вот форма:
= form_for @vacancy_application, url: {action: "create"}, html: {multipart: true, class: "block valid"} do |f|
%fieldset
%label{for: "vacancy_application_cv_uid"}= t("vacancy.form.cv")
= f.file_field :cv
= f.hidden_field :retained_cv
%fieldset
%label{for: "vacancy_application_mv_uid"}= t("vacancy.form.mv")
= f.file_field :mv
= f.hidden_field :retained_mv
%footer
%a.submit#submit_button{href: "#"}= t("vacancy.form.button_continue")
Это мой контроллер:
def create
@vacancy_application = VacancyApplication.new(app_params)
respond_to do |format|
if @vacancy_application.save
format.html { redirect_to "/" }
format.json { render json: {link: "/"}, status: :created, location: nil }
else
format.html { render action: "vacancy_application" }
format.json { render json: @vacancy_application.errors, status: :unprocessable_entity }
end
end
end
в модели у меня есть:
class VacancyApplication < ActiveRecord::Base
belongs_to :vacancy
dragonfly_accessor :cv
dragonfly_accessor :mv
validates :cv, presence: true
alias_attribute :to_text, :title
end
Но когда я пытаюсь отправить форму, я получаю параметры примерно так:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"XliKgSIONsDQ4rea1OSk+EuoZHUXWOWUjYsy71vs/Rs=", "vacancy_application"=>{"retained_cv"=>"", "retained_mv"=>""}, "node_id"=>"35", "locale"=>"lv"}
Я пропускаю оба параметра загрузки файла. Я не могу понять, что я делаю неправильно.
Это стрекоза? поддерживает ли dragonfly загрузку файлов в формате doc или pdf? Помоги мне, пожалуйста:)
PS я нахожусь на версии 4.0.4 Rails и новейшей версии стрекозы
1 ответ
Окей оооооо глупо с моей стороны. Я делал это несколько недель назад и остановился, а теперь снова начал работать над этим. И я полностью забыл, что отправлял эту форму через ajax, что, конечно, означает, что файлы не отправляются по умолчанию, потому что ajax не поддерживает передачу файлов по умолчанию. Так что я реорганизовал форму в нормальную форму, которая отправляется через POST, и теперь она отлично работает..... Спасибо, что позволил мне задуматься и перейти к следующему коду... хорошая практика:)