ruby-on-rails - Ruby 如何使用 erb 解释生成器模板而不引发错误?

标签 ruby-on-rails ruby generator erb

看看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/

相关文章:

ruby-on-rails - 为什么这个 Ruby on Rails 投票代码不起作用?

ruby-on-rails - Rails 4 + Turbolinks : JS in the head or at the bottom of the body?

ruby-on-rails - 将 JSON 数组转换为 Activerecord 模型数组?

ruby-on-rails - 我可以更改 Rails 创建迁移的方式吗

java - 是否有生成 DSL 解析器的工具不需要生成的解析器运行时?

python - 如何使用文件中的生成器进行标记化而不是具体化字符串列表?

ruby-on-rails - 是否可以创建一个在其行创建时定义的不明确外键?

ruby-on-rails - 与 Authlogic 一起使用的一些好的角色授权解决方案是什么?

python - Django 或 Ruby on Rails - 用户扩展、插件

generator - 脚本如何最佳地布局纯分层的graphviz/dot图?