Давайте представим, что у меня есть некоторые предметы в таблице вещей. Имена:
RedBaloon, SmallBall, BigShoe, ShoeString
Я хочу использовать метапрограммирование для создания методов find_by_name для меня.
Проблема, с которой я столкнулся, заключается в том, что я хочу использовать следующие имена в качестве имен методов:
red_baloon, small_ball, big_shoe, шнурок
Примечание: "шнурок" - это не опечатка.
Вот код, с которого я начал, чтобы вы могли на него ответить:
class Stuff < ActiveRecord::Base
NAMES = ['RedBaloon', 'SmallBall', 'BigShoe', 'ShoeString']
validates_inclusion_of :name, :in => NAMES
class << self
NAMES.each do |n|
define_method "#{n}" do
find_by_kind(n)
end
end
end
end