rails 3-生成与每个操作视图关联的js.erb文件 [英] rails 3 - generate js.erb files associated with each action view

查看:62
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆