Lio*_*rom 12 ruby gem activerecord ruby-on-rails sinatra-activerecord
我建设使用三个数据库的表一西纳特拉的应用程序:user,post和like.
我想运行一个查询,在like表中找到一个条目,如下所示:
FIND in like WHERE user_id == params[:user_id] AND post_id == params[:post_id]
Run Code Online (Sandbox Code Playgroud)
(对于一个条件,我会用:Like.find_by_user_id(params[:user_id]))
我的问题是:
如何使用ActiveRecordGem 运行具有多个条件的查找查询?
fal*_*tru 12
用途where:
Like.where('user_id = ? AND post_id = ?', params[:user_id], params[:post_id])
Run Code Online (Sandbox Code Playgroud)
要么
Like.where('user_id = :user_id AND post_id = :post_id', params)
Run Code Online (Sandbox Code Playgroud)
重要的是要记住,例如,在哪里需要转换为预期类型的参数 params[:post_id].to_i
与find_by_user_idfor user_id列类似,您可以组合多个列名称并获得动态查找器find_by_user_id_and_post_id:
Like.find_by_user_id_and_post_id(params[:user_id], params[:post_id])
Run Code Online (Sandbox Code Playgroud)
当find_by_查找器中的列多于“可承受的”列时,可以使用where并提供以下条件:
Like.where(user_id: params[:user_id], post_id: params[:post_id])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8860 次 |
| 最近记录: |