どうやら、ビューの実際の作成は と呼ばれる関数によって行われますcopy_view_files
。その関数内で必要なビューのタイプを指定できます。その後、私のscaffold_generator.rb
見た目は次のようになります。
'rails/generators/erb/scaffold/scaffold_generator' が必要です
module Erb
module Generators
class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
source_root File.expand_path(File.join('..', 'templates'), __FILE__)
def copy_view_files
primary_views.each do |view|
filename = filename_with_extensions view
template "#{view}.html.erb", File.join('app', 'views', controller_file_path, filename)
template "#{view}.js.erb", File.join('app', 'views', controller_file_path, filename)
end
end
hook_for :form_builder, :as => :scaffold
protected
def primary_views
['index', 'edit', 'show', 'new']
end
def handler
:erb
end
end
end
end
copy_view_files
関数内で、 への 2 つの呼び出しがあることに注意してくださいtemplate
。1 つ目は一連の html ビューを作成し、2 つ目は必要な js ビューを作成します。