Rails我怎样才能把<%= link_to ...%>进入实例变量?

时间:2012-01-31 10:02:54

标签: ruby-on-rails-3.1

我有这个(和其他)导航链接:

<li><%= link_to "Actors with commas",  actor_path('search')+'/commas' %></li> |

这些需要放入模板的标题部分,并根据视图模板进行更改。

所以在application.html.erb中我有这个:

<div class='submenu'>   
  <%= @app_menu %>
</div> <!-- end submenu -->

在视图模板中我有:

@app_menu = 

问题是,如何将顶行(带有link_to等)放入该实例变量中,并让Rails使用HTML正确解析它并且没有错误。现在,如果我包含<ul><li>,它会按字面打印出来。当然,如果我包含&lt;%= link_to ......我会遇到各种各样的错误。

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我最终做的是为每个菜单创建部分内容,因此一个部分_actors_menu.html.erb可能如下所示:

<%= image_tag "submenu-separation.png", :alt => 'separator' %> <li><%= link_to "Actors with commas",  actor_path('search')+'/commas' %></li> <%= image_tag "submenu-separation.png", :alt => 'separator' %>
<li><%= link_to "Actors with Ampersand (&)", actor_path('search')+'/acute' %></li> <%= image_tag "submenu-separation.png", :alt => 'separator' %>

然后我在每个actor视图上放置@app_menu = "actors_menu"。等等其他页面。

但我想知道是否有更聪明的方法来做这一切?

此外,我在哪里以及如何为app_menu设置全局变量,以便不在每个模板中重复它?