2013-07-24 3 views
0

다형 중첩 리소스에 대한 기본 테스트를 수정하고 많은 문제가 발생합니다. 나는이 초보자가 그의 머리를 아직 감쌌다는 간단한 해결책이있을 것이라고 내기하고있다. 어떤 도움이라도 언제나처럼 높이 평가 될 것입니다.다형 중첩 리소스에 대한 테스트

내 모델 :

class Member < ActiveRecord::Base 
    has_many :names, as: :person 
    has_many :dependents 

attr_accessible :active, :deleted 
end 

class Name < ActiveRecord::Base 
    belongs_to :person, polymorphic: true 

    attr_accessible :dob, :dod, :first, :gender, :last, :mi, :prefix, :relation, :suffix 
end 

routes.rb :

resources :dependents do 
    resources :names 
    end 

    resources :members do 
    resources :names 
    end 

예 테스트 :

require 'test_helper' 

class NamesControllerTest < ActionController::TestCase 
setup do 
    @name = names(:one) 
    @person = members(:one) 
end 

test "should get edit" do 
    get :edit, id: @name 
    assert_response :success 
end 
end 

오류 내가받은 해요 :

3) Error: test_should_get_edit(NamesControllerTest): ActionController::RoutingError: No route matches {:id=>"980190962", :person_id=>"980190962", :controller=>"names", :action=>"edit"} /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:544:in raise_routing_error' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:540:in rescue in generate' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:532:in generate' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:573:in generate' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:569:in generate_extras' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_dispatch/routing/route_set.rb:565:in extra_keys' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_controller/test_case.rb:153:in assign_parameters' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_controller/test_case.rb:465:in process' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_controller/test_case.rb:49:in process' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.13/lib/action_controller/test_case.rb:392:in get' /Users/mkenney/hraccess/test/functional/names_controller_test.rb:43:in `block in '

이름에 중첩되지 않은 경로를 다시 추가하면 이러한 오류가 실행됩니다. 테스트에서 이것이 중첩 된 리소스이며 다형성 관계와 관련이 있는지, 아니면 저를 던지고있는 노이즈인지 어떻게 알 수 있습니까?

어떤 도움을 주셔서 감사합니다.이 초보자에게 제공 할 수 있습니다!

test "should get edit" do 
    get :edit, member_id: @person, id: @name 
    assert_response :success 
end 
:

마크

답변

0

나는 내가 믿는 적절한 경로를 얻을 수있는 MEMBER_ID를 추가 할 필요
관련 문제