2012-03-02 3 views
0

Rails :: Engine에서 레일 생성기를 사용할 때 lib 디렉토리에있는 템플릿 파일을 선택하지 않는 것 같습니다. 여기에 설명 된대로 Rails 3 Generator 사용자 정의 템플릿 (엔진 포함)

http://guides.rubyonrails.org/generators.html#customizing-your-workflow-by-changing-generators-templates

는 지금은 나 또한 다른 사람이이 시도했습니다
lib/my_engine/templates/rails/scaffold_controller 

을 시도

lib/templates/rails/scaffold_controller 

있습니다.

답변

2

레일에서 엔진

지원되지 않습니다 피니셔가

module Rails 
class Application 
    module Finisher 
    include Initializable 

    initializer :add_generator_templates do 
     config.generators.templates.unshift(*paths["lib/templates"].existent) 
    end 

...... 

그래서이가 위해 엔진 설정에서 수행해야하는 경로에이 추가 돌봐 앱 관련 보인다 이게 작동합니다.

module MyEngine 
    class Engine < ::Rails::Engine 
    config.generators.templates.unshift File.expand_path("lib/templates", root) 
    end 
end 

이것은 버그입니까? 원하는 동작입니까?

0

위 답변 (별의 본문은 레일즈 3.2에서 내 경우를 수정하지는 않았지만 How to override a rails generator template in a gem?)이 수정되었습니다. 나 같은 사람을 지적 해줘. 당신의 Engine 클래스를 오염 나던 훨씬 더 발전기에 국한되어

class MyGenerator < Rails::Generators::NamedBase 
    source_root File.expand_path('../templates', __FILE__) 
end 

: 당신은 레일 3.2 엔진의 루트 경로에 rails g generator MyGenerator를 사용하는 경우

관련 문제