rails 4如何从sqlite中删除限制条件

时间:2014-04-22 07:58:35

标签: ruby-on-rails sqlite ruby-on-rails-4

我有一个问题表,在索引页面中,我只想显示当前用户的问题,所以我这样做:

Question.find_by_user_id current.id

但它只返回带有此ID的第一条记录。当我查看生成的sqlite代码时,我发现了这个

SELECT "questions".* FROM "questions" WHERE "questions"."user_id" = 2 LIMIT 1

因此我需要删除此限制或将其设为nil

2 个答案:

答案 0 :(得分:0)

根据rails docs,find_by接受参数并将其传递给find_by方法。除非您将查询直接更改为where子句,否则没有其他方法可以更改提供的限制。

def find_by(*args)
  where(*args).take
end

最终答案 Question.where(user_id: current.id)

答案 1 :(得分:0)

find_by始终返回与给定条件匹配的单个记录。请勿使用find_all_bywhere

Question.find_all_by_user_id(current_user.id)

Question.where(user_id: current_user.id)

如果您使用的是Rails 4,那么我建议您使用where