我刚刚开始学习RoR,并决定创建一个附带项目以了解更多信息。我已经在这个问题上停留了大约一个星期了:(
基本上,我正在尝试在两个表(用户和食谱)之间建立关系。
为了我的应用程序,需要形成2种关系。
这是我到目前为止所做的。
用户模型
has_many :recipes
has_many :user_recipes
has_many :recipe, through: :user_recipes
食谱模型
belongs_to :user, dependent: :destroy
has_many :user_recipes
has_many :users, through: :user_recipes
user_recipes模型
belongs_to :user
belongs_to :recipe
user_recipe迁移文件
t.belongs_to :recipe, index: true
t.belongs_to :user, index: true
食谱迁移文件
t.belongs_to :user
用户迁移文件与配方没有任何关系。
从我的所作所为。我本来可以:
1.向用户分配食谱(创建者),然后使用recipe.user
进行检查
2.使用recipe.users << user
问题
当我键入user.recipes
时,它会告诉我用户创建了哪些食谱,而不喜欢用户喜欢哪些食谱。我认为应该有一种更好的方法来设置我的同事以能够正确使用所有功能。
感谢所有帮助。预先谢谢你!
答案 0 :(得分:0)
为创建的食谱提供别名,这样您就不必使用“ user.recipes”来访问它。
以这种方式编辑用户模型:
替换行
has_many :recipes
具有这样的内容:
has_many :created_recipes, foreign_key: :user_id, class_name: "Recipe"
这样做,您可以通过键入“ user.created_recipes”访问用户创建的食谱,并通过键入“ user.recipes”来访问用户喜欢的食谱。