Ruby on rails 路由错误-没有与新路由的[POST]匹配的路由
我在路由上遇到了一个错误,我找不到问题出在哪里,我正在创建一个简单的CRUD,并且在create方法中遇到了这个问题 错误 没有与[POST]匹配的路由“/usuarios/new” 控制器 new.html.erbRuby 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| %&
添加新用户
您似乎忘记了配置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
toredirect\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