我正在尝试创建一个按钮,在单击时从我的控制器执行某些操作,但是我遇到了一些路由错误。
视图中的按钮看起来像......
<%= button_to "Thumbs Up", {:controller => 'user', :action => "yes", :id => event.id} %>
视图是我的用户控制器的索引页面。在用户控制器中,我有一个名为“是”的操作,它根据选择哪个事件(索引页面上显示的模型)项对记录进行更改。所以控制器中的控制器动作看起来像....
def yes
@user = User.find(current_user)
@event = Event.find(params[:id])
........ Blah Blah Blah .....
redirect_to home_path
end
主路径只是路由到用户#index视图
所以对于我的路线是......
match '/yes' => 'user#yes'.
但我收到错误“No route matches {:controller =&gt;”user / user“,:action =&gt;”yes“,:id =&gt; 1}”
那么如何创建一个按钮和路径,转到我控制器中的特定动作并传递id作为参数,以便动作可以发挥其魔力并重定向到同一页面?
答案 0 :(得分:1)
match '/yes(/:id)' => 'user#yes'
括号使params可选,请参阅http://edgeguides.rubyonrails.org/routing.html