Getting no such column :bookmarks in the following many-to-many association
associations, ruby-on-rails
Solution
You didn't specify foreign_key, exception clearly said
no such column: bookmarks.user_id
just add
has_many :bookmarks, :foreign_key => 'bookmarker_id'
Problem
I have a `Post` and an `User` model. I'm trying to add a `Bookmark` mode, so that users can bookmark posts. I'm using a `join model`: schema.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 ``` user.rb: ``` has_many :bookmarks, :dependent => :destroy has_many :bookmarked_posts, :through => :bookmarks, source: :bookmarked ``` I tried to test the association in the terminal but I get this: ``` 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 ``` What could be the problem?