开发者

SQL command in Rails to find all posts where current_user.id is in a string

In m开发者_StackOverflowy app, there are a number of contributors to a post, with their id's stored in a string in the database. I'd like to find the total of posts where the user is listed as a contributor. I've put the following in my ApplicationController (before_filter'ed):

 @posts = Post.find :all, :conditions => ['contributors like ?', current_user.id]

That code isn't working though. When I do @posts.size, it only offers up "0".

Evironment is Ruby 1.8.6 and Rails 2.3.8

Any thoughts as to how to format the SQL statement?

Thanks


You want something like:

 @posts = Post.find :all, :conditions => ["contributors like '%?%'", current_user.id]

Where % is a wildcard saying that anything can come before the user_id and anything can come after the user id.

However if you have the chance, I'd highly suggest making a many to many relationship instead of storing the id's in a string... such as:

User
----
id, username, etc 
Posts
--------
post_id, content, etc

Contributors
--------
post_id user_id
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜