Rails link_to_if类无法正确显示

时间:2012-06-01 19:06:38

标签: ruby-on-rails link-to

对于我的生活,我无法弄清楚为什么会出现这个问题。我一直使用link_to帮助器,但iv只使用了link_to_if帮助器几次,而这次我无法获得获取CSS类的链接。

这是我的链接

<%= link_to_if(step.sequence > 1, raw('<i class="icon-chevron-up"></i>'), url_for(:controller => :test_steps, :action => :update_sequence, :direction => 'up', :id => step.id, :test_script_id => @test_script), { :class => 'btn btn-mini' })%>

图像显示,没有预期的链接,但最后定义的CSS类没有,而是没有类。这与我在所有link_to助手中使用的格式相同。

任何人都可以解释原因吗?

3 个答案:

答案 0 :(得分:2)

使用link_to_if,如果条件失败,将仅返回名称 - 在您的情况下是raw('<i class="icon-chevron-up"></i>')的结果。否则将忽略否则将应用于链接标记的所有选项。

请参阅source

答案 1 :(得分:0)

尝试传递空哈希作为options参数,以便将{ :class => '...' }分配给html_options参数。未经测试

<%= link_to_if(step.sequence > 1, raw('<i class="icon-chevron-up"></i>'), url_for(:controller => :test_steps, :action => :update_sequence, :direction => 'up', :id => step.id, :test_script_id => @test_script), {}, { :class => 'btn btn-mini' })%>

答案 2 :(得分:0)

在一个范围内包裹 link_to_if link_to_unless

 %span.pull-right
   = link_to_unless Foo.deleted.empty?, "<i class='icon-white icon-trash'></i> Undelete Foo".html_safe, deleted_foos_path

上面的代码在显示的内容上设置了一个css类(右拉) - 完整链接或只是文本。