我在视图中使用以下行,输出电影的英文说明:
@film.descriptions.where(language_id: 38)
有没有办法写这个并不依赖于知道语言记录的ID?我一直在寻找,但我自己还没想到。在这种情况下,英文描述的ID恰好为38,但我并不是硬编码ID。
有一个电影模型,其中有很多描述,描述属于语言。语言模型有一个'代码'属性(en,de等),看起来使用语言代码而不是模型ID查找电影的描述会更清晰。
谢谢!
答案 0 :(得分:0)
是的,你可以这样做。
为film
模型编写辅助方法,如
def language(code)
Language.where(code:code).first.id
end
获取电影描述:
@film.descriptions.where(language_id: language('en'))
答案 1 :(得分:0)
您可以按照以下方式尝试
@film.descriptions.joins(:language).where(language: {code: "en"})
它将返回描述语言具有“en”代码
的flims答案 2 :(得分:0)
重写如下:
Description.joins(:language)
.where(film_id: @film, languages: {code: "en"})