Sql globalize3-查询已翻译的属性
我有两种型号:Sql globalize3-查询已翻译的属性,sql,ruby-on-rails,ruby,activerecord,globalize3,Sql,Ruby On Rails,Ruby,Activerecord,Globalize3,我有两种型号: class Gender < ActiveRecord::Base translates :name has_many :products end class Product < ActiveRecord::Base translates :description belongs_to :gender end 但是我想我需要一个类似这样的sql查询 SELECT * FROM products INNER JOIN genders on gen
class Gender < ActiveRecord::Base
translates :name
has_many :products
end
class Product < ActiveRecord::Base
translates :description
belongs_to :gender
end
但是我想我需要一个类似这样的sql查询
SELECT * FROM products
INNER JOIN genders on genders.id = products.gender_id
INNER JOIN gender_translations on gender_translations.gender_id = genders.id
WHERE gender_translations.name = 'male';
那么,如何实现与此sql查询相当的rails呢?类似于Product.joinsgender::translations.wheregender:{translations:{name:'male'}应该可以做到这一点 joinsgender::translations是嵌套的内部联接。所以你加入了产品->性别,性别->性别翻译
where散列语法只是试图生成SQL:wheregender_translations.prompt='male'。如果散列语法不正确,我会恢复到刚才提到的原始SQL。无论如何,这可以说更清楚 感谢您的回复@dleve123,但是Product.joinsgender::translations.wheregender:{translations:{name:{male'}}正是我问这个问题时所做的,最后我在rails中编写了原始sql,正如您所建议的方法。也许我以后会找出旧的错误消息,我们可以从那里看一看。
SELECT * FROM products
INNER JOIN genders on genders.id = products.gender_id
INNER JOIN gender_translations on gender_translations.gender_id = genders.id
WHERE gender_translations.name = 'male';