如何在haml中的link_to标签中设置ID?

时间:2013-05-09 22:55:12

标签: ruby-on-rails haml

我试过

= link_to 'foo', :action => 'bar', :id => 'foobar'

但ID似乎只是修改了href,导致

<a href="controller/foobar/bar">foo</a>

如何正确设置ID?也有人可以向我解释原因:id正在修改href,这样我才能理解幕后发生了什么?

3 个答案:

答案 0 :(得分:8)

您必须将:action => 'bar'放在哈希中。

= link_to 'foo', { :action => 'bar' }, :id => 'foobar'

docs中有一个例子说明了同样的问题:

  

CSS的类和ID很容易生成:

link_to "Articles", articles_path, :id => "news", :class => "article"
# => <a href="/articles" class="article" id="news">Articles</a>
  

使用旧的参数样式时要小心,作为额外的文字   需要哈希:

link_to "Articles", { :controller => "articles" }, :id => "news", 
    :class => "article"
# => <a href="/articles" class="article" id="news">Articles</a>
  

离开哈希会给出错误的链接:

link_to "WRONG!", :controller => "articles", :id => "news", :class => "article"
# => <a href="/articles/index/news?class=article">WRONG!</a>

这就是为什么你最好使用带有路由别名的新参数样式,而不是明确地调用控制器和动作。

答案 1 :(得分:2)

你能为此使用路径助手吗?这取决于您正确配置的路由。

例如:

= link_to "foo", foo_path, :id => "foobar"

答案 2 :(得分:2)

您可以使用link_to标记传递参数,例如

= link_to "foo", { :controller => "foo", :id => "foobar"}

= link_to "foo", {:action=> "any-action, ":controller => "foo", :id => "foobar"}

这里你没有链接_tag

的参数
相关问题