Hi everyone,

Before submitting and issue in rails github I'm asking if this is a normal 
behaviour in rails activerecord. 

Without table prefix in comments table the following code prints the 
correct SQL Syntax:

Post.distinct.joins(:comments).where(comments: { user: current_user }).
to_sql

SELECT DISTINCT posts.*
FROM
 posts INNER JOIN comments
 ON comments.post_id = posts.id
WHERE
 comments.*user_id* = 1


With table prefix in comments table the following code prints the wrong SQL 
Syntax:

Post.distinct.joins(:comments).where(prefix_comments: { user: current_user 
}).to_sql

SELECT DISTINCT posts.* 
FROM 
 posts INNER JOIN prefix_comments 
 ON prefix_comments.post_id = posts.id 
WHERE 
 prefix_comments.*user* = 1

It seems that when using table prefixes rails does not convert the hash 
condition for the model user to the correct column user_id and of course 
throws an error.

In rails doc it says that:

author = Author.find(1)
# The following queries will be equivalent:Post.where(author: 
author)Post.where(author_id: author)


And its going to get even worst for polymorphic tables.

Is this excepted or is this a bug in rails and I should open an issue for 
that?


-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/9a9006d2-b5c9-4e1a-a3ed-daa191524321%40googlegroups.com.

Reply via email to