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のいくつかのバグのようです。あなたはどんな解決策もありますか?
どのようにあなたの 'configが/のように見えるroutes.rb'のでしょうか?あなたの例で 'some_object'と呼ばれるものの実際のクラス名は何ですか?そのクラスはどのように見えますか? – spickermann
class SomeObject
Mark
データベーステーブルに 'type'という名前の列がありますか? – spickermann