I have an inner join query that Action Record can''t seem to pull off conventionally, so I''m trying to use :finder_sql to utilize an sql query that works beautifully in SQL. The problem is, when I try to call the method, I get the following: private method `gsub'' called for #<Array:0x267de04> Here is my has_many code: has_many :mod_privileges, :finder_sql => [''SELECT assignments.* FROM assignments INNER JOIN permissions ON assignments.publisher_id = permissions.publisher_id WHERE permissions.user_id = #{current_user.id} AND (permissions.role_id = 3 OR (permissions.role_id = 4 and permissions.assignment_id = assignments.id))''] and a simple test bit I threw into the view: <%= debug(current_user.mod_privileges) %> I was using has_many :through, but there seemed to be no way to do an inner join on something other than the column referencing the main select table. Suggestions? -- Posted via http://www.ruby-forum.com/.
Nevermind. I forgot the :class_name. This works: has_many :mod_privileges, :class_name => "Assignment", :finder_sql => "SELECT assignments.* FROM assignments INNER JOIN permissions ON assignments.publisher_id = permissions.publisher_id WHERE permissions.user_id = #{current_user.id} AND (permissions.role_id = 3 OR (permissions.role_id = 4 and permissions.assignment_id = assignments.id))" However, now I''m getting: uninitialized constant User I''m using Acts_as_Authenticated which gives me access to the user via current_user, but I''m assuming since this has_many method is IN the User model it''s not working? -- Posted via http://www.ruby-forum.com/.
Possibly Parallel Threads
- Help on drying code
- [AR] #{id} namespace visibility used in finder_sql
- Change the value stored in inheritance_column
- It this possible: finder_sql-like behavior for belongs_to?
- How do I combine :finder_sql and :conditions to perform a sub-search on a custom has_many relationship?