That did the job perfectly. Thank you so much. On Tuesday, September 27, 2016 at 11:35:07 AM UTC-7, Jeremy Evans wrote: > > On Monday, September 26, 2016 at 10:35:40 PM UTC-7, binarypaladin wrote: >> >> So, let's say I'm using pgcrypto and in some circumstances, if a user has >> sufficient access, I want to decrypt a column in the select. This is simple >> enough when selecting using a single table or model. >> >> So, let's say table1 has a column called crypted_column and I select >> pgp_sym_decrypt(crypted_column, key) AS decrypted_column. Pretty simple. >> >> class Table1 >> def decrypted_column >> self[:decrypted_column] >> end >> end >> >> So, t1 = >> Table1.select_append(:pgp_sym_decrypt.sql_function(:crypted_column, >> key).as(:decrypted_column)).first gives me t1.decrypted_column => >> "decrypted value" >> >> However, how do I get this value to show up in an eager graph—preferably >> without having to update every single instance of the association? >> >> So let's say I have table2, table3, and table4 and they all have either a >> many_to_one OR a one_through_one association with table1. >> >> If I do >> Table2.eager_graph(:table1).select_append(:pgp_sym_decrypt.sql_function(:crypted_column, >> >> key).as(:decrypted_column)).first I can SEE the correct key in the hash >> with the decrypted value, but if I do .all (which gives me the models >> rather than a hash of values) where does "decrypted_column" go, where is it >> accessible from, and how do I tell the process, "Hey. decrypted_column goes >> with table1?" >> > > You should use add_graph_aliases to do this: > > ds.add_graph_aliases(:decrypted_column=>[:table1, > :column1, :pgp_sym_decrypt.sql_function(:crypted_column, key)]) > > :table1 here is the table alias in which you want to place the data (which > hash to place the data), and :column1 is the column alias to use (which > hash key to use). > > Thanks, > Jeremy >
-- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
