2012-06-01 30 views
0

对于我的生活,我无法弄清楚为什么会出现这个问题。我一直使用link_to helper,但是iv只使用了link_to_if helper几次,这次我无法获得链接来获取CSS类。Rails link_to_if类不能正确显示

这里是我的链接

<%= 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助手中使用的格式相同。

任何人都可以解释为什么吗?

回答

2

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

请参阅source

0

尝试将空散列作为选项参数传递,以便{ :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' })%> 
+0

谢谢,但它没有奏效。我得到:错误的参数数量(4为5) – Cheyne

0

包裹link_to_iflink_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类(右拉)上无论是显示 - 全链路或只是其文本。