为表单设置地址的正确方式是什么



我有控制器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

最新更新