ruby-on-rails - Rails link_to 在按钮元素中不起作用

标签 ruby-on-rails ruby controller routes link-to

我有以下 HTML 和 .erb 代码:

<button type="button" class="btn btn-default btn-lg"><%= link_to "Customer Information", customer_information_path %></button>

该链接呈现良好,但在单击时什么也不做。

这是我的路线文件:

  devise_scope :user do
   root :to => "devise/sessions#new"
  end

  get "hub" => "pages#hub"
  get "customer_information" => "pages#customer_information"

这是我的页面 Controller :

class PagesController < ApplicationController

 def hub
 end

 def customer_information
 end

end

代码不会抛出任何错误。

想法?

最佳答案

link_to助手生成一个 <a>元素,你不能放 <a><button> 里面, 那会违反 the content model for <button> :

Content model:
Phrasing content, but there must be no interactive content descendant.

interactive content包括 <a> .如果你给浏览器输入一个 <button><a></a></button> ,那么它可能会重写 HTML 使其有效,或者它可能不会让点击到达 <a> .

考虑使用 button_to 生产 <button>而不是 <button>link_to或尝试向 <button> 添加点击处理程序在 JavaScript 中。使用 button_to尽管 button_to 可能会使您的 CSS 复杂化将添加很多额外的标记(例如 <form><div> s)。另一种选择可能是仅使用 <a>工具栏中的元素,但将它们设置为看起来像按钮,那么你可以只使用 link_to对于整个工具栏。

关于ruby-on-rails - Rails link_to 在按钮元素中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24847018/

相关文章:

ruby-on-rails - Rails 嵌套属性未更新

ruby-on-rails - 门卫撤销 token

ruby-on-rails - rails 中的 action_name 方法有多可靠?

ruby-on-rails - 有没有一种方法可以跨 Controller 使用,如果可以,我该如何使用它?

javascript - Rails 中发生无限滚动后 Raty.js 不会加载

javascript - 从简单表单自定义单选按钮

javascript - 如何将 JavaScript 转换为 Ruby?

ruby-on-rails - 运行 Rspec 时出现 "No such file to load"错误

ruby-on-rails - Ruby 循环和感知复杂度

java - 在 Controller 类中全局声明 HttpSession?