Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql globalize3-查询已翻译的属性_Sql_Ruby On Rails_Ruby_Activerecord_Globalize3 - Fatal编程技术网

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';