Rails - 在控制器中路由动作的正确方法
Posted
技术标签:
【中文标题】Rails - 在控制器中路由动作的正确方法【英文标题】:Rails - Proper way to route an action in a controller 【发布时间】:2011-06-05 09:20:06 【问题描述】:我正在尝试创建一个按钮,在单击时从我的控制器执行一些操作,但我遇到了一些路由错误。
视图中的按钮看起来像...
<%= button_to "Thumbs Up", :controller => 'user', :action => "yes", :id => event.id %>
视图是我的用户控制器的索引页面。在用户控制器中,我有一个名为“yes”的操作,它根据选择的事件(显示在索引页面上的模型)项目来更改记录。所以控制器中的控制器动作看起来像....
def yes
@user = User.find(current_user)
@event = Event.find(params[:id])
........ Blah Blah Blah .....
redirect_to home_path
end
home 路径只是路由到 user#index 视图
所以我的路线是......
match '/yes' => 'user#yes'.
但我收到错误“没有路由匹配 :controller=>"user/user", :action=>"yes", :id=>1"
那么我如何创建一个按钮和路由去我的控制器中的特定操作,并将 id 作为参数传递,以便操作可以发挥它的魔力并重定向到同一页面?
【问题讨论】:
嗯,我看到 ':controller=>"user/user"',你有命名空间或范围一些路由吗? 【参考方案1】: match '/yes(/:id)' => 'user#yes'
括号使参数可选,请参阅http://edgeguides.rubyonrails.org/routing.html
【讨论】:
以上是关于Rails - 在控制器中路由动作的正确方法的主要内容,如果未能解决你的问题,请参考以下文章