2014-04-22 23 views
8

Uygulamamı Rails 3.2.x'ten Rails 4.0.4'e aktarmaya çalışıyorum. Tüm taşlar uyumlu hale getirildi ve başarısız testlerin yapılma aşamasındayım.Raylar 4 Yükseltme - ActionController :: UrlGenerationError - Rota eşleşmiyor

Bu tuhaf test başarısızlığım var.

Benim routes.rb

resources :my_reports, only: [:index] do 
    collection do 
    get "/report/:filename", to: :show, prefix: "pri/excl/rep", as: :show 
    end 
end 
Raylar 3.2.x geçen ve şimdi aşağıdaki hatayı

alıyorum 4.0.4

describe MyReportsController do 
    describe "#show" do 
    def make_request 
     get :show, prefix: 'some/place', filename: 'foo', format: 'doc' 
    end 

    it "makes a simple request" do 
     make_request 
    end 
    end 
end 

için güncellemeden sonra başarısız olmuştur

My Spec

Failure/Error: get :show, prefix: 'some/place', filename: 'foo', format: 'doc' 
    ActionController::UrlGenerationError: 
     No route matches {:action=>"show", :controller=>"my_reports", 
     :filename=>"foo", :format=>"doc", :prefix=>"some/place"} 

Bu noktada takılıyorum, ipuçları bekliyoruz. Rspec ve rspec-ray sürümleri 2.14.1 kullanıyorum.

cevap

13

Bir kukla geçirme: testte id iddiayı istemediğim halde benim için sorunu çözdüyse, testler geçer.

get :show, id: "", prefix: 'some/place', filename: 'foo', format: 'doc' 

here.

0

show yöntemini anlatıyorsunuz, ancak rotanız yalnızca index one için geçerlidir. Belki de çözümün başlangıcıdır.

+0

Hayır, daha önce kontrol ettim. Kaynağında bile kaynak gösterildi, ancak ideal olarak '' olarak kullandığını düşündüğümden hiç bir etkide bulunmamalı: '' – bragboy

+0

İç içe geçmiş bir yöntem olmaksızın doğrudan 'get: show, prefix: ... 'denediniz mi? – BriceB