ruby on rails - Join tables and foreign keys -



ruby on rails - Join tables and foreign keys -

i'm getting rather confused foreign keys in bring together table. i'm trying build bring together table links user , guideline models form favoriteguideline table (i.e. user can pick favorite guideline).

my error is:

'expected favoriteguideline have belongs_to association called favorite (favoriteguideline not have favorite_id foreign key)'

my favorite_guideline.rb is

class favoriteguideline < activerecord::base belongs_to :user belongs_to :guideline belongs_to :favorite, class_name: 'user', foreign_key: 'favorite_id' attr_accessible :user, :favorite, :guideline end

and favorite_guideline_test.rb is

require 'test_helper' class favoriteguidelinetest < activesupport::testcase should belong_to(:user) should belong_to(:favorite) test "that creating favorite works without raising exception" assert_nothing_raised favoriteguideline.create user: users(:eve), guideline: guidelines(:three) end end end

and database migration is

class createfavoriteguidelines < activerecord::migration def alter create_table :favorite_guidelines |t| t.integer :user_id t.integer :favorite_id t.integer :guideline_id t.timestamps end add_index :favorite_guidelines, [:user_id] add_index :favorite_guidelines, [:favorite_id] add_index :favorite_guidelines, [:guideline_id] end end

if understand correctly, favoriteguideline meant association table. favorite alias favoriteguideline.

so model should be:

class favoriteguideline < activerecord::base set_primary_key 'favorite_id' belongs_to :user belongs_to :guideline attr_accessible :user, :favorite, :guideline end

and test should have line

should belong_to(:guideline)

instead of

should belong_to(:favorite)

and migration should have favorite_id primary key:

def alter create_table :favorite_guidelines, :primary_key => :favorite_id |t| t.integer :user_id t.integer :guideline_id t.timestamps end

then need finish defining association has_many in user.rb , guideline.rb

ruby-on-rails ruby-on-rails-3

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -