我有兩個類之間的關聯問題,所以我這裏有一個名爲後重命名foreign_key在Rails的覆蓋公約
Class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :post_type , null: false
t.text :content , null: false
t.integer :person_id
end
add_index :posts, :person_id
add_index :posts, :group_id
end
end
一類表,另一種被稱爲行動
class CreateActions < ActiveRecord::Migration
def change
create_table :actions do |t|
t.string :target_type, null:false
t.integer :target_id
t.integer :upvote_count
t.timestamps
end
add_index :actions,:target_id
end
end
所以問題是我想關聯target_is作爲Post類的外鍵所以我做了這個
class Post < ActiveRecord::Base
has_one :action
end
class Action < ActiveRecord::Base
belongs_to :post , :class_name => 'Target', :foreign_key => 'target_id'
end
但不工作,這時候我在帖子Action對象分配到的操作方法反對這種錯誤的出現
Mysql2::Error: Unknown column 'actions.post_id' in 'where clause': SELECT `actions`.* FROM `actions` WHERE `actions`.`post_id` = 6 LIMIT 1
所以任何幫助?
這正是我需要的,THX – Azzurrio 2012-03-30 09:13:37
這可能是什麼// @ Azzurrio想要但顯然不回答這個問題。 – pkoch 2013-05-08 15:44:22
我根據他問的問題提出了一個更好的解決方案。我不只是回答這個問題,我指的是一個正確的方向。 – 2013-10-06 13:20:25