我有控制器my_controller
,其中有动作my_action
。在my_action
视图中,我创建了一个表单并手动设置为:<%=form_tag('/photos/create') do%>
。当我将此表单发送到photos
控制器中的此操作时,我会得到错误
No route matches [POST] "/photos/create"
(显然,动作create
存在于photos
控制器中)我的问题是,当存在此操作时,为什么会出现此错误,以及如何修复它(手动在中设置地址的正确方法是什么)?
因为您的路线不正确。照片的create
动作应该是/photos
路线,而不是POST
。您可以通过在命令行运行rake routes
来验证这一点,以获得所有路由的列表以及它们如何映射到控制器操作。
试试这个:
<%=form_tag(photos_path, :method => :post) do%>
有关详细信息:http://guides.rubyonrails.org/routing.html