问题
下面我给出了我当前的 API 结果,但是,鉴于执行的 SQL 不是我的预期或期望结果。谁能帮助我获得第二个 SQL 查询结果而不是第一个?
楷模
控制台游戏.rb
class ConsoleGame < ActiveRecord::Base
self.table_name = 'console_game'
self.primary_key = :id
has_many :configurations, :class_name => 'Configuration'
end
配置.rb
class Configuration < ActiveRecord::Base
self.table_name = 'configuration'
self.primary_key = :id
end
API
resource :configuration do
desc "Finds all configurations associated with a game."
params do
requires :game, type: String, desc: "Game search.", documentation: { example: 'Battlefield 3' }
end
route_param :game do
get do
ConsoleGame.where(value: 'Battlefield 3').includes(:configurations)
end
end
end
调试控制台
D,[2014-05-06T15:11:59.071493 #31068] 调试——:控制台游戏负载(0.4 毫秒)选择
console_game
.* 从console_game
哪里console_game
。value
=“战地 3”D,[2014-05-06T15:11:59.073289 #31068] 调试 -- :配置加载(0.3 毫秒)选择configuration
.* 从configuration
哪里configuration
。console_game_id
IN (2) 127.0.0.1 - - [06/May/2014 15:12:08] “GET /configuration/game HTTP/1.1”200 34 25.9740
结果 - 获取 /configuration/game
[
{
id: 2,
value: "Battlefield 3"
}
]
期望的结果 - 获取 /configuration/game
[
{
id: 2,
value: "x",
device: 4,
system: null,
console_game_id: 2,
creator: "yrdy",
created_date: null,
positive_votes: 0,
negative_votes: 0
},
{
id: 4,
value: "ffds",
system: 2,
console_game_id: 2,
creator: "gdfs",
created_date: null,
positive_votes: 0,
negative_votes: 0
}
]
注意:这张表上有很多外国索引,我想解决它们,但也许那是另一天。
的结果ConsoleGame.where(value: 'Battlefield 3').includes(:configurations).as_json(include: :configurations)
[
{
id: 2,
value: "Battlefield 3",
configurations: [
{
id: 2,
value: "ffds",
device: 4,
system: null,
console_game_id: 2,
creator: "yrdy",
created_date: null,
positive_votes: 0,
negative_votes: 0
},
{
id: 4,
value: "x",
device: 4,
system: 2,
console_game_id: 2,
creator: "gdfs",
created_date: null,
positive_votes: 0,
negative_votes: 0
}
]
}
]