【问题标题】:Categories with main categories (Ruby on Rails)具有主要类别的类别(Ruby on Rails)
【发布时间】:2021-04-26 18:25:40
【问题描述】:

我正在尝试执行以下操作:

我有categories 模型 has_many posts 模型。

在我的categories 上,我使用action_text 作为正文内容。

我的问题:我想创建一个主页,在视图中列出所有categories 和他们的posts。就像常规类别一样,我希望该页面有一个 action_text 字段供我使用正文内容填充它(当然保存在数据库中)。

那么我希望我的路线是这样的:

match '/all' => 'pages#all_content', :via => :get,   :as => :all_content
match '/:category_id' => 'pages#category', :via => :get,   :as => :category
match '/:category_id/:post_id' => 'pages#post', :via => :get, :as => :post

我不确定的解决方案:在我的 category 模型中添加一个布尔值 main 字段。这使我能够像常规类别一样使用内容填充它。然后,在我的pages#all_content 上,我可以请求主类别拥有其所有数据。

但我对这个解决方案非常不安全,因为我认为必须有一个更好/更清洁的解决方案。我错了吗?

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    我不会混合这些东西。使用 main 为 ActionText 内容获取一个类别听起来更像是一个 Hack。听起来你喜欢制作某种迷你 CMS?

    我宁愿:

    • a) 创建一个新模型,页面(如果需要,还可以使用操作文本)。也许给每个页面一个唯一的“键”,它标识在哪里加载该页面模型(例如Page.find_by(key: "categories_top"))->如果您以后有页面的不同部分需要 CMSify,那么这种方法是相对面向未来的
    • b) 但是如果文本不经常更改,我会直接将 HTML 放入视图中,
    • c) 或者放到一个单独的 Markdown 文件中,如果它有很多副本并且您不想直接编写 HTML,然后加载它(例如使用 redcarpet Gem)

    【讨论】:

    • 确实是带有后台的 CMS。解决方案 a) 听起来不错。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2010-11-17
    • 1970-01-01
    • 2015-03-02
    相关资源
    最近更新 更多