我对Ruby on Rails很新。Ruby on Rails模型关系
我试图建立一个用户模型和十个不同项目的模型之间的关系。
我的目标是让用户能够检查项目模型中的项目,然后让已经检查过的项目显示在他们的个人资料中。
我已经使用Michael Hartl Ruby on Rails tutorial高达 创建微博的重点。 任何有助于我完成此教程的技巧将不胜感激。
谢谢!
我对Ruby on Rails很新。Ruby on Rails模型关系
我试图建立一个用户模型和十个不同项目的模型之间的关系。
我的目标是让用户能够检查项目模型中的项目,然后让已经检查过的项目显示在他们的个人资料中。
我已经使用Michael Hartl Ruby on Rails tutorial高达 创建微博的重点。 任何有助于我完成此教程的技巧将不胜感激。
谢谢!
基本上,你想要的是:
一个User
has_and_belongs_to_many :items
而且,Item
has_and_belongs_to_many :users
这是多对多的关系。因为,用户可以有很多项目,并且项目也可以属于多个用户。在rails中,这里has_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
基于任何复选框被选中,保存记录,建立关系。
完成。 :)
我不知道其他教程,如果你已经完成了哈特尔的话,那么你对整个rails框架有非常好的理解。我会有一个items_list模型。其中有一个user_id外键将自己与用户关联起来。然后我可以有一个项目模型,它有一个items_list外键将它们关联到一个列表。然后项目模型可以有一个布尔型字段“主动”或“检查”或其他。使用这些,以及相关的关系和一些范围,你可以得到你想要的。
只要确保在请求这些数据时使用includes helper,否则您将很容易出现N + 1问题。
http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations