Sql 搜索范围内的搜索

Sql 搜索范围内的搜索,sql,ruby-on-rails,ruby,simple-form,ransack,Sql,Ruby On Rails,Ruby,Simple Form,Ransack,我有一个模型任务,其作用域名为done。 任务属于项目和用户 我需要按用户完成任务的项目筛选用户 simple_form_for @q do |form| form.input :tasks_done_project_id, collection: Project.ordered 但是使用“_done”不起作用 我想到了一个洗劫者: ransacker :done do |parent| parent.done.table[:id] end 但也不管用。有什么想法吗?来自

我有一个模型
任务
,其作用域名为
done
任务属于
项目
用户

我需要按用户完成
任务的项目筛选用户

simple_form_for @q do |form|
  form.input :tasks_done_project_id, collection: Project.ordered
但是使用“_done”不起作用

我想到了一个洗劫者:

  ransacker :done do |parent|
    parent.done.table[:id]
  end
但也不管用。有什么想法吗?

来自:

默认情况下,在模型的任何列上都授权搜索和排序,并且没有类方法/作用域被列入白名单

# `ransackable_scopes` by default returns an empty array
# i.e. no class methods/scopes are authorized.
# For overriding with a whitelist array of *symbols*.
#
def ransackable_scopes(auth_object = nil)
  []
end
在您的
任务
模型中,您必须明确地将
完成的
范围列为白名单:

class Task < ActiveRecord::Base
  scope :done, -> { ... }

  def self.ransackable_scopes(auth_object = nil)
    [:done]
  end
end
类任务{…}
定义自身可搜索范围(auth_object=nil)
[:完成]
结束
结束

如果我们的作用域包含多个参数,该怎么办。如何在形式上解决这个问题?如何从表单传递多个参数?