2012-10-22 52 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"}%>