2016-07-29 9 views
1

私は基本的な足場の生成後のRails 4.2 RSpecの3.5RSpecのActionController :: UrlGenerationErrorのRails 4.2

を使用していますが、私はRSpecの実行しようとしますが、常にこのエラーを得ていました。

Failure/Error: <%= form_for(@some_object) do |f| %> 

    ActionView::Template::Error: 
    undefined method `polymorphic_path' for #<#<Class:0x005606c04fff98>:0x005606c04ffb60> 

コントローラ試験

it "updates the requested" do 
    some_object = SomeObject.create! valid_attributes 
    put :update, params: {id: some_object.to_param, some_object: new_attributes}, session: valid_session 
    some_object.reload 
    skip("Add assertions for updated state") 
end 

この出力

Failure/Error: put :update, params: {id: some_object.to_param, some_object: valid_attributes}, session: valid_session 

ActionController::UrlGenerationError: 
    No route matches {:action=>"update" 

およびビュー試験

require 'rails_helper' 

    RSpec.describe "some_objects/edit", type: :view do 
    before(:each) do 
     @some_object = assign(:some_object, SomeObject.create!(
     :first_name => "MyString", 
     :last_name => "MyString" 
    )) 
    end 

    it "renders the edit some_object form" do 
     render 

     assert_select "form[action=?][method=?]", some_object_path(@some_object), "post" do 

     assert_select "input#some_object_first_name[name=?]", "some_object[first_name]" 

     assert_select "input#some_object_last_name[name=?]", "some_object[last_name]" 
     end 
    end 
    end 

この出力を与える与えます

これは生成されたコードです。私はvalid_attributesハッシュだけを変更しました。これはrails/rspecのいくつかのバグのようです。あなたはどんな解決策もありますか?

+0

どのようにあなたの 'configが/のように見えるroutes.rb'のでしょうか?あなたの例で 'some_object'と呼ばれるものの実際のクラス名は何ですか?そのクラスはどのように見えますか? – spickermann

+0

class SomeObject Mark

+0

データベーステーブルに 'type'という名前の列がありますか? – spickermann

答えて

0

問題は、更新のためにパラメータを渡すことです。単にのparams削除:をし、それが動作します:

it "updates the requested" do 
    some_object = SomeObject.create! valid_attributes 
    put :update, {id: some_object.to_param, some_object: new_attributes}, session: valid_session 
    some_object.reload 
    skip("Add assertions for updated state") 
end 
関連する問題