【问题标题】:How to make Ransack search between classes如何在类之间进行 Ransack 搜索
【发布时间】:2023-03-15 14:00:01
【问题描述】:

假设我有以下模型:

User
has_many :accounts

Account
belongs_to :user
has_many :transactions

Transaction
belongs_to :account
belongs_to :user

我已经在表 transactions 中创建了列“account_id”,在 accounts 中创建了“user_id”。

如何使用 Ransack 在事务中进行搜索,通过过滤器传递用户的属性名称?基本上,我想创建一个接收名称的搜索字段,并且必须返回属于该用户的帐户的所有交易。

但是,就我所见,Ransack 只是让我在各自表格的列中进行搜索。

例如,我可以使用以下方式在交易中搜索 account_id:

<%= search_form_for @search do |f| %>
<%= f.label :account_id_eq, 'Account ID:' %>
<%= f.text_field :account_id_eq %>

所以如果我想使用过滤器用户名获取所有事务,我将不得不在表事务中创建一个外键 user_name 吗? 或者还有另一种方法可以做到这一点。 抱歉,如果我不能很好地解释我的问题,“meu inglês não é muito bom”

【问题讨论】:

    标签: ruby-on-rails postgresql search transactions ransack


    【解决方案1】:

    Ransack 允许通过关联进行搜索。尝试传递account_user_name_eq

    【讨论】: