我有一个内联到Ruby代码的ERB模板:
require 'erb'
DATA = {
:a => "HELLO",
:b => "WORLD",
}
template = ERB.new <<-EOF
current key is: <%= current %>
current value is: <%= DATA[current] %>
EOF
DATA.keys.each do |current|
result = template.result
outputFile = File.new(current.to_s,File::CREAT|File::TRUNC|File::RDWR)
outputFile.write(result)
outputFile.close
end
Run Code Online (Sandbox Code Playgroud)
我无法将变量"current"传递给模板.
错误是:
(erb):1: undefined local variable or method `current' for main:Object (NameError)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我最近看到这个,认为它很有趣.但我真的不明白它的作用?
防爆.我有一个rails应用程序,我想引导一些json,所以我不必再发出第二个请求.通常我会写这样的东西.
<%= raw @model.to_json %>
要么
<%= @model.to_json.html_safe %>
我必须发送消息raw或者html_safejson将被html转义,因此无法正确解析.但是,这似乎也有效.
<%== @model.to_json %>
但我找不到任何文件.
有谁知道这究竟是什么?即它是否与呼叫完全相同html_safe或raw?或者还有更多吗?
.erb,.rhtml和.html.erb有什么区别?
我最近一直在和Haml一起玩,真的很喜欢结果代码给我看的方式......开发人员.我也不太担心设计师能够消费或改变它......我们是一个小团队.
也就是说,开始研究一个我们认为会产生相当多流量的项目(谁没有?).我担心有一些我不知道haml的事情.有没有什么可以做的哈哈不能?随着项目的发展,haml会产生负面影响吗?还有其他事情需要考虑吗?
最后...... Haml如何与erubis进行速度比较?我看到它现在应该胜过erb和eruby ......
谢谢!
我有一个rails项目,视图只包含HTML.ERB文件,我的客户端想要将ERB转换为HAML.我的文件太多了.这需要花费大量时间来逐个文件转换.那么我可以将HTML转换成haml的简单方法吗?我在我的项目下安装了haml插件.
直到一周前,我很乐意在Notepad ++中使用语法高亮编码html.erb文件.然后我的硬盘崩溃了.
我在我的新系统上重新安装了Notepad ++但是当我打开我的html.erbs时,只有少数几个正确地突出显示.
我认为问题可能是大多数这些文件被认为是"普通文本文件",其中少数工作被认为是"html文件".我试过'另存为'同名的html文件,但它不起作用.如何让我的语法突出显示?这严重减缓了我的速度.
在Rails 3.1中,无法使用诸如<%= @ foo%>之类的语法访问资产js.erb或coffee.erb文件中的控制器实例变量,其中@foo在控制器中设置.那么问题是将控制器变量传递给CoffeeScript或JavaScript资产的最佳方法是什么.
这个问题在论坛上有多种复杂形式的问题,但我再次提出这个问题的意思是要有一个所有建议聚集在一起的地方,并且所提供的代码简单易读.另请注意,我特指的是资产,而不是查看响应文件.
controller ruby-on-rails erb instance-variables coffeescript
在Rails 3应用程序中,我有一个域类,其中一个属性存储纯HTML内容(它是一个博客应用程序,域类是Post).
在ERB模板中,我需要在格式化时显示属性的内容,并使用HTML标记.但是,Rails正在逃避所有HTML标签!如何为此类属性禁用此行为?
例:
somePost = Post.new
somePost.content = "<strong> Hi, i'm here! </strong>"
Run Code Online (Sandbox Code Playgroud)
在erb模板中:
<%= somePost.content %>
Run Code Online (Sandbox Code Playgroud)
生成的HTML被转义:
<strong> Hi, i'm here! </strong>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Ruby和Sinatra将参数传递给erb视图.
例如,我可以这样做:
get '/hello/:name' do
"Hello #{params[:name]}!"
end
Run Code Online (Sandbox Code Playgroud)
我如何传递:name给视图?
get '/hello/:name' do
erb :hello
end
Run Code Online (Sandbox Code Playgroud)
我如何读取view/hello.erb中的参数?
谢谢!
我需要ERB(Ruby的模板系统)来模板化非HTML文件.
(相反,我想将它用于源文件,如.java,.cs,...)
如何从命令行"执行" Ruby模板?