【问题标题】:Selecting favourites from DB rails 3从 DB rails 3 中选择收藏夹
【发布时间】:2012-11-06 01:21:47
【问题描述】:

我有一个小应用程序,其中包含用户、食谱、配料和准备模型

一个用户有很多食谱,食谱属于用户,配料/准备属于食谱。

现在用户可以查看所有食谱,但我想要将特定食谱添加到收藏夹列表的选项。我是否需要设置一个新的数据库来保存它,然后通过关联进行链接,或者我是否可以在名为 fav 的配方模型中添加一个列?

我在这里寻找最佳实践,或者如果有人以前这样做过并且可以提供任何建议,将不胜感激

【问题讨论】:

    标签: ruby-on-rails-3


    【解决方案1】:

    我认为你可以像这样设置has_may关联:

    class User < ActiveRecord::Base
    
      has_many :favorite_recipes, foreign_key: "user_id", class_name: "Recipe", dependent: :destroy
    end
    

    【讨论】:

    • 那么为 favourite_recipes 创建单独的表?
    • 不,你不需要,我不知道如何为你解释想法,但你可以在这里查看例如Follower and Following。在这个例子中,用户有追随者和追随者用户,在你的情况下,用户将有食谱和最喜欢的食谱,我认为你可以像那个例子那样做。希望这对您有所帮助。
    【解决方案2】:

    我会在您的 UsersRecipe 表中添加一个布尔列 favorited

    然后您可以在 User 模型中为此添加范围:

    has_many :favorite_recipes, :through => :user_recipes, :class => Recipe, :conditions => ['user_recipes.favorited = ?',true]
    

    【讨论】:

    • 不确定我是否理解抱歉,您的意思是在我的食谱模型中添加收藏列吗?
    • 是的,您可以将收藏列添加到您的食谱模型。我觉得 Kien 的回答也很有趣。
    猜你喜欢
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2023-03-20
    • 1970-01-01
    • 2011-06-08
    相关资源
    最近更新 更多