2

ルートでエラーが発生し、問題がどこにあるのかわかりません。単純なCRUDを作成しているのですが、createメソッドでこの問題が発生します。

エラー

[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

new.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 %>
4

3 に答える 3

2

Flexoid が指摘したようnewに、コントローラーにメソッドを追加していない可能性があります。

だから、これを入れて

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
于 2012-06-02T16:01:26.153 に答える
1

変化する

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

<%= form_for (@usuario) do |f| %>
于 2012-06-02T15:54:56.860 に答える
0

Railsルーターの設定を忘れたようです。

config/routes.rbこれをファイルに追加してみてください。

resources :usuarios

参考までに、RailsガイドRails Routing from theOutsideInを読むことができます。

于 2012-06-02T15:46:08.797 に答える