看看this Devise migration template你会看到它有 erb
语法。
Ruby 解释器如何解释包含 erb 内容的 rb 文件而不引发 SyntaxError
?
# migration.rb inside active record generator templates.
class DeviseCreate<%= table_name.camelize %> < ActiveRecord::Migration
# snip more erb
end
最佳答案
该模板在您运行生成器时由 ERB 处理,结果将存储在您的 Rails 项目中。
这意味着在您的 Rails 项目中仅存储和执行结果文件。在 Rails 代码库模板中,生成器使用 .tt
扩展名,这更明确地表明该文件只是一个模板,不会逐字存储在您的项目中。
换句话说,您的项目将不会包含 this template照原样,但结果应用于运行生成器的上下文。例如,
class DeviseCreate<%= table_name.camelize %> < ActiveRecord::Migration
将成为
class DeviseCreateUsers < ActiveRecord::Migration
关于ruby-on-rails - Ruby 如何使用 erb 解释生成器模板而不引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21433032/