使用输入标记提交获取Rails命中控制器

时间:2013-10-26 16:16:10

标签: ruby ruby-on-rails-4

查看:

%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

的routes.rb

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

为什么这个按钮没有撞到控制器?

1 个答案:

答案 0 :(得分:2)

提交标签本身不会生成表单。我尝试了上面的代码,按钮没有做任何事情。除非我忘记INPUT没有ACTION属性。

如果你有一个指向该页面的链接,那么它无法正常工作的原因是因为默认情况下该链接将是一个GET请求,并且你已经将路由限制为POST。

因此,要么将其包装在表单中,要么使用button_to或:method =&gt; :发布解决方案,使其发布请求,它应该工作。

这样的事情:

= button_to 'click me', create_user_path
= link_to 'click me', create_user_path, method: 'post'