Já concluí o curso e estou tentando fazer um projeto para praticar. Tenho seguinte erro ao tentar editar um usuário: ArgumentError in Users#edit Showing C:/Sites/wecar/app/views/users/form.html.erb where line #1 raised: First argument in form cannot contain nil or be empty as outras funções estão funcionando.segue abaixo algumas classes: classe usercontroller.rb
class UsersController < ApplicationController
#show
#new
#create
private
def user_params
params.require(:user).permit(:email, :nome_completo, :endereco, :rg, :cpf, :cnh, :password, :password_confirmation)
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to @user, notice: 'Cadastro atualizado com sucesso!'
else
render action: :edit
end
end
end
classe views/users/edit.html.erb
<h1>Editar perfil</h1>
<%= render 'form' %>
<%= link_to "Voltar", @user %>
partial _form.html.erb
<%= form_for @user do |f| %>
<p>
<%= f.label :nome_completo %><br />
<%= f.text_field :nome_completo %>
</p>
<p>
<%= f.label :endereco %><br />
<%= f.text_field :endereco %>
</p>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :cpf %><br />
<%= f.text_field :cpf %>
</p>
<p>
<%= f.label :rg %><br />
<%= f.text_field :rg %>
</p>
<p>
<%= f.label :cnh %><br />
<%= f.text_field :cnh %>
</p>
<p>
<%= f.label :telefone %><br />
<%= f.text_field :telefone %>
</p>
<p>
<%= f.label :password %><br />
<%= f.password_field :password %>
</p>
<p>
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
classe routes.rb
Rails.application.routes.draw do
resources :carros
resources :users
root 'home#index'
end
classe user.rb
class User < ApplicationRecord
validates_presence_of :email, :nome_completo, :endereco, :cpf, :rg, :password
validates_confirmation_of :password
validates :email, presence: true,
format: { with: /\A[^@]+@([^@\.]+\.)+[^@\.]+\z/ },
uniqueness: true
end