我对 Ruby on Rails 很陌生。
我正在尝试在用户模型和十个不同项目的模型之间建立关系。
我的目标是让用户能够检查项目模型中的项目,然后让已被检查的项目显示在他们的个人资料中。
我一直使用Michael Hartl Ruby on Rails 教程直到创建微博。任何有助于我完成此教程的提示将不胜感激。
谢谢!
我对 Ruby on Rails 很陌生。
我正在尝试在用户模型和十个不同项目的模型之间建立关系。
我的目标是让用户能够检查项目模型中的项目,然后让已被检查的项目显示在他们的个人资料中。
我一直使用Michael Hartl Ruby on Rails 教程直到创建微博。任何有助于我完成此教程的提示将不胜感激。
谢谢!
基本上,你想要的是:
AUser
has_and_belongs_to_many :items
另外,一个Item
has_and_belongs_to_many :users
这是多对多的关系。因为,一个用户可以有很多物品,一个物品也可以属于很多用户。在 rails 中,herehas_and_belongs_to_many
将隐式创建一个items_users
包含两者 id 的表,从而建立关系。
在此处阅读有关此协会的更多信息 - http://guides.rubyonrails.org/association_basics.html#the-has_and_belongs_to_many-association
使用checkbox
标签显示所有项目的复选框。文档 - http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box
根据选中的任何复选框,保存记录,建立关系。
完毕。:)
我不知道其他教程,如果你完成了 Hatel 的,那么你对整个 Rails 框架有一个非常非常好的理解。我会有一个 items_list 模型。其中有一个 user_id 外键将自己与用户相关联。然后我可以有一个项目模型,它有一个 items_list 外键来将它们关联到一个列表。然后项目模型可以有一个布尔字段“活动”或“检查”或其他。使用这些,以及相关的关系,以及一些范围,你可以得到你想要的。
只要确保在请求此数据时使用包含帮助器,否则您很容易遇到 N+1 问题。
http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations