我的路线
namespace :magazine do resources :pages do resources :articles do resources :comments end end end
在撰写控制器规范时,请注意:
describe "GET 'index'" do before(:each) do @user = FactoryGirl.create(:user) @page = FactoryGirl.build(:page) @page.creator = @user @page.save @article = FactoryGirl.create(:article) @comment_attributes = FactoryGirl.attributes_for(:comment,:article_id => @article ) end it "populates an array of materials" do get :index,?? #response.should be_success assigns(:comments) end it "renders the :index view" do get :index,?? response.should render_template("index") end end
任何想法如何给页面和文章参考获取:index?
如果我给:get:index,:article_id => @ article.id
我得到的错误如下:
Failure/Error: get :index,:article_id => @article.id ActionController::RoutingError: No route matches {:article_id =>"3",:controller=>"magazine/comments"}
解决方法
您的路线至少需要两个ID:评论的父文章和文章的父页面.
namespace :magazine do resources :pages do resources :articles do resources :comments end end end # => /magazine/pages/:page_id/articles/:article_id/comments
必须为此路由提供所有父ID:
it "renders the :index view" do get :index,{:page_id => @page.id,:article_id => @article.id} response.should render_template("index") end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。