rails 3-生成与每个操作视图关联的js.erb文件 [英] rails 3 - generate js.erb files associated with each action view
本文介绍了rails 3-生成与每个操作视图关联的js.erb文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有一种(简单的)方法来配置默认生成器,以便除了html.erb文件之外还为每个操作生成一个js.erb文件?
Is there a (simple) way to configure the default generator to also generate a js.erb file for each action in addition to html.erb files?
推荐答案
您可以覆盖脚手架生成器 lib/rails/generators/erb/scaffold/scaffold_generator.rb
文件.
You can override the scaffold generator lib/rails/generators/erb/scaffold/scaffold_generator.rb
file.
第1步:复制最新的 scaffold_generator.rb
文件.
mkdir -p lib/rails/generators/erb/scaffold && cp $(bundle show railties)/lib/rails/generators/erb/scaffold/scaffold_generator.rb lib/rails/generators/erb/scaffold/
第2步:添加自定义代码以生成所需的 .js.erb
文件.
Step 2:
Add custom code to generate .js.erb
files you want.
# frozen_string_literal: true
require "rails/generators/erb"
require "rails/generators/resource_helpers"
module Erb # :nodoc:
module Generators # :nodoc:
class ScaffoldGenerator < Base # :nodoc:
include Rails::Generators::ResourceHelpers
argument :attributes, type: :array, default: [], banner: "field:type field:type"
def create_root_folder
empty_directory File.join("app/views", controller_file_path)
end
def copy_view_files
available_views.each do |view|
formats.each do |format|
filename = filename_with_extensions(view, format)
template filename, File.join("app/views", controller_file_path, filename)
end
end
javascript_views.each do |view|
path = File.join('app', 'views', controller_file_path, "#{view}.js.erb")
File.open(path, "w")
end
end
private
def available_views
%w(index edit show new _form)
end
def javascript_views
%w(index show create update)
end
end
end
end
现在,当您运行脚手架生成器时,您将看到创建的新的 .js.erb
文件.
Now when you run your scaffold generator you'll see the new .js.erb
files that are created.
这篇关于rails 3-生成与每个操作视图关联的js.erb文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文