带有引导按钮类的 Rails link_to 和 button_to 的行为不同



我在显示文章视图页面上关注了link_to,

<%= link_to "Add Pictures",
      new_picture_path(article_id: @article.id),
      class: "btn btn-small btn-success" %>

通过在"btn"类的帮助下将"链接"显示为按钮来完美地工作。唯一的问题是按钮上的文本在单击后变为灰色(如访问的链接)。如何将其保留为原始文本颜色(在本例中为白色)?或者我需要什么样的 css 魔法来保持原始文本颜色。

或者简单地说,我可以通过将其更改为button_to来修复它,如下所示,

<%= button_to "Add Pictures",
      new_picture_path(article_id: @article.id),
      method: :get, class: "btn btn-small btn-success" %>

但问题是,我的article_id是将 get 设置为 nil,这不会解决未设置article_id的验证错误。
我该怎么办?用css修复link_to(如何?)或修复button_to问题(如何?)。任何帮助,不胜感激。

如果您的 css 代码包含:

a:visited {
  color: #666666;
}

这可能会导致 link_tobutton_to 之间的呈现不同,因为link_to将被解析为 <a href=""></a>button_to 将被解析为 <form>..</form>

注意:如果您使用

<%= button_to 'Users', users_path(app_id: application.id), method: :get, class: 'btn btn-info btn-xs' %>

Rails 将编译为:

<form class="button_to" method="get" action="/users?app_id=1">
   <input class="btn btn-info btn-xs" type="submit" value="Users">
</form>

但是,单击按钮后,app_id=1不会传递给导轨中的params

解决方案是:

  1. link_to与类属性一起使用:就像@Rahul所说的那样style: "color:white"

  2. 删除 css 代码:a:visited

相关内容

  • 没有找到相关文章

最新更新