Я использую API FileStack и гем сборщика файлов (https://github.com/Ink/filepicker-rails< /а>). Я выполняю шаги, описанные в документе в разделе «Доступ к файлу FilePicker с помощью OnChange». Я пытаюсь получить атрибут ответа браузера JSON, имя файла, передать его моему контроллеру Rails через маршрут и сохранить его как :name в моей модели вложения.
Вложение/Новое представление
<%= filepicker_js_include_tag %>
<%= simple_form_for(@attachment) do |f| %>
<%= f.filepicker_field :title, multiple: 'true', onchange: 'onUpload(event)' %>
<%= f.submit %>
<% end %>
<script>
function onUpload(event) {
var name = event.fpfile.filename;
jQuery.ajax({
data: { "attachment[name]": name, "attachment[title]": url },
type: 'post',
url: "/attachments"
});
}
</script>
Маршрут
post 'attachments/' => 'attachment#create'
Контроллер вложений
def create
@attachment = current_user.attachments.build(attachment_params)
if @attachment.save
redirect_to attachments_path
else
render root_path
end
end
...
private
def attachment_params
params.require(:attachment).permit(:title, :user_id, :name)
end
Я просмотрел соответствующие сообщения SO, и именно так я пришел к этой реализации. Однако, когда я просматриваю свою модель вложения в консоли рельсов, имя равно нулю. Мои данные не передаются должным образом. Я не уверен, пропускаю ли я шаг или неправильно маршрутизирую. Любые советы будут высоко ценится.
data: { "attachment[name]" : name }
? - person 7urkm3n   schedule 17.05.2016data: { "attachment[name]" : name }
, и больше не получаю ошибку параметров имени. Но похоже, что два запроса POST происходят, как вы можете видеть в выводе моего терминала, и имя по-прежнему равно нулю. Он перезаписывается? - person user3318660   schedule 17.05.2016