- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 VideoCollection
模型,它将包含来自另一个模型(称为 VideoWork
)的许多记录,使用 has_many 关系。 VideoCollection
模型继承自Collection
模型使用单表继承,而VideoWork
模型继承自Work
模型.
当我尝试调用属于 video_collection 的 video_works 时遇到问题。在我的 video_collection#show
操作中,我使用以下内容来尝试显示收藏的作品:
def show
@video_collection = VideoCollection.find(params[:id])
@collections = @video_collection.children
@works = @video_collection.video_works
end
但是当我尝试在 show
View 中使用 @works 时,我得到以下信息:
PG::Error: ERROR: column works.video_collection_id does not exist
SELECT "works".* FROM "works" WHERE "works"."type" IN ('VideoWork') AND "works"."video_collection_id" = $1
##(Error occurs in the line that contains <% @works.each do |work| %>)
#----app/models/video_collection.rb----
class VideoCollection < Collection
has_many :video_works
end
#----app/models/video_work.rb----
class VideoWork < Work
belongs_to :folder, class_name: "VideoCollection", foreign_key: "folder_id"
end
“父”模型:
#----app/models/collection.rb - (VideoCollection inherits from this)
class Collection < ActiveRecord::Base
end
#----app/models/work.rb - (VideoWork inherits from this)
class Work < ActiveRecord::Base
end
架构文件:
#----db/schema.rb----
create_table "works", force: true do |t|
t.string "header"
t.string "description"
t.string "type"
t.string "folder_id"
end
create_table "collections", force: true do |t|
t.string "type"
t.datetime "created_at"
t.datetime "updated_at"
t.text "ancestry"
t.string "name"
t.string "tile_image_link"
end
我假设因为我在 works
表中有一个 folder_id
列,所以我应该能够正确设置 belongs_to
关系,但似乎 Rails 仍然希望我有一个 video_collection_id
列。我不希望使用像 video_collection_id
这样的特定内容作为 works
表中的外键,因为我需要建立其他关系(例如:photo_collection
has_many photo_works
等)。
我在这里做错了什么?
最佳答案
我并没有真正使用 has_many 和 belongs_to 与标准不同的外键,但根据文档我会这样做:
class VideoCollection < Collection
has_many :video_works, foreign_key: "folder_id"
end
class VideoWork < Work
belongs_to :folder, class_name: "VideoCollection", foreign_key: "folder_id"
end
您的 Pg 错误表明关联正在寻找“video_collection_id”而不是“folder_id”
Guides (4.3.2.5章)
关于ruby-on-rails - 模型中的自定义 foreign_key 给出 PG::Error column does not exist - Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23491787/
我的模型是这样的: class Post :shareable, :primary_key => :guid, :foreign_key => :shareable_guid has_many
我有一个城市模型和城市表。服务模型和服务表。一项服务有一个城市(起源城市和目的地城市)。一个城市“有很多”服务。在 services 表中,有两列关于城市:origin_city_id 和destin
我有一个名为 animals 的表,其中包含以下列: id: INT state: VARCHAR 另一个名为 houses 的表具有以下列: id: INT animal_id: INT color
这是集群表: ╭────╥────────────┬─────────────╮ │ id ║ name │ prefix │ ╞════╬════════════╪══════
我得到了以下模型: class Coaching < ActiveRecord::Base ... belongs_to :user belongs_to :coach, class_na
我们有一些从提供非整数唯一 ID 的第三方导入的数据。 在 Rails 2.2.2 中,我们可以在 has_many 与非整数列的关系上使用 :foreign_key 并且它有效。 但是我们现在升级到
如果你有 Parent has_many :children Child Child 上的外键(到 Parent)和相应的 belongs_to :parent 是否有任何原因可能不受欢迎? 什么时
我正在使用 Rails 3,我有一个简单的模型 class Post has_many :comments end 我正在做一些元编程,我需要知道注释表中的 foreign_key 的名称。 在上
我正在处理一个相当简单的 has_many through: 情况,我可以使 class_name/foreign_key 参数在一个方向上工作,但不能在另一个方向上工作。也许你能帮帮我。 (附注:我
我有以下一组模型: class Cardstock :hex, :foreign_key => :hex has_many :palette_colors, :through => :color
在合适的 sqlite 版本中,我们可以通过“PRAGMA foreign_keys = ON”强制外键约束。但是,用户无法每次建立连接时都登录数据库。所以我想知道我们如何让它在 sqlalchemy
我最近遇到了这段代码。用户有很多答案。 :class_name 和 :foreign_key 的目的是什么? class Answer 'Question", :foreign_key => 'qu
我最近遇到了这段代码。用户有很多答案。 :class_name 和 :foreign_key 的目的是什么? class Answer 'Question", :foreign_key => 'qu
是否有一个 Postgresql 数据库配置等同于 Sqlite 中的 PRAGMA foreign_keys = ON? 最佳答案 您可以测试禁用表上的所有触发器,FK 是通过 PostgreSQL
假设您为电视节目创建了一个 imdb 类型的网站。您有一个 Show,其中包含许多附加的 episodes 和一群 people 现在我通过contribution 表将people 链接到episo
我有 2 个模型与 has_one 和 has_many 关联。 realm.rb class Realm < ActiveRecord::Base has_one :realm_type,
我在一个实体中有两个外键引用另一个实体。这是它的样子 class Review(db.Model): __tablename__ = 'Review' id = db.
从文档中我读到: class Book < ApplicationRecord belongs_to :author, class_name: "Patron", foreign_key: "pa
我用 Flask-SQLalchemy 创建了 3 个模型:用户、角色、用户角色 角色.py: class Role( ActiveRecord, db.Model ): __tablenam
我创建了一个 SQL 文件,它加载到 sqlite3 中并为我创建了一堆表。在该 sql 文件中,我尝试使用 pragma 强制执行 foreign_keys: PRAGMA foreign_keys
我是一名优秀的程序员,十分优秀!