在Rails控制台中出现意外行为

时间:2017-06-07 01:19:56

标签: ruby-on-rails rails-activerecord

Rails 3.2

我在Rails控制台会话中,我正在尝试通过id找到一家公司。我有一个公司表,有一个id列。

我做了

print(ba[5])   # True
print(ba[6])   # False
print(ba[27])  # True

这是我在控制台中得到的:

company = Company.find_by_id("1403045688")

不应该直接用id搜索,而不是先尝试使用slug吗?为什么它似乎被混淆了,并希望解释查询?

1 个答案:

答案 0 :(得分:2)

Prior to version 5.0, FriendlyId overrode the default finder methods to perform friendly finds all the time

当您使用slug方法时,它将同时使用idfind列来查找记录,如果您只想按ID搜索,则需要将代码更改为类似:

company = Company.where(id: "1403045688").take