在部署时修改erb文件

ror*_*oob 5 ruby ruby-on-rails

我有一个JavaScript片段,我想添加到页面,但只在生产环境中.rails是否可以在部署时插入或有条件地包含.我知道我可以做"如果Rails.env.production?" 但是每次加载页面时我都不想做这种情况检查.

klo*_*ner 5

我不会担心一个if陈述的开销.

为什么不使用自定义帮助器方法:


def snippet
  if RAILS_ENV == "production"
   javascript_tag "whatever"
  elsif . . .
end
Run Code Online (Sandbox Code Playgroud) 那么你可以使用相同的语法:

<%= snippet %>

你会得到一些好处:

  • 访问其他铁路助手
  • 你的配置文件不会被原始的html乱七八糟


Ben*_*Ben 1

在这种情况下我所做的是在每个环境的配置文件中创建一个常量:

#config/environments/development.rb
SNIPPET = ""

#config/environments/production.rb
SNIPPET = "<script src='whatever.js'></script>"

#app/views/file.html.erb
<%= SNIPPET %>
Run Code Online (Sandbox Code Playgroud)