2015-02-17 3 views
0

У нас есть проекты и фотографии в отдельных таблицах и моделях. Вот наша схема:Кошмар для установки скрепки скрепки. совет?

create_table "projects", force: :cascade do |t| 
    t.string "title" 
    t.integer "price" 
    t.datetime "created_at",      null: false 
    t.datetime "updated_at",      null: false 
    t.string "description" 
    t.boolean "retired",   default: false 
    t.integer "tenant_id" 
    t.date  "requested_by" 
    t.integer "repayment_rate" 
    t.date  "repayment_begin" 
    end 



create_table "photos", force: :cascade do |t| 
    t.string "image_file_name" 
    t.string "image_content_type" 
    t.integer "image_file_size" 
    t.datetime "image_updated_at" 
    t.datetime "created_at",   null: false 
    t.datetime "updated_at",   null: false 
    t.integer "project_id" 
    end 

В модели проекта у меня есть:

has_attached_file :image 
validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png"] 

Допустимо ли это как способ установки скрепку? Или проекты и фотографии должны быть в одной таблице?

ответ

0

да, это приемлемо, но ваши has_attached_file и validates_attachment_content_type должны быть в фото модель, а не модель проекта.

# project.rb 
class Project < ActiveRecord::Base 
    has_many :photos 
end 

# photo.rb 
class Photo < ActiveRecord::Base 
    belongs_to :project 
    has_attached_file :image #, styles: { svga: ["800x600!", :jpg], big: ["500x375!", :jpg], small: ["190x143!", :jpg], thumb: ["95x71!", :jpg] } 
    validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png"] # or do_not_validate_attachment_file_type :image 
end