我有一个表单可以在我的rails应用中创建一个新的类别(new.html.erb),它在另一个视图(panel.html.erb)中有GET链接。
当我直接在浏览器地址栏中输入网址以创建新类别时,POST工作正常,但每当我尝试通过链接从panel.html.erb访问新的类别表单(new.html.erb)时,表单已呈现但数据未提交 我已将路线定义为
get '/catagories/new'
用于新的类别表单和
post 'catagories/create'
用于创建新类别。我是Rails的新手,并且真的不明白我的代码有什么问题
答案 0 :(得分:3)
默认情况下,rails表单提交到/categories
而不是categories/create
(Restfull路由)。您应该将您的路线定义为资源:
resources :categories
如果要覆盖默认值(不建议初学者使用),可以在form_tag中执行此操作:
<%= form_for @category, url: '/categories/create' %>
但请注意,这将使以后更改此网址变得更加困难(因为现在有两个地方需要更改,路线和表单)。然后,您应该使用命名路由:
post 'catagories/create', as: :create_category
然后:
<%= form_for @category, url: create_category_path %>