首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails3猴子补丁生成器

rails3猴子补丁生成器
EN

Stack Overflow用户
提问于 2013-02-18 06:26:24
回答 1查看 303关注 0票数 0

我想修补rspec-rails生成器以生成_form.html_spec.rb模板。我知道怎么做,但不知道我应该把这个补丁放在哪里!

我做了什么:

代码语言:javascript
复制
# rspec_generator_patch.rb
module Rspec
  module Generators
    class ScaffoldGenerator < Base
      def generate_views_specs_with_form *args, &block
        generate_views_specs_without_form
        copy_view :_form
      end
      alias_method_chain :generate_views_specs, :form
    end
  end
end

我把这个文件放在哪里了?谢谢。

编辑:

好了,我想问题差不多解决了。我继承了特定的生成器并编辑了该方法,而不是使用monkey-patch。这就是解决方案:

代码语言:javascript
复制
# lib/generators/rspec_modded/scaffold/scaffold_generator.rb
require 'generators/rspec/scaffold/scaffold_generator.rb'
module RspecModded
  module Generators
    class ScaffoldGenerator < Rspec::Generators::ScaffoldGenerator
      def generate_view_specs
        super
        copy_view :_form
      end
    end
  end
end

如果我这样做了,rails g rspec_modded:scaffold就在列表中,如果手动调用(rails g rspec_modded:scaffold test),它实际上是可以工作的。

代码语言:javascript
复制
# config/application.rb
# ...
config.generators do |g|
  g.test_framework :rspec_modded, :fixture => false, fixture_replacement: nil
  g.fallbacks[:rspec_modded] = :rspec
end

据我所知,每个hook_for :test_framework都应该调用rspec_modded生成器,而rspec应该管理其余的(回退)。但是它不起作用:出于某种原因,unit_test生成器启动了!出什么事了?我真的不明白。

EN

回答 1

Stack Overflow用户

发布于 2013-02-18 06:27:27

你可以把你的猴子补丁放在任何地方,只要它是加载的。对于rails,您通常会将其放在/lib文件夹中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14926814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档