2016-03-29 12 views
0

Ich habe eine product Tabelle, wo es alle Produkte Benutzer erstellt aufgeführt. In der Produkttabelle gibt es country, die den Produktursprung angeben. Jetzt das Produkt Land sichtbar zu machen, die Benutzertabelle merchant status von 1.Ruby on Rails Tabelle Beziehung

folgenden Code haben muss, ist die Verwendung der Länder aus Produkttabelle ziehen:

@countries = Product.select(:country).distinct.where("country is not null and country <> ''").pluck(:country) 

Produkt-Modell:

class Product < ActiveRecord::Base 
belongs_to :user 
end 

Benutzermodell:

class User < ActiveRecord::Base 
has_many :products 
end 

Wie kann ich den obigen Code ändern, so dass ich t wird merchant_status in Benutzertabelle enthalten? Mittel, die ich Länder nur auflisten muss, wenn merchant_status = 1 in der Benutzertabelle. Vielen Dank!!

+2

können Sie diese 'Product.joins versuchen (: user) .wo ("Land nicht null und Land <> ''") .wo (: users = > {: merchant_status => 1}) .zupfen (: Land) ' –

+0

@VishalJAIN thanks !! es funktioniert gut – d3bug3r

+0

@VishalJAIN Bitte posten Sie es als Antwort, und lassen Sie das OP es akzeptieren. –

Antwort

1

Sie auf diese Weise versuchen:

Product.joins(:user).where("country is not null and country <> ''").where(:users => {:merchant_status => 1}).pluck(:country)