2012-10-22 50 views
44

我想要的風格軌道連結中的CSS使用下面的代碼:添加CSS類軌的link_to助手

<%= link_to "Learn More", :controller => "menus", :action => "index", :class => "btn btn-inverse" %> 

我希望,這將創建一個鏈接,看起來像這樣:

<a href="menus/" class="btn btn-inverse">Learn More</a> 

相反,Rails是一個渲染這一點 -

<a href="/menus?class=btn+btn-inverse">Learn More</a> 

任何人都有這個問題/知道我做錯了嗎?我知道我可以通過手動創建錨點標記而不是使用幫助來避免這個問題,但我想知道是否有辦法將css類信息傳遞給幫助者本身。我正在使用Rails 3.2.6。

謝謝!

+0

會發生什麼情況:class => [「btn」,「btn-inverse」]或者:class =>%w「btn btn-inverse」? –

+2

您也可以使用'menus_path'作爲link_to的第二個參數,而不是指定控制器和操作。 – James

+0

@James - 確實有效。謝謝! – Blake

回答

86

你有一個語法問題。試試這個:

<%= link_to "Learn More", {controller: "menus", action: "index"}, class: "btn btn-inverse" %> 

Some documentation for you to go further with the link_to Helper

他們說:使用的是舊的說法風格時

要小心,因爲需要額外的文字哈希:

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

將散列關閉給出錯誤的li NK:

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

,我建議你使用下你的路由配置生成的URL幫手。你的情況:

link_to "Learn More", menus_path, :class => "btn btn-inverse" 

的助手小提醒生成:

# routes.rb 
resources :users 

# any view/controller 
users_path #=> /users 
edit_user_path(user) #=> /users/:id/edit 
user_path(user) #=> /users/:id (show action) 
new_user_path(user) #=> /users/new 
+1

啊,我錯過了哈希。這正是我期待的,謝謝! – Blake

+0

是的,我知道 - 這讓你等問題幾分鐘。再多兩分鐘! – Blake

2

嘗試新的說法約定:

<%= link_to 'Learn More', 'menus#index', class: 'btn btn-inverse' %> 
0

我的方式解決我的問題

<%= link_to image_tag("imageexamplo.png", class: 'class or id examplo css'),{controller: "user" , action: "index"}%>