Если вы спрашиваете, есть ли более краткий способ написания этого ... не уверен, что это так со стандартными искателями.То, что у вас есть, довольно мало.Просто для забавы я написал это для вас, хотя:)
class ActiveRecord::Base
def self.method_missing_with_retrieve_just_a_field(method_called, *args, &block)
if(method_called.to_s=~/get_/)
self.find(args[0]).send(method_called.to_s.gsub("get_", ""))
else
method_missing_without_retrieve_just_a_field(method_called, *args, &block)
end
end
class << self
alias_method_chain :method_missing, :retrieve_just_a_field
end
end
Если вы поместите это в свои конфиг / инициализаторы как какой-то файл, такой как crazy_finder.rb, вы можете просто сказать:
MyModel.get_my_field(my_id)
Это не сильно тебя спасает, но я просто подумал, что было бы интересно написать.