2014-04-22 15 views
8

Tôi đang cố gắng chuyển ứng dụng của mình từ Rails 3.2.x sang Rails 4.0.4. Tất cả các đá quý đã được thực hiện tương thích và tôi đang trong giai đoạn sửa chữa các thử nghiệm không thành công.Rails 4 Upgrade - ActionController :: UrlGenerationError - Không có tuyến đường phù hợp

Tôi có lỗi thử nghiệm lạ này.

My routes.rb

resources :my_reports, only: [:index] do 
    collection do 
    get "/report/:filename", to: :show, prefix: "pri/excl/rep", as: :show 
    end 
end 

đặc tả của tôi mà đã được thông qua trong Rails 3.2.x và bây giờ thất bại sau khi cập nhật 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 

Tôi nhận được lỗi sau

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"} 

Tôi bị kẹt vào thời điểm này, gợi ý được hoan nghênh. Tôi đang sử dụng phiên bản rspec và rspec-ray 2.14.1.

Trả lời

13

Vượt qua giả: id trong thử nghiệm đã khắc phục sự cố cho tôi mặc dù tôi không muốn, thử nghiệm vượt qua.

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

Tham khảo trạng thái phát hành thanh ray here.

0

Bạn đang mô tả phương pháp show nhưng tuyến đường của bạn chỉ khả dụng cho số index. Có lẽ đó là một khởi đầu của giải pháp.

+0

Không, tôi đã kiểm tra rồi. Thậm chí bao gồm hiển thị trong các tài nguyên, nhưng điều đó lý tưởng không có tác động như tôi đã sử dụng rõ ràng ': as' – bragboy

+0

Bạn đã thử trực tiếp 'get: show, prefix: ...' mà không có phương thức lồng nhau? – BriceB

Các vấn đề liên quan