Rails link_to无法在按钮元素中工作

Dus*_*mes 2 ruby controller routes ruby-on-rails link-to

我有以下HTML和.erb代码:

<button type="button" class="btn btn-default btn-lg"><%= link_to "Customer Information", customer_information_path %></button>
Run Code Online (Sandbox Code Playgroud)

链接呈现正常,但单击时不执行任何操作.

这是我的路线文件:

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

  get "hub" => "pages#hub"
  get "customer_information" => "pages#customer_information"
Run Code Online (Sandbox Code Playgroud)

这是我的页面控制器:

class PagesController < ApplicationController

 def hub
 end

 def customer_information
 end

end
Run Code Online (Sandbox Code Playgroud)

代码不会抛出任何错误.

思考?

mu *_*ort 7

link_to助手产生的<a>元素,你不能把一个<a>内部的<button>,这将违反该内容模型<button>:

内容模型:
短语内容,但必须没有互动内容后代.

互动内容包括<a>.如果您向浏览器提供a <button><a></a></button>,那么它可能会重写HTML有效,或者可能不会让点击进入<a>.

考虑使用button_to生成<button>代替<button>和/ link_to或尝试<button>在JavaScript中添加单击处理程序.使用button_to可能会使CSS复杂化,因为button_to会添加大量额外标记(例如<form>s和<div>s).另一种选择可能是仅使用<a>工具栏中的元素,但将它们设置为看起来像按钮,然后您可以只使用link_to整个工具栏.