我想在RoR上为包含不同文章部分的媒体网站创建路线(ecology
,legal
,economy
等等。)
我希望我的网址像这样
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请求。试一试。
答案 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
这样,您可以创建所需的部分/文章而无需更改代码。 它还为您提供了自定义选项,并在很大程度上减少了您准备工作的工作[但现在您可以利用那段时间参加派对;)]。