Thanks again Thorsten, some more frustration on my end though. Adding
the "belongs_to" has broken the friends association, somehow.
class League < ActiveRecord::Base
has_and_belongs_to_many :players
#:class_name => "Player", :association_foreign_key =>
"player_id", :join_table => "players_leagues"
belongs_to :owner, :foreign_key => :player_id
end
class Player < ActiveRecord::Base
has_and_belongs_to_many :friends
# :class_name => "Player", :association_foreign_key =>
"friend_id", :join_table => "friends_players"
# If I comment this line out, it doesn't complain, but the leagues
owner id (player_id) doesn't get set
# if I uncomment it, I get an error.
#has_many :leagues, :foreign_key=> player_id
end
The error I get is:
rake aborted!
Mysql::Error: #42S22Unknown column 'friends' in 'field list': INSERT
INTO `players` (`name`, `network_id`, `friends`) VALUES ('Jason',
'dbg_12345', 'user2, user3')
For further reference, the schema
create_table "friends_players", :id => false, :force => true do |t|
t.integer "player_id"
t.integer "friend_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "friends_players", ["friend_id"], :name =>
"index_friends_players_on_friend_id"
add_index "friends_players", ["player_id"], :name =>
"index_friends_players_on_player_id"
create_table "leagues", :force => true do |t|
t.string "name"
t.integer "playercount"
t.integer "player_id"
t.datetime "timestarted"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "leagues_players", :id => false, :force => true do |t|
t.integer "league_id"
t.integer "player_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "leagues_players", ["league_id"], :name =>
"index_leagues_players_on_league_id"
add_index "leagues_players", ["player_id"], :name =>
"index_leagues_players_on_player_id"
create_table "players", :force => true do |t|
t.string "name"
t.string "network_id"
t.datetime "created_at"
t.datetime "updated_at"
end