我有一个照片模型,它的照片可以是一个Bucket模型。 Bucket模型是Facet模型的子类。
class Photo < ActiveRecord::Base
has_many :facets
has_one :bucket
end
class Facet < ApplicationRecord
# validates_uniqueness_of :user, :scope => :photo_id
belongs_to :photo
belongs_to :user
end
class Bucket < Facet
belongs_to :photo
belongs_to :user
validates :user_id, uniqueness: true
end
当我获取存储桶中的照片时,使用include我希望获得Photo属性+ Bucket属性。但是我只获得了Photo属性,我使用了包含这样的内容:
Photo.includes(:facets).find( 7)
Facet表:
create_table "facets", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci" do |t|
t.integer "user_id"
t.integer "photo_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "type"
t.string "comment"
t.integer "tag_id"
t.bigint "photos_id"
t.index ["photos_id"], name: "index_facets_on_photos_id"
t.index ["user_id", "type", "comment", "tag_id"], name: "index_facets_on_user_id_and_type_and_comment_and_tag_id", unique: true
end
答案 0 :(得分:1)
不,您正在获得方面,但您需要使用association helpers访问它们。
has_many :facets
在您的facets
条记录上创建一个名为Photo
的关联方法。
假设:
photo = Photo.includes(:facets).find(7)
您可以通过以下方式查看相关方面:
photo.facets