我可能会遗漏一些简单的内容,但如何通过非持久属性找到记录?
示例
class Post < ActiveRecord::Base
attr_accessible :title
attr_accessor :slug
def slug
title.parameterize
end
end
我正在使用Rails 3.2.11
答案 0 :(得分:1)
不幸的是,我认为执行此操作的唯一方法是遍历所有记录,直到找到目标,如:
def self.find_by_slug(slug)
Post.select("title").detect { |post| post.slug == slug }
end
可能存在表达相同逻辑的替代方法,但我认为它们都需要大量的Ruby迭代。因此,如果您希望它对大量帖子有效,那么保留该属性会更好。