查看:
%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
为什么这个按钮没有撞到控制器?
答案 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'