我正在为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>
,这仍然是错误的。
有什么建议吗?谢谢。
答案 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_for
,default_responses_path
等)代替第一个哈希。