开发者

AssociationTypeMismatch problem when saving data

in a previous question i was stumped.. but stack overflow provided the solution

my two models

class Team < ActiveRecord::Base
  has_many :fixtures, :finder_sql => 'SELECT * FROM fixtures where (home_team = #{id} or away_team = #{id})'
  has_many :home_fixtures, :class_name => "Fixtures", :foreign_key => :home_team
  has_many :away_fixtures开发者_运维技巧, :class_name => "Fixtures", :foreign_key => :away_team
  has_many :teamalias
end

class Fixture < ActiveRecord::Base
  belongs_to :league
  belongs_to :selection
  has_many :selection

  named_scope :for_team_id, lambda{|team_id| {:conditions => ['(home_team = ? or away_team = ?)', team_id, team_id]} }
  belongs_to :home_team, :class_name => "Team", :foreign_key => :home_team
  belongs_to :away_team, :class_name => "Team", :foreign_key => :away_team


  def fix_list
    [home_team.title, "Draw", away_team.title]
  end
end

taken from Multi level associations in rails

but I'm stumped again- i'm trying to save a fixture based on the last solution in the first answer above and I am getting a typemismatch of.

Team(#38391330) expected, got String(#1242130)

no idea what to do here please help.

edit- db migrations

Here is the migrations

class CreateFixtures < ActiveRecord::Migration def self.up create_table :fixtures do |t| t.integer :home_team t.integer :away_team t.datetime :when t.integer :league_id

  t.timestamps
end

end

def self.down drop_table :fixtures end end

class CreateTeams < ActiveRecord::Migration def self.up create_table :teams do |t| t.string :title

  t.timestamps
end

end

def self.down drop_table :teams end end

class AddResultToFixture < ActiveRecord::Migration def self.up add_column :fixtures, :result, :integer end

def self.down remove_column :fixtures, :result end end


your form probably has fixture[home_team] which is a select which passes the team.id

so when you do

@fixture = Fixture.new(params[:fixture])
@fixture.save

you are calling home_team= team.id team.id is a string but home_team should be a Team object

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜