Ruby on Rails模型关系

时间:2013-04-29 17:52:18

标签: ruby-on-rails ruby

我是Ruby on Rails的新手。

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

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

我使用了Michael Hartl Ruby on Rails tutorial 创造微博的关键。 任何有助于我完成此教程的教程提示将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

完成。 :)

答案 1 :(得分:0)

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

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

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