在Rails中,您可以创建一个跨越多行的锚标记,执行如下操作:
<% link_to target_url_path do %>
<span class="title">Example</span>
<span class="excerpt">Neque porro quisquam est qui dolorem ipsum...</span>
<%= image_tag 'example.png', :class => 'thumbnail' %>
<% end >
我想知道如何使用类似的方法设置值。实质上,像:
<% my_variable = do %>
<span class="title">Example</span>
<span class="excerpt">Neque porro quisquam est qui dolorem ipsum...</span>
<%= image_tag 'example.png', :class => 'thumbnail' %>
<% end >
编辑:如果有人对我要问的原因感到好奇,那是因为facebox_link_to
似乎不允许您使用像do
这样的link_to
语法。
答案 0 :(得分:5)
我真的不知道你想做什么,但你可以使用#tap
模式。
<% my_variable.tap do |variable| %>
<span class="title">Example</span>
<span class="excerpt">Neque porro quisquam est qui dolorem ipsum...</span>
<%= image_tag 'example.png', :class => 'thumbnail' %>
<% end %>
如果您希望将一大块代码分配给变量,那么您做错了,因为视图不应该以这种方式设置变量。
相反,请使用帮助程序。
答案 1 :(得分:0)
这实际上是渲染内联模板。您可以使用render :inline
:
<% my_variable = render :inline => <<-EOS
<span class="title">Example</span>
<span class="excerpt">Neque porro quisquam est qui dolorem ipsum...</span>
#{image_tag 'example.png', :class => 'thumbnail'}
EOS
%>
希望这有帮助!