10 ruby-on-rails ruby-on-rails-4
当我尝试提交表单时,它给我错误
No route matches [POST] "/articles/new"
Run Code Online (Sandbox Code Playgroud)
文件是:new.html.erb
这个文件包含带有文本字段和文本区域的表单:
<%= form_for :article, url: articles_path do |f| %>
Run Code Online (Sandbox Code Playgroud)
这里的url:匹配作为创建的帖子请求
表格的标题
<%= f.label :title %><br>
Run Code Online (Sandbox Code Playgroud)
表单的文本字段
<%= f.text_field :title %></p>
Run Code Online (Sandbox Code Playgroud)
表格的标题
<%= f.label :text %><br>
Run Code Online (Sandbox Code Playgroud)
表格的文字区域
<%= f.text_area :text %></p>
<p>
<%= f.submit %>
</p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
路线文件是
Rails.application.routes.draw do
resources :article
end
Run Code Online (Sandbox Code Playgroud)
controller是控制器,其方法是新的和创建的
每当我提交表单给出错误时,即使我使用了URL:articles_path,对于默认的帖子请求,我也在表单中使用了@articles,但它给了我同样的错误.我是Rails的新手,所以我尝试了很多方法,但我找不到解决方案
class ArticlesController < ApplicationController
def new #new method which is a get request
end
def create #create method which is a post request
end
end
Run Code Online (Sandbox Code Playgroud)
每当我提交表单给出错误,即使我使用url:articles_path,默认发布请求.我保持着
def create
end
Run Code Online (Sandbox Code Playgroud)
在控制器中
小智 16
对于使用本教程的许多人来说,这种情况发生的原因是他们在更改form_for帮助器中的url选项后不会重新加载表单.
在尝试提交表单之前,请务必重新加载表单的新副本(您需要表单以获取最新的表单提交URL).
更改:
resources :article
Run Code Online (Sandbox Code Playgroud)
至:
resources :articles #plural
Run Code Online (Sandbox Code Playgroud)
这样它将映射到:
articles_path POST /articles(.:format) articles#create
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11000 次 |
| 最近记录: |