gpt4 book ai didi

ruby-on-rails-4 - Rails 4 自定义生成器,撤销/调用

转载 作者:行者123 更新时间:2023-12-04 07:03:06 24 4
gpt4 key购买 nike

给定一个简单的自定义生成器:

# lib/generators/custom_model/custom_model_generator.rb

class CustomModelGenerator < Rails::Generators::NamedBase

def rails_generate_model
generate 'model', "#{file_name} #{args.join(' ')}"
end

end

像这样使用:
$ rails generate custom_model ModelName

我如何定义这个自定义生成器的销毁行为?
$ rails destroy custom_model ModelName

实际上,我的问题是这个生成器使用 generate 方法来使用现有的 rails 生成器。但我找不到任何方法来扭转这个生成所做的事情。

我曾经将它用于我自己的生成器(它不调用任何现有的生成器),并编写我自己的“销毁”例程:
  case self.behavior
when :invoke
# do that stuff
when :revoke
# undo it!
end

我在网上对此有很多关注,但没有任何相关或最新的内容。所以任何建议都非常受欢迎。

谢谢阅读。

最佳答案

您可以使用以下代码段(当然您可以将 :scaffold 替换为任何其他生成器):

case self.behavior
when :invoke
generate :scaffold, "#{file_name} #{attributes}"
# Or equally:
# Rails::Generators.invoke :scaffold, args, :behavior => :invoke
when :revoke
Rails::Generators.invoke :scaffold, [file_name], :behavior => :revoke
end

关于ruby-on-rails-4 - Rails 4 自定义生成器,撤销/调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28239045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com