2017-11-28 2 views
0

Lassen Sie uns sagen, ich habe folgende Modelle machen:Wie Ransack Suche zwischen den Klassen

User 
has_many :accounts 

Account 
belongs_to :user 
has_many :transactions 

Transaction 
belongs_to :account 
belongs_to :user 

Ich habe die Spalten „account_id“ in der Tabelle Transaktionen haben „user_id“ in Konten.

Wie kann ich Suchen in Transaktionen mit Ransack machen, über Filter den Attributnamen des Benutzers weiterleiten? Grundsätzlich möchte ich ein Suchfeld erstellen, das einen Namen erhält und alle Transaktionen der Konten zurückgeben muss, die zu diesem Benutzer gehören.

Aber was ich sehe, Ransack lassen Sie mich nur Suchen in Spalten in ihren jeweiligen Tabellen.

Wie kann ich finden account_id in Transaktionen Suche mit:

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

Also, wenn ich alle Transaktionen mit den Filter-Benutzername erhalten will, werde ich einen Fremdschlüssel user_name in der Tabelle Transaktion erstellen ? Oder es gibt einen anderen Weg, das zu tun. Sorry, wenn ich mein Problem nicht gut erklären konnte,

Antwort

0

Ransack ermöglicht die Suche nach Assoziationen. Versuchen Sie, account_user_name_eq zu übergeben.

Verwandte Themen