0

看法:

%input{type: 'submit', action: 'home#create_user'}

控制器:

class HomeController < ApplicationController
  def index
    render 'home/index'
  end

  def sign_up
    render 'home/sign_up'
  end

  def create_user
    render 'dashboard/dashboard'
  end
end

路线.rb

post 'home/create_user' => 'home#create_user', :as => :create_user

为什么这个按钮没有击中控制器?

4

1 回答 1

2

提交标签本身不会生成表单。我在上面尝试了您的代码,但按钮没有执行任何操作。除非我忘记了 INPUT 没有 ACTION 属性。

如果您有指向该页面的链接,则它不起作用的原因是默认情况下该链接将是一个 GET 请求,并且您已将路由限制为 POST。

因此,要么将其包装在一个表单中,要么使用 button_to 或 :method => :post 解决方案使其 POST 请求并且它应该可以工作。

像这样的东西:

= button_to 'click me', create_user_path
= link_to 'click me', create_user_path, method: 'post'
于 2013-10-26T16:49:11.060 回答