0
我想猴子補丁rspec-rails生成器來生成_form.html_spec.rb模板。我知道那是怎麼做到的,但不是我應該放這個補丁的地方!rails3猴子補丁生成器
我做了什麼:
# 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
在哪裏我把這個文件?謝謝。
編輯:
好吧,我認爲問題幾乎解決了。我沒有使用猴子補丁,而是繼承了特定的生成器並編輯了該方法。還有的解決方案:
# 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:腳手架是在列表,如果手動(rails g rspec_modded:scaffold test
)稱爲實際工作。
# 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生成器啓動了!什麼事?我真的不明白...
這就是問題所在。腳手架發電機運行時加載了哪些文件? – Iazel 2013-02-17 22:56:11
我認爲它加載了基本的環境(腳本/ rails)。但是你必須知道,/ lib沒有默認加載,如果你將它設置爲自動加載,那麼它可能永遠不會被加載。所以你需要明確地把需求放在某處 – Speed 2013-02-17 23:10:21
我已經取得了一些進展...... – Iazel 2013-02-18 01:16:10