【问题标题】:Rails linking object to its category pageRails 将对象链接到其类别页面
【发布时间】:2012-10-12 10:27:31
【问题描述】:

我有一个包含标题、正文、作者和类别字段的文章模型。所有文章都按其类别分组,这意味着我有 6 个页面,例如“新闻”、“公告”、“体育”等。

如何从显示页面链接到文章类别页面?

articlesController.rb

def news
      @articles = Article.paginate(page: params[:page], per_page: 7).where(category: "News")
    end

rake routes & routes.rb

    news        /news(.:format)                                   articles#new

match '/news', controller: "articles", action: "news"

链接

<b><%= link_to @article.category, @article.category_path?? %></b>

提前致谢!

【问题讨论】:

  • 不清楚你到底在问什么。你想链接到什么?到列出点击类别中所有文章的页面,或到显示类别本身(或可以编辑)的页面。您的 link_to 代码本身对我来说看起来不错...顺便说一句:您使用的是哪个版本的导轨?
  • 嗨 Vapire,我对问题进行了一些改写,但我想链接到文章类别页面,该页面列出了该类别下的所有文章。所以在文章视图中我可以去 @article.category -> ("News") 来显示它的类别,但我想链接到 news_path,但是动态地这样做,因为有几个类别

标签: ruby-on-rails ruby routes


【解决方案1】:

带导轨 2

#routes.rb
map.news       'news',     :controller => "Articles", :action => "news"
map.bulletin   'bulletin', :controller => "Articles", :action => "bulletin"

这将为您提供news_pathbulletin_path。在特定功能中,您可以加载article_category 及其所有文章。

创建一个辅助方法category_path,如下所示

def category_path(article)
    return eval("#{article.category.downcase}_path")
end

和类似的链接

<%= link_to @article.category, category_path(@article) %>

【讨论】:

  • Samiron 太棒了!我尝试在视图中做类似的事情,但没想到给它一个辅助方法,再次感谢!
  • 由于该解决方案对您有效,我将从答案中清除我的假设。
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多