出于某种原因,当我需要一个对象数组时,我的查询现在返回一个哈希数组。 我无法弄清楚要做什么。
inbox_sql = self.mailbox.inbox.where('conversations.id IN (?)', active_conversations).reorder('').to_sql
sentbox_sql = self.mailbox.sentbox.reorder('').to_sql
sql = "#{inbox_sql} UNION #{sentbox_sql}"
conversations = Profile.connection.execute(sql)
当
self.inbox.mailbox.first.class
返回
Conversation(id: integer, subject: string, created_at: datetime, updated_at: datetime)
但是
ActiveRecord::Base.connection.execute(sql).first.class
返回哈希,这是有问题的,并破坏了我在视图中的其余代码。 [用于以不太理想的方式返回Conversation对象],但是我需要它来返回一个Conversation(..)对象
答案 0 :(得分:1)
在rails中你不执行任何东西,你使用rails ActiveRecord 函数。
在此处阅读:http://guides.rubyonrails.org/active_record_querying.html
例如:
Conversation.where(...)
将执行sql查询并返回对话实例