使用html slim

时间:2018-08-01 22:38:51

标签: html ruby ruby-on-rails-3 erb slim-lang

我正在为Ruby on Rails项目开发html slim文件。我想为控制器操作创建类btn btn-primary(我正在使用引导程序)的按钮。控制器名称为default_responses,操作为编辑。所以我首先做了:

= link_to 'Test this', :controller => 'default_responses', :action => 'edit', :id => params[:id].to_i

它将变为

<a href="/default_responses/7/edit">Test this</a>

其中7是id参数,对于我的情况是正确的。但是,它根本不是按钮,而只是锚定标签。它还会将我重定向到正确的页面。

然后我尝试了

 = link_to 'Test this', :controller => 'default_responses', :action => 'edit', :id => params[:id].to_i, class: 'btn btn-primary'

这给了我

<a href="/default_responses/7/edit?class=btn+btn-primary">Test this</a>

这仍然不是我想要的,因为它仍然不是按钮。

还尝试了= link_to 'Test this', :controller => 'default_responses', :action => 'edit', :id => params[:id].to_i, :class=> 'btn btn-primary'

它返回了<a href="/default_responses/7/edit?class=btn+btn-primary">Test this</a>,这仍然是错误的。

有什么建议吗?谢谢。

1 个答案:

答案 0 :(得分:2)

Rails的link_to具有多个哈希选项,在您的示例中,您提供了一个哈希选项,所有这些都传递到url_options部分中。您需要在第一个哈希值周围添加大括号({}),以告诉ruby哪个选项转到哪个哈希值。

= link_to 'Test this', { :controller => 'default_responses', :action => 'edit', :id => params[:id].to_i }, class: 'btn btn-primary'

应该工作。当然,您也可以使用url帮助器(url_fordefault_responses_path等)代替第一个哈希。