これは初めてのカスタムレールジェネレータの作成ですが、ジェネレータに渡された引数に基づいてテンプレート内に動的クラスを作成できるようにしたいのですが、どうやってそれを正しくフォーマットするかわかりません。Ruby - ファイル名に基づいてクラスを作成していますか?
class Achievements::__FILE__ < Achievement
end
これは作成する生成クラスであり、その下位のものはジェネレータです。また、サイドノートで、私は私の発電機でディレクトリ '達成'を作成していますか?
module Achiever
module Generators
class AchievementGenerator < Rails::Generators::Base
source_root File.expand_path('../templates', __FILE__)
argument :award, :type => :string
def generate_achievement
copy_file "achievement.rb", "app/models/achievement/#{file_name}.rb"
end
private
def file_name
award.underscore
end
end
end
end
ありがとうJwosty!これは、Ruby固有のアプリケーションの非常に良い答えです。 – ericraio
もちろん、問題ありません! – Jwosty