2014-05-02 40 views

回答

1

該關聯在Rails中定義,而不在sqlite3中定義。

檢查您的Rails項目中的應用程序/模型中的模型。

你應該看到某種定義的關係...... belongs_tohas_manyhas_one ......還有其他的可能性,但如果你只有兩張表,那麼它們不適用。

如果定義沒有明確提到一個foreign_key那麼你可以解釋從車型的名字外鍵...

例如

class Teacher 
has_many students 

,告訴你,有一個外鍵在所謂的「teacher_id」

class Student 
belongs_to teacher 

,告訴你,有一個在學生表的外鍵被稱爲「teacher_id」(同一個外鍵的學生表 如上)。

這應該給你一些熟悉協會Rails的是如何工作的?

http://guides.rubyonrails.org/association_basics.html

+0

儘管關聯可以由Rails定義,他們可以在學生中說出一個外鍵列('teacher_id')表是實際創建的? – Snarf

+0

好吧,OP說這些表是關聯的,所以我推測(可能錯誤地)有一個工作關聯。 OP沒有問fk應該是什麼,他問他如何找回它。 – SteveTurczyn

+0

我需要知道它是什麼,因爲表中有兩個名稱非常相似的值。一個名爲Rooms的表格和一個名爲People的表格。我需要從People表中找出外鍵,並將這些列命名爲「id」,「name」和「room_id」。我不確定哪個外鍵已經設置。 – user3384570

0

外鍵通常總是在模型中的連接。

因此,假設我有一個用戶對象具有一個帳戶對象。用戶表中的帳戶對象的外部ID將爲user_id,反之亦然,account_id

但是如果你需要探索更多的東西,你可以打開你的schema.rb來找出確切的東西。

在控制檯,你也可以這樣做:

Model.column_names 
0

嘗試使用sqlite3的工具與您的sqlite3的文件(例如,sqlite3的database.db),並嘗試命令:

.schema ?TABLE?  Show the CREATE statements 
         If TABLE specified, only show tables matching 
         LIKE pattern TABLE. 

要列出表格:

.tables ?TABLE?  List names of tables 
         If TABLE specified, only list tables matching 
         LIKE pattern TABLE.