2011-06-03 22 views
0

我一直在嘗試在最後12個小時內完成此操作,但我無法弄清楚這一點。在Rails中加入兩個表但不在主鍵上

我有兩個表:

數據:
data_id(主鍵)
數據文本
用戶ID INT

用戶:
ID(主鍵)
名文本
電子郵件文本

I希望能夠拉動數據,以便我可以獲得用戶信息,並通過data.userid加入users.id

這是一個非常簡單的SQL查詢,但在Rails中似乎幾乎不可能。錯過了一些根本的東西在 'where子句' 未知列 'users.data_id':

我收到錯誤消息: 的Mysql ::錯誤SELECT * FROM users WHERE(users .data_id = 2)

有人能解釋我以一種非常簡單的方式如何實現這個請求?

感謝

+0

你想要SQL還是rails方式?你還試圖拉用戶(姓名,電子郵件),或者你想要datatext。 – 2011-06-03 15:39:13

回答

1

您需要按照Rails的轉換,例如主鍵被稱爲「身份證」。還有其他人,所以你可能想檢查Rails Guides

在這個具體的例子中可能會讓你感到興奮的事情是多元化,data/datum

這應該讓你去:

TABLES

 
Datas: 
    id:  integer (autoinc) 
    data: text 
    user_id: integer (foreign key) 

Users: 
    id:  integer (autoinc) 
    name: varchar 
    email: varchar 

順便提一下它的最好創建使用遷移,而不是手動您的表。

模型

class Data < AR:Base 
    belongs_to :user 
end 

class User < AR::Base 
    has_many :datas 
end 

使用率

u = User.first 
u.datas 
0

什麼:

@data = Data.find(params[:id]) 
@data.user.name 

你在哪裏上的數據點擊ID爲2