Rails adding computed field to a join of multiple tables

76 views
Skip to first unread message

Sumit Srivastava

unread,
Mar 14, 2013, 6:12:56 AM3/14/13
to rubyonra...@googlegroups.com

I did join on three tables.

arel = OfferOrder.includes(:a, :b, :c) arel = arel.select('(CASE WHEN ISNULL(c.field2) THEN c.field1 ELSE c.field2 END) AS fraud')

but when I run my code it gives error that

(Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS fraud)

Sumit Srivastava

unread,
Mar 14, 2013, 6:16:56 AM3/14/13
to rubyonra...@googlegroups.com
Also I did try it this way,

arel = OfferOrder.includes(:a, :b).joins(:c).select('(CASE WHEN ISNULL(c.fields2) THEN c.fields1 ELSE c.field2 END) ')

Got error,

ActiveModel::MissingAttributeError (missing attribute: a_id):

tamouse mailing lists

unread,
Mar 15, 2013, 7:11:42 AM3/15/13
to rubyonra...@googlegroups.com
What was the SQL it generated?

sumit srivastava

unread,
Mar 15, 2013, 7:15:16 AM3/15/13
to rubyonra...@googlegroups.com

Resolved this. Had to defined the join conditions and it worked. Though am stuck on another.
The select query is not working when another query is made using <<SQL tags in the code. Can't avoid using those.

Regards
Sumit Srivastava

The power of imagination makes us infinite...
 

--
You received this message because you are subscribed to a topic in the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rubyonrails-talk/xH1LYbHTIIU/unsubscribe?hl=en-US.
To unsubscribe from this group and all its topics, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Reply all
Reply to author
Forward
0 new messages