2016-03-07 16 views
7

Sử dụng Rails Admin với Dragonfly. Tuy nhiên, khi tôi đã tạo một bài đăng mới có tệp đính kèm được kết nối :ob với con chuồn chuồn và muốn chỉnh sửa nó. Nó sais "Không có tập tin được chọn". Vì nó không nhận được rằng đã có một tập tin?Rails Admin Với Dragonfly - Chỉnh sửa. Không có tệp nào hiện diện

Trong rails_admin tôi đã thực hiện việc này.

edit do 
    field :name 
    field :information 
    field :ob, :dragonfly 
    field :document_categories 
end 

Dưới đây là mô hình của tôi:

class Document < ActiveRecord::Base 
    has_and_belongs_to_many :document_categories 


    after_commit :generate_versions, on: :create 
    dragonfly_accessor :ob 


    validates :name, :ob, presence: true 

    def generate_versions 
    DocumentWorker.perform_async(self.id) 
    end 

    def convertable_image? 
    unless self.try(:ob).nil? 
     self.try(:ob).mime_type.include?("image") || self.try(:ob).mime_type.include?("pdf") 
    else 
     return false 
    end 
    end 

    def respond_with_type 
    case self.try(:ob).mime_type.split("/")[1] 
     when "vnd.ms-powerpoint" , "vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.openxmlformats-officedocument.presentationml.template" 
     "powerpoint" 
     when "application/vnd.ms-excel" , "vnd.openxmlformats-officedocument.spreadsheetml.sheet" 
     "excel"  
     when "application/msword" , "vnd.openxmlformats-officedocument.wordprocessingml.document" 
     "word"     
     else 
     self.try(:ob).mime_type.split("/")[1] 
     end 
    end 
    default_scope{order("name ASC")} 
end 

Dưới đây là sơ đồ của tôi:

create_table "documents", force: :cascade do |t| 
    t.string "name" 
    t.string "ob" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "ob_uid" 
    t.string "ob_name" 
    t.text  "information" 
    end 

Có điều gì khác mà tôi cần phải làm để cho nó để lấy các tập tin?

https://github.com/sferik/rails_admin

https://github.com/markevans/dragonfly

+1

bạn có thể hiển thị các mô hình và sơ đồ có sử dụng Dragonfly và đây có phải là chế độ xem tùy chỉnh không? – SacWebDeveloper

+0

@SacWebDeveloper đã hoàn tất! Không có nó không phải là một cái nhìn theo yêu cầu. – Philip

+0

Bạn cũng có thể đăng 'biểu mẫu' có trong chế độ xem không? – sahil

Trả lời

2

tôi quản lý để tạo lại vấn đề của bạn bằng cách sử dụng cấu hình mà bạn cung cấp và sửa chữa mà làm việc cho tôi hóa ra là vô cùng đơn giản: chỉ cần loại bỏ các cột ob từ documents bảng .

Giải thích: theo mặc định, Dragonfly lưu trữ các tài liệu đính kèm trên đĩa (trong kho lưu trữ tệp) vào thư mục được chỉ định trong Dragonfly initializer. Trong cơ sở dữ liệu, Dragonfly lưu trữ chỉ tên và UID của tài liệu. Trong trường hợp của bạn, đó là các cột ob_uidob_name mà bạn đã thêm chính xác vào giản đồ của mình.

Vì vậy, trừ khi bạn định cấu hình một số custom store cho tài liệu, tôi cho rằng bạn sử dụng cửa hàng tệp mặc định và cột ob là không cần thiết. Trong thực tế, nó gây nhầm lẫn của rails_admin 's dragonfly support code theo cách như vậy, thực sự, trang chỉnh sửa hiển thị không chính xác "Không có tệp được chọn" tất cả thời gian.

Thêm một hình ảnh sau khi sửa chữa (vì đơn giản, tôi đã xóa liên kết document_categories từ cả hai mô hình và chỉnh sửa hành động trong rails_admin):

Adding an image after the fix

+0

"The BountyHunter" –

+0

@ Brad, tôi biết, tôi không thể cưỡng lại cái này. Nhưng tôi sẽ trở lại trong một vài ngày ngay bây giờ :) – BoraMa

+0

Xin vui lòng không, trên tài khoản của tôi - Tôi nghĩ rằng đó là tuyệt vời! Bạn đang giúp rất nhiều người với một số câu hỏi khó. –

Các vấn đề liên quan