我做了以下介绍: http://guides.rubyonrails.org/getting_started.html
之后,我想创建一个新字段(如标题)并收到错误通知:
这是我的代码:
的routes.rb
Rails.application.routes.draw do
get 'welcome/index'
resources :articles do
resources :comments
resources :description
root 'welcome#index'
# For details on the DSL available within this file, see guides.rubyonrails.org/routing.html
end
end
我知道这个问题已被提出很多,但他们的解决方案对我没有帮助。
我该怎么办?
此致
答案 0 :(得分:0)
默认情况下,rails新资源路由的动词为GET
,而不是POST
。除非你另有说明。
答案 1 :(得分:0)
好像您正在使用
形式的new_article_path
或articles/new
<%= form_for :article, url: new_articles_path do |f| %>
将其更改为
<%= form_for :article, url: articles_path do |f| %>
答案 2 :(得分:0)
问题出在您的new.html.erb
表单中,您缺少url: articles_path
,如果您未指定,则表单将发送到同一操作(即new
)。因此,由于提交表单使用POST
(默认情况下)方法,因此您将获得:
没有路线匹配[POST]“/ articles / new”
您需要更改form_for
并指定url
,如下所示:
<%= form_for :article, url: articles_path do |f| %>
来自您提供的same link:
但这种形式存在一个问题。如果您检查HTML 通过查看页面来源生成的,您将看到 表单的action属性指向/ articles / new 1 。 这是一个问题,因为这条路线会转到您所在的页面 此时此刻,该路线应仅用于展示 新文章的形式。
1 我的重点。