Rails获取Model的指定字段

时间:2013-12-12 03:42:55

标签: ruby-on-rails activerecord

我的rails应用程序中有两个模型:MemTeam。一个team有很多mems

众所周知,如果我只想在id中获取字段team,我会写:

Team.select('id')

如果我想获得team的{​​{1}},我会写:

mem

现在我想获得团队ID和名称,所以我写道:

Mem.find(1).team

我收到了错误。

我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分:1)

team = Mem.find(1).team.select('id,name')

team_id   = team.id
team_name = team.name

你可能想看到这个 Ruby rails - select only few columns from the data base

答案 1 :(得分:0)

您将SQL查询与模型属性混淆。 Team.select('id')是查询的第一部分,它将返回您要查找的任何团队的ID。如果您想获取团队模型的ID,只需编写team.id,因此您的代码应为mem.team.id,其中mem是来自Mem类的模型, teamTeam类的模型。

让我解释一下。您需要一些模型特有的信息才能从数据库中检索模型。我将假设您将使用id,但您可以使用任何属性或属性组合。

让我们从数据库中检索我们的模型:

star_player = Mem.find('5')
team_id = star_player.team.id

执行了两个查询,一个使用find检索您的团队成员,另一个查询团队ID是使用您应该设置的rails关联自动执行的。