所以我希望能够使用一个对象find_by_id_or_name,我觉得我看到了这样的另一个问题,但很难找到任何资源来制作我自己的查找器.
您可以通过向模型添加类方法来完成此操作,例如
class Model < ActiveRecord::Base
def self.find_by_id_or_name(id_or_name)
find :first, :conditions => ['id = ? or name = ?', id_or_name, id_or_name]
end
def self.find_all_by_id_or_name(id_or_name)
find :all, :conditions => ['id = ? or name = ?', id_or_name, id_or_name]
end
end
Run Code Online (Sandbox Code Playgroud)
然后你就可以了
Model.find_by_id_or_name(id_or_name)
Run Code Online (Sandbox Code Playgroud)
您可以根据您的要求稍微自定义方法,例如,如果您想先尝试id,然后name您可以Model.exists?先使用,以便在执行之前查看是否有匹配的记录find_by_name.您还可以查看是否id_or_name包含字符,0-9并假设它是一个id且仅按名称搜索,如果它包含其他字符.
| 归档时间: |
|
| 查看次数: |
849 次 |
| 最近记录: |