2012-08-03 35 views
0

我是Rails的新手,一直在努力處理命名約定,以找出我實際上指的是什麼。由於命名非常相似的許多項目(例如,模型類,數據庫表,控制器),從示例中引用的對象並不總是顯而易見的。Rails - 關聯 - 我指的是什麼?

對於關聯的guides,它使用帖子和評論作爲示例。你能幫我理解實際提到的內容嗎?

與協會 has_many :comments 什麼是:comments?這是模型類還是控制器?

當提及相關對象時: @post.comments.build 這個例子中的comments是什麼?它是類,控制器還是實例變量?

回答

0

評論是一個模型,而不是控制器。這兩個例子都是如此。首先它是兩種模型之間關係的定義。在第二個中,它是一個新的註釋類型對象,它被創建並填充了對該帖子的引用。

您可以使用的經驗法則是模型通常不會引用控制器,而是其他模型。

+0

謝謝 - 這是有道理的。 – 2012-08-03 20:59:04

0

模型代表真實的對象(因此它們被稱爲模型)。評論,帖子是實際的對象表示。 has_many:評論只是說一個帖子有很多評論的方式。所以它是指模型。

控制器是對模型進行操作的地方。隨着你的發展,你會意識到給定模型可以有多個控制器。控制器是您決定在各種事件上做什麼的地方。因此,任何路線都將映射到控制器操作。

@ post.comment.build對模型帖子有評論,建立模型評論的一個實例。這將導致觸發控制器中的功能。