在erb include调用中使用变量名

时间:2013-11-08 01:43:51

标签: ruby sinatra erb

我正在使用Sinatra,我想在我的一个视图中包含另一个erb文件,但是使用变量作为文件名。

我认为这样的事情可能会有效,但我得到一个错误,说没有找到这样的文件。

<%= erb :'layout/nav/#{device_type}' %>

目前我正在使用下面的switch语句来实现所需的结果,但上面的代码更清晰,代码更少。

<% case device_type
   when 'mobile'%>
    <%= erb :'layout/nav/mobile' %>
    <% when 'tablet' %>
    <%= erb :'layout/nav/tablet' %>
    <% else %>
    <%= erb :'layout/nav/desktop' %>
    <% end  %>

由于

贾尔斯

1 个答案:

答案 0 :(得分:2)

我认为这可行,你只需要使用双引号来插入字符串。

尝试

<%= erb :"layout/nav/#{device_type}" %>