簡體   English   中英

Rails ActiveModel添加未保留的屬性

[英]rails ActiveModel add attribure that is not persisted

我正在嘗試查詢模型表:

> messages = Message.find_by_sql("select count(*) as messages_count,
> sender_id, recipient_id, min(is_read) as is_read from messages group
> by sender_id, recipient_id")

DB表包含字段sender_id,receiver_id,is_read。 結果,我得到了一個不存在messages_count的哈希數組。

我嘗試過

class Message < ActiveRecord::Base
  def attributes
    super.merge('messages_count' => self.messages_count)
  end

  after_initialize do
    self.messages_count = nil unless @attributes.key?("messages_count")
  end   

我也嘗試覆蓋這樣的哈希

  def serializable_hash(options = {})

  end

這不是觸發的。

我還能嘗試什么? 謝謝!

我在此線程中找到了解決方案。

messages = ActiveRecord::Base.connection
                 .select_all("select count(*) as messages_count,
                           sender_id, recipient_id, min(is_read) as is_read
                           from messages group by sender_id, recipient_id").to_a

返回值:

[{"messages_count"=>3, "sender_id"=>409608538, "recipient_id"=>762146111, "is_read"=>"f"}, {"messages_count"=>1, "sender_id"=>409608538, "recipient_id"=>950961012, "is_read"=>"f"},
 {"messages_count"=>2, "sender_id"=>762146111, "recipient_id"=>409608538, "is_read"=>"t"}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM