のRails 3.1.0 存在しないルートに言及しているようで、私はインスタンス化する必要があります/ I前 親リソースをスタブネストされたリソースをスタブしますか?ネストされたリソースビューの仕様は、ネストされたリソースのビュー仕様ではRSpecの2</p> <p>
私は自分のアプリケーションで導入した新しい ネストされたリソースで、すべての表示仕様が失敗しているので、これを求めています。 。
----------- extract start -------------------------
1) sub_categories/edit.html.erb renders the edit sub category form
Failure/Error: render
ActionView::Template::Error:
undefined method `sub_category_path' for #<#<Class: 0x0000010127d2b8>:0x000001016e2380>
# ./app/views/sub_categories/_form.html.erb:1:in `_app_views_sub_categories__form_html_erb__4092631658606598204_2155519360'
# ./app/views/sub_categories/edit.html.erb:3:in `_app_views_sub_categories_edit_html_erb___3853358586184509671_2155544160'
# ./spec/views/sub_categories/edit.html.erb_spec.rb:15:in `block (2 levels) in <top (required)>'
----------- extract end -------------------------
はここに何を私だ:予想通り:( がここに私の編集ビューの仕様がどのように見えるかだ
----- "./spec/views/sub_categories/edit.html.erb_spec.rb" - start --------
require 'spec_helper' describe "sub_categories/edit.html.erb" do before(:each) do
@sub_category = assign(:sub_category, stub_model(SubCategory,
:name => 'International interest rates',
:description => 'Comprehensive rates covering Australia, NZ, Malaysia and Singapore',
:category_id => 3,
:created_by => 1,
:updated_by => 1
)) end it "renders the edit sub category form" do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select "form", :action => category_sub_categories(@sub_category), :method => "post" do
assert_select "input#sub_category_name", :name => "sub_category[name]"
assert_select "textarea#sub_category_description", :name => "sub_category[description]"
end end end
--- "./spec/views/sub_categories/edit.html.erb_spec.rb" - end --------
ここでは、障害のエキスですけれども、私はそれを手動でテストしたときに、ネストされた リソースが の作品
----- app/views/sub_categories/_form.html.erb start ---------------------
<%= form_for [@category, @sub_category] do |f| %> <% if @sub_category.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@sub_category.errors.count, "error") %> prohibited this sub_category from being saved:</h2>
<ul>
<% @sub_category.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div> <% end %> <div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %> </div> <div class="field">
<%= f.label :description %><br />
<%= f.text_area :description %> </div> <div class="actions">
<%= f.submit %> </div> <% end %>
----- app/views/sub_categories/_form.html.erb end ---------------------
のような部分的なルックスを形成することはここで私は、「すくいルート」を実行したときに、私が見たものです。
------- routes start --------------------------- category_sub_categories GET /categories/:category_id/ sub_categories(.:format) {:action=>"index", :controller=>"sub_categories"}
POST /categories/:category_id/ sub_categories(.:format) {:action=>"create", :controller=>"sub_categories"} new_category_sub_category GET /categories/:category_id/ sub_categories/new(.:format) {:action=>"new", :controller=>"sub_categories"} edit_category_sub_category GET /categories/:category_id/ sub_categories/:id/edit(.:format) {:action=>"edit", :controller=>"sub_categories"}
category_sub_category GET /categories/:category_id/ sub_categories/:id(.:format) {:action=>"show", :controller=>"sub_categories"}
PUT /categories/:category_id/ sub_categories/:id(.:format) {:action=>"update", :controller=>"sub_categories"}
DELETE /categories/:category_id/ sub_categories/:id(.:format) {:action=>"destroy", :controller=>"sub_categories"}
categories GET /categories(.:format) {:action=>"index", :controller=>"categories"}
POST /categories(.:format) {:action=>"create", :controller=>"categories"}
new_category GET /categories/ new(.:format) {:action=>"new", :controller=>"categories"}
edit_category GET /categories/:id/ edit(.:format) {:action=>"edit", :controller=>"categories"}
category GET /categories/:id(.:format) {:action=>"show", :controller=>"categories"}
PUT /categories/:id(.:format) {:action=>"update", :controller=>"categories"}
DELETE/categories/:id(.:format) {:action=>"destroy", :controller=>"categories"}
root /
------- routes end ---------------------------
フォームパーシャルは親リソース とネストされたリソース(すなわち、 "form_for [@category, @sub_category]
")。 それは私が を指定していない経路、sub_category_pathを呼び出しているようです。
フォームパーシャルが呼び出された編集/作成フォームを作成すると、エラーが発生します。
私はこれが起こっていると「RSpecの持つネストされたリソースのためのGoogleを経由して、私が持っていた 検索結果、 イェフダカッツは 'アクション3で、Railsの、およびRSpecのブック:(
に相談した理由には本当に困惑しています誰もが私が行方不明です何を知っている場合、私は自分の考えを聞くのが大好きだ。
ありがとう、ジビエル。あなたが正しい!私はスタブされた@categoryオブジェクトでcategory_sub_categories()パスに与えられるオブジェクトを変更し、そのエラーは消えます。 – Gordon
残念ながら、別のエラーが浮上しています。 失敗/エラー:_app_views_sub_categories_edit_html_erb___1129420093949643160_2199243480 './app/views/sub_categories/edit.html.erb:6:in #: Noルート一致{:コントローラは=> "sub_categories"} ActionView ::テンプレート::エラーをレンダリング'内のブロック(2つのレベル) './spec/views/sub_categories/edit.html.erb_spec.rb:21:in #<トップ(必須)>' 私は私のコントローラは "SubCategoriesController" として定義されている知っている app/controllers/sub_categories_controller.rbにあります。私はこれを調べなければならない。おそらくルートファイル。後で報告します:) ありがとうございました:) – Gordon
を '。/ spec/views/sub_categories/edit.html.erb_spec.rb'に入れてください。短い答えは** yes **です。この場合、親リソースをスタブする必要があります。 – jibiel