私はスタッフテーブルにいくつかの項目があるとしましょう。名前は: RedBaloon、SmallBall、BigShoe、ShoeStringファインダーメソッドのメタプログラミング
私は私のためにfind_by_nameメソッドを作成するためにメタプログラミングを使いたいと思っています。 red_baloon、small_ball、big_shoe、シューストリング
NB:「靴ひも」はタイプミスではない私がいる
問題は、私はメソッドの名前として、以下のものを使用してしたいということです。
は、ここで私はあなたに応答するのを始め、いくつかのコードです:彼らのコメントで言っ@apneadiving同様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
あなたはメタプログラミングの概念を理解しており、良いスタートがあるようです。あなたは何かをする方法やエラーが出るようなことについて具体的な質問がありますか? –
別の配列にメソッド名を取得します。あなたがダウンケースに突っ込んでいたら。あなたはそれに答えるアンダースコアメソッドhttp://apidock.com/rails/String/underscore – apneadiving
を使用することができました!答えとして追加する – keruilin