Rails获取Model的指定字段



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

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

Team.select('id')

如果我想得到memteam,我会写:

Mem.find(1).team

现在我想得到团队id和名称,所以我写:

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

我弄错了。

我应该如何正确地执行此操作?

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

你可能想看看这个Ruby rails-从数据库中只选择少数列

您将SQL查询与模型属性混淆了。Team.select('id')是查询的第一部分,它将返回您要查找的任何团队的id。如果你想得到一个团队模型的id,你只需要写team.id,所以你的代码应该是mem.team.id,其中memMem类的模型,teamTeam类的模型。

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

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

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

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

最新更新