Ruby on rails 将文件名传递给Rails生成器模板
我想创建一个生成器,为我在Rails 4中工作的系统创建一些定制的脚手架。我有一个基本生成器,这行代码将文件从模板复制到目标Ruby on rails 将文件名传递给Rails生成器模板,ruby-on-rails,ruby-on-rails-4,generator,Ruby On Rails,Ruby On Rails 4,Generator,我想创建一个生成器,为我在Rails 4中工作的系统创建一些定制的脚手架。我有一个基本生成器,这行代码将文件从模板复制到目标 copy_file "controllers/module_controller.rb", "app/controllers/#{file_name}_controller.rb" 这很好,但我想知道的是如何在模板中使用#{file_name}?例如,我可以做这样的事情吗 class <%= "#{file_name}" %>Controller <
copy_file "controllers/module_controller.rb", "app/controllers/#{file_name}_controller.rb"
这很好,但我想知道的是如何在模板中使用#{file_name}?例如,我可以做这样的事情吗
class <%= "#{file_name}" %>Controller < ApplicationController
类控制器
尽管我做的有点不同。我们需要使用模板
方法,而不是复制文件
class SomethingGenerator < Rails::Generators::NamedBase
source_root File.expand_path('../templates', __FILE__)
def copy_files
# Controller
template "controllers/something_controller.erb", "app/controllers/#{something_name}_controller.rb"
end
private
def something_name
file_name.underscore
end
end
class SomethingGenerator
这也适用于视图和其他文件。关键是使用Dileep Nandanam指出的.erb文件。我猜您使用erb进行定制搭建。 创建通用_controller.erb
class <%= controller_name %>Controller < ApplicationController
some stuff using erb
end
这会给你
class SomethingController < ApplicationController
some stuff using erb
end
class-SomethingController
希望这将帮助您使用erb文件是一条可行之路。
class SomethingController < ApplicationController
some stuff using erb
end