gpt4 book ai didi

ruby-on-rails - 使用 Ransack gem 进行复选框搜索

转载 作者:行者123 更新时间:2023-12-04 22:21:27 25 4
gpt4 key购买 nike

我需要过滤表中的数据。为此,我找到了 meta_search gem。
我安装了 meta_search 并收到此错误:

uninitialized constantActiveRecord::Associations::ClassMethods::JoinDependency

This 不推荐用于 Rails 4(我正在使用的框架)。因此,我安装了 ransack (rails 4 branch)(基于 meta_search 的 gem)并且运行良好。问题是我需要使用meta_search的 collection_checks方法来处理复选框,而ransack中不存在这个方法。那么,问题来了:ransack 中有一种类似于 collection_checks 的方法来管理复选框吗?或者我该怎么做?

我有这个:

我想过滤并获取汽车、自行车或两者的行

最佳答案

我不熟悉元搜索,但在 Ransack(在 Rails 4 中)你可以使用这样的东西:

楷模:

class User < ActiveRecord::Base
has_many :user_vehicles
has_many :vehicles, through: :user_vehicles
end

class UserVehicle < ActiveRecord::Base
belongs_to :user
belongs_to :vehicle
end

class Vehicle < ActiveRecord::Base
has_many :user_vehicles
end

Controller :
class UsersController < ApplicationController
def index
@q = User.search(params[:q])
@users = @q.result(distinct: true)
end
end

看法:
<%= search_form_for @q , url: users_path, :html => { class: 'your-class' } do |f| %>
<% Vehicle.all.each do |vehicle| %>
<%= check_box_tag('q[vehicles_id_eq_any][]', vehicle.id ) %>
<%= vehicle.name %>
<% end %>
<%= f.submit "Search" %>
<% end %>

<%= paginate(@users) %>
<ul>
<% @users.each do |i| %>
<li><%= i.name %></li>
<% end %>
</ul>
<%= paginate(@users) %>

如果您仍然不使用 gem,您也可以使用 gem 进行分页。我用 Kaminari。在这种情况下,您的 Controller 和 View 可能如下所示:

Controller :
class UsersController < ApplicationController
def index
@q = User.search(params[:q])
@users = @q.result(distinct: true).page params[:page]
end
end

看法:
<%= search_form_for @q , url: users_path, :html => { class: 'your-class' } do |f| %>
<% Vehicle.all.each do |vehicle| %>
<%= check_box_tag('q[vehicles_id_eq_any][]', vehicle.id ) %>
<%= vehicle.name %>
<% end %>
<%= f.submit "Search" %>
<% end %>

<%= paginate(@users) %>
<ul>
<% @users.each do |i| %>
<li><%= i.name %></li>
<% end %>
</ul>
<%= paginate(@users) %>

关于ruby-on-rails - 使用 Ransack gem 进行复选框搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com