簡體   English   中英

從載波獲取文件和文件名

[英]Get file and filename from carrierwave

我已成功將文件上傳到S3,現在我想將文件附加到電子郵件,因此可以使用Gmail API發送文件。 有些人建議調用方法.file一樣,直接在這里

如您所見,您可以調用方法

<%= @page.form.file.filename %>

.file直接來自表單。

這是我的mount uploader類:

class Crm::LogEmailAttachment < Asset
    belongs_to :owner, class_name: 'Crm::LogEmail'
    mount_uploader :data, Crm::LogEmailAttachmentUploader
    mount_base64_uploader :data, Crm::LogEmailAttachmentUploader
    # default_scope -> {order("assets.order")}

    def to_s
      self.data.try(:file).try(:filename)
    end
end

這是我的erb表格:

<div class="document-wrap">
   <%= log_email.fields_for :crm_log_email_attachments do |a| %>
    <%= a. file_field :data, input_html: {class: "form-control" , wrapper: 'field'}, label: false %>
   <% end %>
</div>

然后我嘗試通過從params[:data]調用.file來獲取文件,它為#<ActionDispatch::Http::UploadedFile:0x007fc337322290>返回未定義的方法file ,我的問題是如何獲取文件和文件名的路徑來自carrierwave

您應該先通過載波將數據保存到S3,然后再直接引用上載器對象,而不是引用參數ActionDispatch :: Http :: UploadedFile對象。 例如

object.data.file.filename

要檢索文件名,並

object.data.url

檢索關聯資產的S3 URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM