0

我对 Ruby on Rails 很陌生。

我正在尝试在用户模型和十个不同项目的模型之间建立关系。

我的目标是让用户能够检查项目模型中的项目,然后让已被检查的项目显示在他们的个人资料中。

我一直使用Michael Hartl Ruby on Rails 教程直到创建微博。任何有助于我完成此教程的提示将不胜感激。

谢谢!

4

2 回答 2

0

基本上,你想要的是:
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

根据选中的任何复选框,保存记录,建立关系。

完毕。:)

于 2013-04-29T17:58:32.843 回答
0

我不知道其他教程,如果你完成了 Hatel 的,那么你对整个 Rails 框架有一个非常非常好的理解。我会有一个 items_list 模型。其中有一个 user_id 外键将自己与用户相关联。然后我可以有一个项目模型,它有一个 items_list 外键来将它们关联到一个列表。然后项目模型可以有一个布尔字段“活动”或“检查”或其他。使用这些,以及相关的关系,以及一些范围,你可以得到你想要的。

只要确保在请求此数据时使用包含帮助器,否则您很容易遇到 N+1 问题。

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

于 2013-04-29T17:59:00.030 回答