过去12小时我一直试图这样做,我无法弄清楚这一点。
我有两张桌子:
数据:
data_id(主键)
数据文本
userid int
用户:
id(主键)
姓名文本
电子邮件文本
我希望能够提取数据,以便我可以获得用户信息,data.userid与users.id一起加入
这是一个非常简单的SQL查询,但在Rails中似乎几乎不可能..我错过了一些基本的东西吗?
我收到错误消息:
Mysql ::错误:'where子句'中的未知列'users.data_id':SELECT * FROM users
WHERE(users
。data_id = 2)
有人可以用非常简单的方式向我解释如何实现这个目标吗?
由于
答案 0 :(得分:1)
您需要遵循Rails转换,例如主键称为“id”。还有其他人,您可能需要查看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
答案 1 :(得分:0)
怎么样:
@data = Data.find(params[:id])
@data.user.name
您点击ID为2的数据。