mardi 13 octobre 2015

Rails 4 / postgresql 9.4 - Query and update a ruby object inside an array

I have a method (find_by_sql) that outputs a ruby object inside an array like this:

[#<deal id: 66480, opportunity_id: 4, admin_user_id: 1, created_at: "2015-09-20 18:37:29", updated_at: "2015-09-20 18:37:29", deal_available: true>]

How can I update the object's 'deal_available' attribute inside my database in raw postgresql ?

I tried different ways to write it but I stumble on the fact that it's very specific: it's an array, and inside there is a ruby object and I must manage to tell postgresql to change the value of deal_available: true to deal_available: false.

In local, I tried: logger.debug "Here is the resulting object for update:

 #{@deal_question[0]}

but I get:

#<@deal_question:0x007fd9b3963270>

Here is how @deal_question is created

@deal_question = Deal.find_by_sql(
      " SELECT \"deals\".*
        FROM \"deals\"
        WHERE (opportunity_id = #{@deal.id}
        AND deal_available = true)
        ORDER BY \"deals\".\"id\" ASC LIMIT 1"
    ) 

I don't even have a postgresql query to suggest here because first I need to understand how to query this ruby object inside the array.

Aucun commentaire:

Enregistrer un commentaire