在Rails中编写find_by_slug(“test”)。id的更短方法?

时间:2014-01-01 20:21:09

标签: ruby-on-rails ruby-on-rails-4

在Rails ActiveRecord帮助程序中,有一种更简单的方法可以通过搜索另一列来获取id列。

目前:

find_by_slug("test").id

更新

基于下面的答案,在Rails 4中不推荐使用find_by_函数。是否有更简洁的方式来编写以下内容(因为我有很多这些):

QUESTION    = where(slug: "question").pluck(:id).first
ANSWER      = where(slug: "answer").pluck(:id).first
NOTE        = where(slug: "note").pluck(:id).first

1 个答案:

答案 0 :(得分:1)

如果您只在一个字段后面,请使用pluck

where(slug: "test").pluck(:id).first

假设slug是唯一的,pluck(:id)将返回一个包含1个元素的数组(如果找不到匹配的slug,则返回0个元素)。

此外,Rails 4中不推荐使用神奇的find_by_*方法。您不应该使用它们。