将 css 类添加到 Railslink_to helper

我正在尝试使用下面的代码使用 css 来设计 Rails 链接:

<%= 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>

还有谁有这个问题/知道我做错了什么吗?我知道我可以通过手动创建锚标记而不是使用 helper 来避免这个问题,但是我想知道是否有一种方法可以将 css 类信息传递给 helper 本身。我使用 Rails 3.2.6。

谢谢!

113491 次浏览

你的语法有问题,试试这个:

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

有一些文档可供您进一步使用 link _ to Helper

他们说:

使用旧的参数样式时要小心,因为需要额外的文字散列:

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>

我建议您按照路线配置生成 使用 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

尝试新的论点惯例:

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

顺便说一句,我的问题解决了

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

这就是我如何解决它使用另一个视图引擎,HAML只是在情况下开发人员有这个需要

%i= link_to "Add New Blog Post", user_post_edit_new_url(current_user), :class  => "fa fa-plus-circle"

如果没有链接所需的控制器操作/路由,可以将 nil 作为占位符传递,并根据需要应用这些类

<%= link_to 'link verbiage', nil,  class: 'classes for action tag'%>