2012-10-19 59 views
1

如果我正在查找单个结果而不是集合,是否可以更改默认范围?我可以根据操作类型更改默认范围

即Model.find(ID)与Model.all

default_scope lambda { where({:language_id => Language.default_or_first.id}) }

我真的只想范围我的索引时,我发现记录的全段认为这一方式。

当我做一个Model.find(3)我想它给我,即使它不是默认的语言。

回答

0

您可以使用unscoped忽略默认范围。

model = Model.unscoped.find(1) 

会让你的模型。

你也可以做

model = Model.find_by_id!(1) 

但我真的认为你应该考虑不使用默认的范围的话,那很可能会导致更多的麻烦进一步上。

+0

我最终找到了无人物,这符合我的需求。 –