2012-09-26 21 views
0

假設我有機型(自動生成的?)_ids給出的ActiveRecord :: UnknownPrimaryKey錯誤

class Widget < ActiveRecord::Base 
    has_many :widget_spots 

class WidgetSpot < ActiveRecord::Base 
    belongs_to :widget 

而且,在我的MySQL表 'widget_spots',我有一列' WIDGET_ID」

+--------------------+------------+------+-----+---------+-------+ 
| Field    | Type  | Null | Key | Default | Extra | 
+--------------------+------------+------+-----+---------+-------+ 
| id     | int(11) | NO | PRI | NULL |  | 
| widget_id   | int(11) | NO | PRI | NULL |  | 
       ................ 
+--------------------+------------+------+-----+---------+-------+ 

現在,如果在我的rails控制檯,嘗試訪問widget_spot_ids給出了一個錯誤。

> widget = widgets.find(:first) 
> widget.widget_spot_ids 
ActiveRecord::UnknownPrimaryKey: ActiveRecord::UnknownPrimaryKey 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/activerecord-3.1.1/lib/active_record/reflection.rb:374:in `primary_key' 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/activerecord-3.1.1/lib/active_record/reflection.rb:228:in `association_primary_key' 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/activerecord-3.1.1/lib/active_record/associations/collection_association.rb:51:in `ids_reader' 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/activerecord-3.1.1/lib/active_record/associations/builder/collection_association.rb:62:in `block in define_readers' 
    from (irb):12 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in `start' 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in `start' 
    from /Users/xxxxx/.rvm/gems/[email protected]/gems/railties-3.1.1/lib/rails/commands.rb:40:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

然而,得到的情況下給出了一個列表,而一個錯誤:> widget.widget_spots執行預期的SQL查詢,並給出了一個清單。

如何確定在哪裏以及如何生成ActiveRecord::UnknownPrimaryKey錯誤。試圖找出哪個數據庫中的哪個主鍵?

回答

0

這可能是因爲目標widget_spots表具有由多個字段組成的主鍵而發生的。