Ruby on rails 路由错误-没有与新路由的[POST]匹配的路由

Ruby on rails 路由错误-没有与新路由的[POST]匹配的路由,ruby-on-rails,model-view-controller,Ruby On Rails,Model View Controller,我在路由上遇到了一个错误,我找不到问题出在哪里,我正在创建一个简单的CRUD,并且在create方法中遇到了这个问题 错误 没有与[POST]匹配的路由“/usuarios/new” 控制器 new.html.erb 添加新用户 您似乎忘记了配置Rails路由器 尝试将其添加到您的config/routes.rb文件: resources :usuarios 有关参考信息,请阅读rails指南。更改 <%= form_for (:usuario) do |f| %&

我在路由上遇到了一个错误,我找不到问题出在哪里,我正在创建一个简单的CRUD,并且在create方法中遇到了这个问题

错误 没有与[POST]匹配的路由“/usuarios/new”

控制器 new.html.erb
添加新用户





您似乎忘记了配置Rails路由器

尝试将其添加到您的
config/routes.rb
文件:

resources :usuarios
有关参考信息,请阅读rails指南。

更改

<%= form_for (:usuario) do |f| %>


正如Flexoid所指出的,您可能还没有在控制器中添加新的
方法

那么,把这个

def new
  @usuario = Usuario.new
end
编辑

你必须多加注意

看一看:

def new
  @usuario = Usuario.new # not Usuarios.new, that's wrong.
end  

def create
    @usuario = Usuario.new(params[:usuario]) # not usuarios, first letter should be capital

    if @usuario.save
        redirect_to usuarios_path, :notice => "Cadastrado realizado com sucesso!" # usuario_path requires an id parameter like `usuario_path(@usuario)` or you could redirect to the `index` with `usuarios_path` 
    else
        render "new"
    end
end

您在控制器中是否有
new
方法?是的,我有-
def new@usuario=Usuarios.new end
然后我在new.html.erb页面“未定义的方法`Usuarios\u index\u path'for#”中得到以下错误,您在表单提交后得到错误吗?尝试替换create方法中的
redirect\u to usuario\u path
to
redirect\u to@usuario
。我在新表单中得到错误。保持相同的错误更改
redirect\u to usuario\u路径以在创建方法中将\u重定向到@usuario
您的模型名称是什么:usuario还是Usuarios?如果是Usuario,请确保您没有按照Rails约定使用复数形式(@Usuario=Usuario.new,not Usuarios.new,not Usuarios.new),它应该是Usuario!只是一些澄清,主要是因为可能不理解语言。在
new
方法中,它可能应该是:
@usuario=usuario.new
。在
create
方法中,它应该是
Usuario.new(params[:Usuario])
。就像另一个提到的,在<代码>重定向到你需要包括<代码> @ UARIO 。并且你应该考虑用英语开始编码,而不是葡萄牙语,特别是如果你需要社区的任何支持。只是一个提示。Usuarios是我模特的名字而不是Usuario,第一个字母是我的错误,我已经编辑了这个问题。已将型号名称更改为Usuario,但不带“s”,但仍然相同。如果将型号名称更改为
Usuario
,则还需要在控制器上进行更改。此外,请确保已正确命名控制器,
PostsController
而不是
PostController
。这次我在一个新项目中用英语再次编写了代码,但我没有收到错误,但知道我在重定向到时出错,我收到以下错误,url转到localhost:3000/用户而不是localhost:3000/用户
def create@user=user.new(params[:user])如果@user.save重定向到用户索引路径,则:notice=>“Cadastrado realizado com successo!”否则呈现“new”结束
<%= form_for (@usuario) do |f| %>
def new
  @usuario = Usuario.new
end
def new
  @usuario = Usuario.new # not Usuarios.new, that's wrong.
end  

def create
    @usuario = Usuario.new(params[:usuario]) # not usuarios, first letter should be capital

    if @usuario.save
        redirect_to usuarios_path, :notice => "Cadastrado realizado com sucesso!" # usuario_path requires an id parameter like `usuario_path(@usuario)` or you could redirect to the `index` with `usuarios_path` 
    else
        render "new"
    end
end