2013-05-09 27 views
1

我試過如何在haml中的link_to標記中設置ID?

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

但ID似乎只修改HREF,導致

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

如何正確設置ID?也有人可以向我解釋爲什麼:id正在修改href,所以我可以理解幕後發生了什麼?

回答

7

您必須將:action => 'bar'放在哈希中。

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

存在這樣把一個例子你同樣的問題docs一個例子:

class和id的CSS很容易產生:

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> 

這就是爲什麼你最好是使用具有路由別名的新參數樣式不僅僅是明確地調用控制器和動作。

2

你可以使用路徑助手這個嗎?這將取決於您的路線配置是否正確。

因此,例如:

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

2

您可以link_to代碼傳遞參數,如

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

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

在這裏,你可以不與鏈接_tag

參數