RoR杂志的具体类别路线

时间:2017-05-04 09:01:44

标签: ruby-on-rails url routes custom-routes

我想在RoR上为包含不同文章部分的媒体网站创建路线(ecologylegaleconomy等等。)

我希望我的网址像这样

root/magazine/ecology/name-of-articles

(轨道路线/导轨上没有任何对应的指南,嵌套和收集路线不适合我,我认为)

这是我的尝试:

get 'magazine/ecology/name-of-article', to: 'articles#name_of_article'
views: folders articles => magazine => ecology => file: name_of_article
controller: articles

但是它不起作用......从下面的rails回答 谢谢你的帮助

  

ActionController :: UnknownFormat at   /杂志/ actualite-juridique /立法-CE-魁变化EN-2017   ArticlesController#legislation_2017缺少一个模板   请求格式和变体。

     

request.formats:[" text / html"] request.variant:[]

     

请注意!对于XHR / Ajax或API请求,此操作通常会响应   204无内容:空白屏幕。因为您正在加载它   在Web浏览器中,我们假设您希望实际呈现一个   模板,而不是什么,所以我们显示错误是非常明确的。如果   你期待204 No Content,继续。那是你从中获得的   XHR或API请求。试一试。

1 个答案:

答案 0 :(得分:0)

虽然您没有像评论中所讨论的那样寻求解决方案以及您尝试做什么,但我根本不建议这样做。我想建议一个更好的方法。如果你喜欢的话就拿它。

运行迁移向您的articles模型添加一列,该列将保存其所属的section名称。 然后,你的路线:

get 'magazine/:section/:name' => 'articles#name_of_article' , as: 'sectioned_article'

在您的控制器中:

def name_of_article
  @article = Article.where("section iLike '%#{params[:section]}% AND name iLike '%#{params[:name]}%'").first
end

这样,您可以创建所需的部分/文章而无需更改代码。 它还为您提供了自定义选项,并在很大程度上减少了您准备工作的工作[但现在您可以利用那段时间参加派对;)]。