我有这个搜索查询:
@ebm_entry = @patient.ebm_entries.find(params[:id])
@ebm_entries = @patient.ebm_entries.where("created_at::date = ?", @ebm_entry.created_at.to_date)
@ebm.entry
返回ID为40
的条目
并@ebm.entries
返回包含ids 40
和42
现在我尝试从@ebm.entry
中删除@ebm.entries
:
我试过了:
@ebm.entries =
@patient.ebm_entries.where("create....).not(id: @ebm_entry.id)
@patient.ebm_entries.where("create....).except(@ebm_entry)
和
@patient.ebm_entries.where("created_at::date = ?", @ebm_entry.created_at.to_date "&& id !=" @ebm_entry.id )
但不知怎的,我总是得到一个错误!我错了什么?谢谢!
答案 0 :(得分:1)
你应该尝试这样
@patient.ebm_entries.where('id != ?', @ebm_entry.id).where("created_at::date = ?", @ebm_entry.created_at.to_date)
答案 1 :(得分:1)
在 Rails 4 中,您可以使用 where.not
@results = @patient.ebm_entries
#remove unwanted record
@results.where.not(id: @ebm_entry.id)
#more results filtering
@results.where("created_at::date = ?", @ebm_entry.created_at.to_date)