Dies ist meine create-Methode in users_controller.rbRails Action Parameter Fehler
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to users_url, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
private
def set_user
@user = User.find(params[:id])
end
def user_params
params.require(:user).permit(:name, :password, :password_confirmation)
end
Ende
Und das ist meine Users_controllers_spec.rb Datei
require 'rails_helper'
RSpec.describe UsersController, type: :controller do
describe "Post /create" do
let(:user){build(:user)}
it "should create user" do
expect(User).to receive(:new).with({name: 'Naik', password: 'secret', password_confirmation: 'secret'}).and_return(User)
post :create, user: {name: 'Naik', password: 'secret', password_confirmation: 'secret'}
expect(flash[:success]).to eq("User was successfully created.")
expect(response).to redirect_to(users_path)
end
end
end
Und das ist der Fehler, den ich bin bekommen. Fehle ich etwas? Ich bin neu in der Rspec-Prüfung, daher wäre jeder Rat zur Lösung zu schätzen.
Danke.
nicht sicher, aber versuchen Sie dies: ist, wie diese behoben werden können 'erwarten (User) .zu empfangen (: neu) .with ({name: 'Naik', passwort: 'secret', password_confirmation: 'secret'}. With_indifferent_access) ' – Deep
sollte man versuchen' params = ActionController :: Parameters.new ( {name: 'Naik', Passwort: 'geheim', password_confirmation: 'secret'}) user_params = BenutzerController :: UserParams.build (params) expect (user_params) .to eq ({Name: 'Naik', Passwort : 'secret', password_confirmation: 'secret'}. with_indifferent_access) ' –
Ich habe versucht, dass es nicht funktioniert hat. –