【发布时间】:2018-01-16 05:34:29
【问题描述】:
我正在使用 Rails 4.2.5、Ruby 2.2、ransack。我正在尝试使用 Ransack 实现搜索功能。我有类似的东西:
这些代码在 abc_controller.rb 中:
def checked_users
emails = ["abc@abc.com", "a@a.com", "b@b.com"]
users_list = User.where("email in (?)", emails)
@q = users_list.ransack params[:q]
end
这些是checked_users.html.haml中的代码:(这里忽略url路径。它是正确的,现在我已经改变了)
= search_form_for @q, url: checked_users_path(some_id: id) do |form|
= form.text_field :user_name_or_user_email_cont, placeholder: 'Name or email', class: 'form-control'
在 routes.rb 中:
resources :xyz do
resources :mno do
get 'checked_users', controller: 'abc', action: 'checked_users'
end
end
使用这些代码我得到一个错误:
ActionView::Template::Error (undefined method `user_name_or_user_email_cont' for Ransack::Search<class: User, base: Grouping <combinator: and>>:Ransack::Search):
不知道为什么会出现这个错误。
【问题讨论】: