通过实施博客,我学习的方式最多。我刚刚添加了标记,并且在显示文章时,我的文章视图显示了可显示可点击标记的位置。问题是这些链接就是这样出来的;
http://localhost:3000/articles?tagged_with=development
我宁愿没有查询字符串,而是有类似的东西;
http://localhost:3000/articles/tagged_with/development
我在rails网站的“路径里面外出”指南中找不到任何相关内容(那里有很多有用的东西,不是这个!)
此处填写完整代码: https://github.com/mikeyhogarth/mikeyblog
Pertinant位是;
_article.html.erb中的链接:
<%= link_to tag, articles_path(:tagged_with => tag) %>
文章索引控制器:
def index
if(params[:tagged_with])
@tag = params[:tagged_with]
@articles = Article.tagged_with @tag
else
@articles = Article.all
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @articles }
end
end
执行此操作的最佳实践方式是什么?我是否需要实现“tagged_with”操作并创建一个帮助器,或者是否有一些可以快速排序的轨道魔法?
编辑:最终找到了答案
答案 0 :(得分:1)
我最终找到了答案:我需要一个“命名路线”。如果其他人有这个问题,我只需将它放在我的routes.rb文件中;
match "/articles/tagged_with/:tag" => "articles#index", :as => "articles_tagged_with"
然后简单地用我的“link_to”重新填充;
<%= link_to tag, articles_tagged_with_path(:tag => tag) %>,
答案 1 :(得分:1)
尝试在路线上添加类似的内容(未经测试):
match '/articles/tagged/:tagged_with' => 'articles#index', :as => :tagged_articles
然后:
link_to(tag, tagged_articles_path(:tagged_with=>"foobar"))