Lassen Sie sagen, ich habe ein Setup wie folgt aus:RSpec Controller für verschachtelte Ressourcen, before_action
config/routes.rb
resources :graves do
resources :candles
end
app/models/grave.rb
has_many :candles, dependent: :destroy
app/modelle/kerzen.rb
belongs_to :grave
app/cont
Rollen/candles_controller.rbbefore_action :get_grave
def create
@candle = @grave.candles.new(candle_params)
respond_to do |format|
if @candle.save
format.html {
redirect_to @grave, notice: 'Candle was successfully created.'
}
format.json { }
else
format.html { render :new }
format.json { render json: @candle.errors, status: :unprocessable_entity }
end
end
end
private
def candle_params
params.require(:candle).permit(:name, :body)
end
def get_grave
@grave = Grave.find(params[:grave_id])
end
spec/controllers/candles_controller_spec.rb
describe CandlesController, type: :controller do
describe "POST create" do
before(:each) do
@grave = FactoryGirl.create(:grave)
end
it "creates candle" do
post :create, candle: { name: "Dummy name", body: "Dummy body", grave_id: @grave.id}
expect(response).to redirect_to(@grave)
end
end
end
Problem ist, wenn ich diese spec laufen bekomme ich diesen Fehler:
1) CandlesController POST create creates candle Failure/Error: expect(response).to redirect_to(@grave) Expected response to be a < redirect >, but was <404>
ich eingecheckt haben factory und @grave
ist so erstellt, es ist nicht Null. Wenn ich manuell teste, wird candle
korrekt erstellt und mit grave
verknüpft. Irgendwelche Hinweise, die zum Versagen der Spec führen können?
Rails 4.2, RSpec 3.x