我正在创建一个rails生成器:
class TaggableGenerator < Rails::Generators::NamedBase
source_root File.expand_path('../templates', __FILE__)
hook_for :orm, :as => "model"
end
一切都很好,但我想设置在模型中创建的字段并创建多个模型,我找不到关于如何做到这一点的任何东西(我从查看设计生成器中获得了上述代码),最好是我想要它从通用(但它不是那么重要)。
以下是一些可能对您有所帮助的链接:
http://railscasts.com/episodes/218-making-generators-in-rails-3
http://guides.rubyonrails.org/generators.html
基本上,你只需要在你的类中添加方法来做你想做的事情(当调用生成器时,所有的公共方法都会被调用),这里是一个来自rails源代码的例子:
class AssetsGenerator < Rails::Generators::NamedBase
source_root File.expand_path("../templates", __FILE__)
def copy_stylesheet
copy_file "stylesheet.css", File.join('app/assets/stylesheets', class_path, "#{file_name}.css")
end
end
copy_file来自Thor,您可以在Thor引用中看到可用方法的列表:http://textmate.rubyforge.org/thor/Thor/Actions.html