Newbie on Rails 3.2.14, тестирование на Heroku, загрузка файлов изображений на S3 с помощью s3_direct_upload gem.Как установить parent_id с помощью s3_direct_upload gem?
У меня есть камень, который отлично работает. Перетаскивание, индикаторы выполнения и прямая загрузка на S3 отлично работают. Загрузка связана с моделью вложения. Новая запись создается правильно при загрузке. До сих пор.
Проблема, с которой я сталкиваюсь, заключается в том, что я хочу установить поле новой записи, но не знаю, как ее передать. Драгоценный камень не использует обычную форму для отправки, ее обрабатывают на с помощью JavaScript:
<%= s3_uploader_form callback_url: attachments_url, callback_param:
"attachment[attachment_url]", id: "myS3Uploader" do %>
<%= file_field_tag :file, multiple: true %>
<% end %>
создать действие в attachments_controller.rb
:
def create
@attachment = Attachment.create(params[:attachment])
end
вызывает яваскрипт вида create.js.erb
:
<% if @attachment.new_record? %>
alert("Failed to upload attachment: <%= j @attachment.errors.full_messages.join(', ').html_safe %>");
<% else %>
$("#attachments").prepend("<%= j render(@attachment) %>");
<% end %>
, который проверяет, сохранено ли сохранение записи, и добавляет новую миниатюру для загрузки в текущее представление.
Поскольку я не имею дело с обычной формой или create
действием, я немного в тупике.
Я могу установить значения по умолчанию в модели Attachment с before_save
:
before_save :set_defaults
def set_defaults
self.name = "Photo"
self.parent_id = 1
end
но parent_id
будет определен на странице, где делаются закачки, при создании родительского объекта (т.е. блог после).
Я знаю, что должен использовать has_many
и belongs_to
, и они настроены и работают нормально, но поскольку я не использую обычную форму для отправки данных, я не знаю, как назначить parent_id.
Я попытался прохождения parent_id
в форме и доступа к ней в модели:
<%= s3_uploader_form callback_url: attachments_url(:parent_id => 99), callback_param:
"attachment[attachment_url]", id: "myS3Uploader" do %>
Это не сработало, и я знаю, что я не должен быть доступ к Params внутри модели в любом случае.
Любая помощь, которая поможет мне пройти мимо этой точки, была бы весьма признательна.
Я столкнулся с той же проблемой, но с использованием Rails 4. Можете ли вы рассказать о том, как «образ» может определить parent_id, когда изображение по существу загружается в удаленная форма? – RubyNewbie