я использовал следующие учебные пособия:загружать несколько файлов через контроллер, используя скрепку и рельсы
Это руководство проведет вас через загрузку файлов через контроллер, а не как статические файлы. Я сделал это, чтобы контролировать доступ к файлам.
http://emersonlackey.com/article/paperclip-with-rails-3
Это руководство проведет вас через процесс создания модели для ваших файлов и с помощью, чтобы разрешить загрузки нескольких файлов
Таким образом, по большей части, я получил загрузку работать нормально, однако , проблема заключается в загрузке.
Немного фона. У меня есть следующие ключевые модели.
class VisualSubmission < ActiveRecord::Base
has_many :assets
accepts_nested_attributes_for :assets, :allow_destroy => true;
end
class Asset < ActiveRecord::Base
belongs_to :visual_submission
has_attached_file :image, :styles => { :original => "100%", :large => "600x600>", :small => "150x150>", :thumb => "50x50>"}, :convert_options => {:all => "-auto-orient"},
:path => ':rails_root/secure/system/:attachment/:id/:style/:basename.:extension',
:url => '/:class/:id/:attachment?style=:style'
end
Для того, чтобы загрузить файлы через контроллер, действие создается как например:
def images
visual_submission = VisualSubmission.find(params[:id])
style = params[:style] ? params[:style] : 'original'
send_file visual_submission.image.path(style), :type => visual_submission.image_content_type, :disposition => 'inline'
end
Итак, как я уже говорил выше, загружая просто отлично. Одна вещь, которая отличается, но ожидаемая, когда она хранит файл, она использует идентификатор из модели активов. Это все хорошо и хорошо, однако у меня возникают проблемы с правильной настройкой URL. Я создал маршрут к моим изображениям:
resources :visual_submissions do
member do
get :images
end
end
И вот как выглядит мой маршрут.
images_visual_submission GET /visual_submissions/:id/images(.:format) {: действие => "изображения",: контроллер => "visual_submissions"}
Теперь кусок кода, который в теории предполагается доступ к изображению.
Это из моей формы редактирования. Предполагается показать текущие изображения.
<%= f.fields_for :assets do |asset_fields| %>
<% unless asset_fields.object.new_record? %>
<p>
<%= asset_fields.object.image.url %>
</p>
<% end %>
<% end %>
Теперь это, очевидно, не сработает. Я не уверен, что делает объект здесь, но то, что я знаю, мои изображения должны проходить через мой контроллер visual_submissions, который это не касается. Я не совсем уверен, правильно ли задаю эти вопросы, но я застрял. Одна из моих идей заключалась в создании контроллера активов и перемещении метода изображений туда, но я не уверен, насколько это поможет.
Любые мысли? Спасибо!
это может помочь вам http://stackoverflow.com/questions/11605787/uploading-multiple-files-with-paperclip/19379756#19379756 – devudilip