我遇到了路由错误,并且找不到问题出在哪里,我正在创建一个简单的 CRUD 并通过 create 方法遇到此问题。
Error
没有路由匹配 [POST]“/usuarios/new”
控制器
def new
@usuario = Usuarios.new
end
def create
@usuario = Usuarios.new(params[:usuario])
if @usuario.save
redirect_to usuario_path, :notice => "Cadastrado realizado com sucesso!"
else
render "new"
end
end
新的html.erb
<h1>Add new user</h1>
<%= form_for (:usuario) do |f| %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :idade %><br />
<%= f.text_field :idade %>
</p>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.submit "send" %>
</p>
<% end %>
正如 Flexoid 所指出的,您可能还没有添加new
控制器中的方法。
所以,把这个
def new
@usuario = Usuario.new
end
EDIT
你必须更加注意。
看一看:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)