2015-09-04 24 views
0

工作我寫的:方法各不用於獲取相關模型

<%= Chat.find_by(id: 6).chatusers.each { |chat_user| chat_user.user.inspect } %> 

(有三種型號:聊天,Chatuser,用戶)

Chat.find_by(ID:6).chatusers的回報集合表「chats_users」,這是很好的工作。 但我無法通過方法「each」中的每個集合元素獲取模型用戶。 所以,問題是爲什麼每個人都沒有努力獲得相對的模型「用戶」或如何通過每種或另一種方式來解決我的任務。

class Chat < ActiveRecord::Base 
    has_many :chatusers 
    has_many :users, through: :chatusers 

class Chatuser < ActiveRecord::Base 
    self.table_name = "chats_users" 
    belongs_to :chat 
    belongs_to :user 

    validates :chat_id, presence: true 
    validates :user_id, presence: true 
end 

class User < ActiveRecord::Base 
    has_many :chats, class_name: "Chatuser" 

謝謝。

解決

解決方案是使用紅寶石HTML編寫的另一種風格:

<% Chat.find_by(id: 6).chatusers.each do |chat_user| %> 
<%= chat_user.user.inspect %> 
<% end %> 

感謝Ruby on Rails Talk

+0

你可以發佈你的'在這個問題'associations' models'? – Pavan

回答

0

解決

解決方案是使用紅寶石HTML編寫的另一種風格:

<% Chat.find_by(id: 6).chatusers.each do |chat_user| %> 
<%= chat_user.user.inspect %> 
<% end %> 

感謝Ruby on Rails Talk

0

如果我理解你的問題的權利,並且希望得到所有用戶對於聊天,那麼這將做到這一點:

Chat.find(6).users 
+0

不是真的,我需要讓每個用戶扔從聊天模型聊天chats_users表。 Chat.find(6).chatusers.each {| chat_user | chat_user.user}即chat_user只是來自對應於表用戶的表chats_users的對象。 –