Ruby on rails 如何在哈希上使用find_all_by
我在Rails中有一个简单的消息传递系统,有一个用于原始信息的消息表和一个用于每个收件人信息的消息复制表 消息包括作业id、主题、正文和作者id。Ruby on rails 如何在哈希上使用find_all_by,ruby-on-rails,Ruby On Rails,我在Rails中有一个简单的消息传递系统,有一个用于原始信息的消息表和一个用于每个收件人信息的消息复制表 消息包括作业id、主题、正文和作者id。 MessageCopy包括收件人id和邮件id 我正在尝试隔离一组特定的消息。我需要收件人查看所有为1的邮件副本。致收件人,以及2。属于message.job_id=@job.id的任何邮件。什么样的 @jobmessages = Message.find_all_by_job_id(job.id) @messages = MessageCopy.f
MessageCopy包括收件人id和邮件id 我正在尝试隔离一组特定的消息。我需要收件人查看所有为1的邮件副本。致收件人,以及2。属于message.job_id=@job.id的任何邮件。什么样的
@jobmessages = Message.find_all_by_job_id(job.id)
@messages = MessageCopy.find_all_by_recipient_id_and_message_id(current_user.id, @jobmessages.id)
当其中一个条件是类似@jobsessages的散列时,如何执行find_all_by
谢谢 我相信你可以使用以下方法
@jobmessages = Message.find_all_by_job_id(job.id)
@messages = MessageCopy.all(:conditions =>
["recipient_id = ? AND message_id IN (?)",
current_user.id, @jobmessages.map(&:id)]
假设您具有以下关联:
class User
has_many :jobs
end
class Job
belongs_to :user
has_many :messages
has_many :message_copies, :through => :messages
end
class Message
belongs_to :user
belongs_to :job
has_many :message_copies
end
class MessageCopy
belongs_to :message
belongs_to :recipient, :class_name => "User"
end
给定作业
和当前用户,您可以获得消息副本
,如下所示:
job.message_copies.find_all_by_recipient_id(current_user.id)