0
4

1 回答 1

2

.where方法返回一个 ActiveRecord 关系,这意味着它们可以与其他此类方法和范围链接,如Model.where(:user_id => id).published. 动态查找器(.find_by_name等)返回模型实例或数组,它们不能与其他范围链接。

如果与感叹号一起使用,则动态查找器可以ActiveRecord::RecordNotFound在未找到预期记录(而不是 、 或空关系)时返回错误nil,例如)`。[]User.find_by_email!('example@email.com

它们各有各的用途;您可以根据调用方法的情况来决定。

于 2012-10-17T03:28:11.013 回答