我是新來的鐵軌,並試圖準確理解如何做關聯,如果我做得正確。我已閱讀rails guide on associations並搜索了網絡並找到了一些資源,但我不確定。簡單軌道3協會 - has_many,belongs_to和has_and_belongs_to_many
你可以在這裏看到我的項目:majorfinder.com在我的應用程序將有專業,學校和職業。我希望能夠爲每個評論添加評論。由於我剛剛開始,我剛剛開始爲專業添加評論。
這裏是我的協會:
型號/ review.rb
belongs_to :user
has_and_belongs_to_many :majors
型號/ user.rb
has_many :reviews
型號/ major.rb
has_and_belongs_to_many :reviews
我第一個問題是,這是否看起來像創建協會的好方法?
我知道該怎麼做在大滿貫賽控制器簡單的關聯關係:
@reviews = Review.includes(:user)
,並與我可以告訴檢討我的主要控制器:
<div class="row">
<% @reviews.each do |review| %>
<div>
<h3><%= link_to review.review,
:controller => "reviews", :action => "show", :id => review.id %></h3>
<small>Posted on <%= review.created_at %> by
<a href="#"><%= review.user.profile_name %></a></small>
</div>
<% end %>
</div>
,但我不知道怎麼樣使這個連接到我正在看的特定專業。
我的評論數據庫模式有review(text),user_id(integer)和major_id(integer)。
最後一個問題是,如何在主要控制器顯示頁面內發佈與該特定主要連接的評論?
非常感謝你Zaid!這非常有幫助!我遇到了一個錯誤:在MajorsController中的NoMethodError#顯示未定義的方法'包括'爲#,在我的majors_controller.rb文件中,雖然我有:def show @major = Major.find_by_slug(params [:id])。包括(:reviews =>:user)end –
lflores
2013-03-05 13:57:48
這是我的錯,'.includes()'應該放在'.find()'之前,所以'@major = Major.includes(:reviews =>:user) .find_by_slug(params [:id])'應該工作。 – 2013-03-05 22:07:13
它呢,謝謝你! – lflores 2013-03-07 02:10:09