Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails路由:根据属性灵活的资源路径_Ruby On Rails_Ruby On Rails 4_Routes_Custom Routes - Fatal编程技术网

Ruby on rails Rails路由:根据属性灵活的资源路径

Ruby on rails Rails路由:根据属性灵活的资源路径,ruby-on-rails,ruby-on-rails-4,routes,custom-routes,Ruby On Rails,Ruby On Rails 4,Routes,Custom Routes,如何根据资源的属性使其路由足够灵活 比如说, resources :articles, param: :article_slug do member do resources :comments end end 文章具有标题、类别、slug等属性 但客户端希望该类别必须是url中的第一个,例如:/entertainment/articles/:article\u slug/comments/:id或/sports/articles/:article\u slug/c

如何根据资源的属性使其路由足够灵活

比如说,

resources :articles, param: :article_slug do
    member do
      resources :comments
    end
end
文章
具有
标题、类别、slug等属性

但客户端希望该类别必须是url中的第一个,例如:
/entertainment/articles/:article\u slug/comments/:id
/sports/articles/:article\u slug/comments/:id
。我不知道这种方法的正确方法是什么。

试试看

scope path: ':category' do
  resources :articles, param: :article_slug do
      resources :comments
      end
  end
end
并以这种方式生成url

article_comment_path(@article, @comment, category: @article.category)

你现在有什么网址?运行
rake routes
后,我只有
/articles/:article\u slug/comments/:id
是的,它可以工作,但类别是
article
的属性。我试图使用一些lambda方法,但不起作用。@JoseMarieAntonioMiñoza我已经更新了答案,你可以检查一下。