Ich versuche, dies ohne Erfolg zu lösen. Ich verwende RSpec mit Faricator und kann keine Tests bestehen. Das Problem tritt in create action auf. Update (mit ähnlicher Syntax) funktioniert gut. Von Website-Formular funktioniert alles richtig, so glaube ich, dass es ein Problem mit den Spezifikationen ist. spec Controller:Rspec 3 und Fabricator - Controller-Spezifikation, kann keinen neuen Datensatz erstellen
describe 'POST #create' do
before { set_current_admin admin }
context 'admin users' do
context 'a successful create' do
before do
post :create, director: Fabricate.attributes_for(:director)
end
it 'saves new director object' do
#require 'pry'; binding.pry
expect(Director.count).to eq(1)
end
it 'redirects to directors path' do
expect(response).to redirect_to directors_path
end
it 'sets a successful flash message' do
expect(flash[:success]).to eq('Reżyser został zapisany.')
end
end
end
end
set_current_admin Admin Methode meldet Benutzer als Admin. Ich habe überprüft, mit Pry, dass die Protokollierung korrekt ist und der angemeldete Benutzer ist ein Administrator. Director Controller:
class DirectorsController < ApplicationController
before_action :set_director, only: [:edit, :update, :destroy, :show]
before_action :admin_user, except: [:index, :show]
def create
@director = Director.new(directors_params)
if @director.save
flash[:success] = 'Reżyser został zapisany.'
redirect_to directors_path
else
flash[:danger] = 'Coś poszło nie tak, spróbuj ponownie.'
render :new
end
end
Wissen Sie, was Lösung für das sein könnte?
Wenn der POST ausgeführt wird, folgt der Pfad, der dem Befehl 'flash [: danger]' zugewiesen wurde? Wenn ja, wie lautet die Ausgabe von 'assigns (: director) .errors' im kommentierten binding.pry-Speicherort? –
bekam: => #, @messages = {: bio => [Kann nicht sein leer. "]}> Es scheint, dass Faker :: Hipster.paragraphen nicht funktioniert. Ich habe es zu Faker :: Lorem.paragraph geändert und es hat gut funktioniert! Danke Ben für Hilfe! –
wbucko