has_many:通过它的运作方式?

时间:2015-07-31 03:52:42

标签: ruby-on-rails ruby ruby-on-rails-3

首先让我说我来自oldschool php框架和过时的做法,我正在努力解除它们。 当PHP我发现情况N-N时,我只是创建了一个新表,并且与这个新表有1-N的关系。例如:

tbl_users

tbl_posts

关系:

tbl_users N-N tbl_posts

所以我刚刚在新表中创建并建立了1-N关系(常见的has_many)。例如:

tbl_users 1-N tbl_like_posts

tbl_posts 1-N tbl_like_posts

我不知道是否有相同的东西,我没有使用,因为我从未收费。但实际情况是,我已经看过has_many:通过并且没有把它放到我的头脑中。为什么我不能做我以前做过的事情?什么:通过特别的?它会让我感到轻松吗?我甚至理解如何使用,但不明白为什么要使用。

对不起,如果问题有点愚蠢,但我试图放弃PHP上瘾并正确学习轨道。

1 个答案:

答案 0 :(得分:2)

您有两种选择:

1)让Rails使用has_and_belongs_to_many关联解决它(在引擎盖下,Rails将创建一个新表来进行多对多关联,但是你不需要处理它直接);

2)通过has_many :through

指定您要使用的表(就像您使用PHP一样)

您可以在此处查看文档:{​​{3}}

另一个有用的链接应该是这个RailsCast:http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association