2010-08-20 204 views
0

我目前在Mediatemple网格服务器上托管。我正在写一个网站来教自己Ruby - 直红宝石,没有铁轨。我遇到了几个似乎是嵌套标签结果的错误。例如:eruby标签嵌套?

eruby要求<%>标签围绕ruby代码。如果我尝试使用ERB模板,我酿 -

<% 
template = ERB.new <<-EOF 
    The value of x is: <%= x %> 
EOF 
%> 

这显然不会因为嵌套<%%>标签的工作。我想我正在遇到与CGI类相似的问题。有没有办法改变用于erb或eruby的标签?还是有一个简单的方法,我完全失踪?

回答

0

你可能不想同时使用erb和eruby。你应该从ruby cgi脚本制作eruby(或者erb)。

require "cgi" 
require "erb" 

x = 42 
template = ERB.new <<-EOF 
    The value of x is <%= x %> 
EOF 

cgi = CGI.new 
cgi.out { template.result } 
+0

这就是问题所在。显然,服务器设置意味着让Ruby执行的唯一方法是通过eruby。为了让你提供的代码运行,它需要全部嵌套在<% %>标签中,然后由于嵌套的<% %>标签而破坏代码。 – sketchy 2010-08-20 08:16:24

+0

嗯,这是一个非常糟糕的设置。如果可能,我会建议交换主机。 – cam 2010-08-20 16:35:35

+0

好吧,我怀疑你的主机只支持erb。我很确定情况并非如此。您可以在cgi-bin中运行cgi脚本,或者按照本文中的建议在文档中运行它: http://kb.mediatemple.net/questions/30/Running+scripts+outside+of+the+ cgi-bin目录 – cam 2010-08-20 16:39:51