मैं InherritedResourceकैसे का उपयोग कर नेस्टेड मार्गों के साथ नियंत्रकों का परीक्षण rspec
class AppsController < InheritedResources::Base
belongs_to :company
# Devise
before_filter :login_or_oauth_required
# CanCan
load_and_authorize_resource
end
साथ नियंत्रक बना सकते हैं और इस विधि द्वारा Rspec के साथ यह परीक्षण करने के लिए प्रयास करने के लिए
require "spec_helper"
include Devise::TestHelpers
describe AppsController do
before(:each) do
@company_1 = Factory.build(:company)
application_1 = Factory.create(:application, :company => @company_1)
application_2 = Factory.create(:application, :company => @company_1)
application_3 = Factory.create(:application, :company => @company_1)
@company_2 = Factory.build(:company)
@user_1 = Factory.create(:user)
role_1 = Factory.create(:publisher_role, :company => @company_1)
profile_1 = Factory.create(:profile, :company => @company_1, :user => @user_1, :roles => [role_1])
end
describe "index action" do
it "user_1 should have 3 applications from company_1" do
sign_in @user_1
params = {"company_id"=>"1"}
get :index
assigns[:apps].should have(3).items
end
end
end
परिणाम
Failure/Error: get :index
ActionController::RoutingError:
No route matches {:controller=>"apps"}
है
मेरे नेस्टेड मार्ग में "प्राप्त करें" के लिए रुपेक को कैसे बताना है
मेरे मार्गों
resources :companies do
resources :apps do
resources :shelves do
resources :publications
end
end
end
मैं इस प्रश्न How to test controllers with nested routes using Rspec? पालन करने की कोशिश, लेकिन यह मेरे मामले
मैं का उपयोग रेल 3.1.1 और rspac 2.7
fwiw करने, रेल गाइड एक स्तर से परे नेस्टिंग संसाधनों को हतोत्साहित "संसाधन कभी नहीं नेस्ट किया जाना चाहिए 1 से अधिक स्तर गहरी," (http://guides.rubyonrails.org/routing.html#nested-resources) पाठकों को इस [monstrosity] (http://weblog.jamisbuck.org/2007/2/5/nesting-resources) को संदर्भित करता है। लेकिन क्या आपको देखना होगा। – brntsllvn