ruby-on-rails - 具有 Bootstrap 按钮类的 rails link_to 和 button_to 行为不同

标签 ruby-on-rails twitter-bootstrap 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 sets to nil,导致验证错误article_id is not set。
我该怎么办?使用 css 修复 link_to(如何?)或修复 button_to 问题(如何?)。任何帮助表示赞赏。

最佳答案

如果您的 css 代码包含:

a:visited {
  color: #666666;
}

这可能会导致 link_to 之间的渲染不同和 button_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单击按钮后在 Rails 中。

解决方案是:

  1. 使用 link_to具有类属性:style: "color:white"就像@Rahul 说的那样。

  2. 删除 css 代码:a:visited

关于ruby-on-rails - 具有 Bootstrap 按钮类的 rails link_to 和 button_to 行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640354/

相关文章:

ruby-on-rails - 使用回形针将文件直接上传到S3

javascript - 在 Rails 的 Gmaps 中默认打开 infoWindow

ruby-on-rails - 当我需要不同版本时,如何解决需要最新版本 gem 的 bundler 问题?

javascript - Bootstrap 网格系统容器/嵌套

ruby-on-rails - 带有 accepts_the_nested_attributes 的 belongs_to 不在对象中保存外键

c# - 如何根据条件设置链接按钮的状态?

css - UI Bootstrap tabset 显示选项卡的内容

ruby-on-rails - rails : Use URL Helper in Observer

ruby-on-rails - rails 3 中的部分形式需要不同的链接,具体取决于新建或编辑

ruby-on-rails - Rails 链接到公共(public)文件夹中的文件