检查在定制的Rails 3生成器内部使用了什么命令。

| 您如何判断是否已使用“ 0”或“ 1”命令来调用自定义生成器? 在Rails 2中,您可以这样做:
if options[:command] == :destroy
  ...
end
我想打印一些有用的信息,但是仅当调用
rails generate
时才打印,而在调用
rails destroy
时不打印:
if is_generating
  puts \"You\'re generated something!\"
end
谢谢。     
已邀请:
检查生成器类的行为。看来您应该使用:invoke生成或:revoke销毁。例如,我添加了以下内容:
class PatternGenerator < Rails::Generators::NamedBase
  def echo_behavior
    p \"generate? #{generating?}\"
    p \"destroying? #{destroying?}\"
  end

  protected

  def generating?
    :invoke == behavior
  end

  def destroying?
    :revoke == behavior
  end  
end
运行此,我得到:
younker % rails g pattern foo      
\"generate? true\"
\"destroying? false\"
younker % rails destroy pattern foo
\"generate? false\"
\"destroying? true\"
似乎可以正常使用,这就是我的最终答案。     

要回复问题请先登录注册