【问题标题】:rails link_to and button_to with bootstrap button class behaves differently带有引导按钮类的 rails link_to 和 button_to 行为不同
【发布时间】:2014-12-24 17:25:17
【问题描述】:

我在显示文章查看页面上关注了 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 被设置为 nil,这导致 article_id 未设置的验证错误失败。
我该怎么办?使用 css 修复 link_to(如何?)或修复 button_to 问题(如何?)。任何帮助表示赞赏。

【问题讨论】:

  • 这样尝试一次 ..
  • @Rahul,失败并出现“未定义的局部变量或方法‘继承’”错误。
  • 但以下两个变体有效。 and
  • 是的..你可以使用它..我只是忘记了语法

标签: ruby-on-rails twitter-bootstrap link-to button-to


【解决方案1】:

如果您的 css 代码包含:

a:visited {
  color: #666666;
}

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

注意:如果你使用

<%= 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不会被传递给rails中的params

解决办法是:

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

  2. 删除css代码:a:visited

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多