2010-10-28 20 views
7

Tôi có một nguồn tài nguyên lồng nhau, thiết lập như thế này:Rspec2 và Rails 3 - Xem Spec Routing Tài Nested

resources :chickens do 
     resources :eggs 
end 

Những quan điểm cho EggsController dưới views/trứng, nhưng:

describe "eggs/index.html.erb" do 

cung cấp lỗi "Không khớp tuyến đường {: action =>" tạo ",: controller =>" eggs "} khi gọi hiển thị. Làm cách nào để nhận RSpec tìm đường chính xác (lồng nhau) cho thông số kỹ thuật xem?

Là một lưu ý phụ, có bất kỳ cách để chỉ định một tài nguyên lồng nhau cho trình tạo giàn giáo điều khiển Rails 3?

+0

Nói về thời gian - bạn có tìm thấy câu trả lời cho câu hỏi thứ hai của mình về trình tạo không? – Brian

+0

Tôi đã không tìm thấy bất cứ điều gì trong thời gian, và tất cả tôi thực sự có thể tìm thấy là một dự án thực sự cũ: https://github.com/phorsfall/rspec_on_rails_nested_scaffold –

Trả lời

2

thử nghiệm này có vẻ ok với tôi ...

Bằng bất kỳ cơ hội nào bạn có một biểu mẫu trên trứng/index.html.erb để tạo trứng mới mà có thể chưa được dây lên một cách chính xác? Có vẻ như nó có thể đang cố gắng hiển thị chế độ xem chỉ mục nhưng không thành công vì chế độ xem đang cố gắng tạo một tuyến đường không tồn tại? Bạn muốn đảm bảo rằng biểu mẫu đang sử dụng đúng đường dẫn tài nguyên lồng nhau. Chế độ xem có hiển thị khi bạn tải lên trong trình duyệt không?

+0

Bạn đã đúng rằng vấn đề là trên các liên kết thêm mới trên xem (loại bỏ loại bỏ sự thất bại), nhưng đường dẫn (new_chicken_egg_path) hoạt động trong trình duyệt. Tôi, bằng cách này, làm một gán (: gà, @chicken) trong spec, không phải là con đường là _explicitly_ lấy nó như là một tham số. params [: chicken_id] = @chicken cũng đang được thiết lập. Tôi tình cờ sử dụng factory_girl cho những thứ này. –

+0

Ah. Tôi đang sử dụng form_for ([@ chicken, @egg]), vì vậy tôi sẽ kiểm tra kỹ xem đó có đang hoạt động không. –

+0

Tất cả đều tốt. Đã bắt đầu nhận được một tuyến đường không có mới, nhưng chỉ cần thêm @chicken làm thông số cho phương thức new_chicken_egg_path. Cảm ơn! –