2012-08-27 104 views
0

正確關聯我有兩個表:導軌和非標外鍵

Languages: id, name, abbreviation 
Post: id, title, language 

Post.language連接到Language.abbreviation。

如何建立模型,所以我可以正確地調用:

@post.language.name 

並接受它連接到語言的名稱?

什麼我開始用是:

Post> 
    belongs_to :language 

Language> 
    has_many :posts, :foreign_key => "abbreviation" 

但是,這似乎並沒有被正確連接。

感謝您的幫助。

回答

1

我會在Post模型中存儲language_id,而不是縮寫。您可以在表單中連接縮寫以顯示縮寫,但將language_id存儲在數據庫中。

+0

通常我會這麼做@Solomon,但是我從第三個數據源導入了這些數據,所以我試圖在導入時對每個記錄做一次查找,因爲99%的時間只使用縮寫。現在帖子導入一個帶有標準2字符縮寫的語言標籤。 – matthewvb

+0

總共有多少種語言?將語言變成哈希可能更容易一些?他們需要ActiveRecord功能嗎? – Solomon

+0

大概有150多個,所以不知道這是一個切實可行的方法。我可能會最終重新導入我的ID進行查找,並從那裏去。感謝@Solomon的幫助。 – matthewvb