gpt4 book ai didi

ruby-on-rails - 没有这样的列 :bookmarks in the following many-to-many association

转载 作者:行者123 更新时间:2023-12-04 23:58:18 25 4
gpt4 key购买 nike

我有一个 Post和一个 User模型。我正在尝试添加 Bookmark模式,以便用户可以为帖子添加书签。我正在使用 join model :

架构.rb:

create_table "bookmarks", :force => true do |t|
t.integer "bookmarker_id"
t.integer "bookmarked_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end

bookmark.rb:
class Bookmark < ActiveRecord::Base
attr_accessible :bookmarked_id

belongs_to :bookmarker, class_name: "User"
belongs_to :bookmarked, class_name: "Post"

validates :bookmarker_id, presence: true
validates :bookmarked_id, presence: true
end

post.rb:
has_many :bookmarks, :dependent => :destroy
has_many :bookmarkers, :through => :bookmarks

用户.rb:
has_many :bookmarks, :dependent => :destroy
has_many :bookmarked_posts, :through => :bookmarks, source: :bookmarked

我试图在终端中测试关联,但我得到了这个:
1.9.3-p0 :007 > user.bookmarks
Bookmark Load (0.4ms) SELECT "bookmarks".* FROM "bookmarks" WHERE "bookmarks"."user_id" = 1
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: bookmarks.user_id: SELECT "bookmarks".* FROM "bookmarks" WHERE "bookmarks"."user_id" = 1

可能是什么问题呢?

最佳答案

你没有指定foreign_key,异常明确说

no such column: bookmarks.user_id

只需添加
has_many :bookmarks, :foreign_key => 'bookmarker_id'

关于ruby-on-rails - 没有这样的列 :bookmarks in the following many-to-many association,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14022206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com