gpt4 book ai didi

mysql - Rails 事件模型协会问题

转载 作者:行者123 更新时间:2023-11-29 14:39:37 25 4
gpt4 key购买 nike

我在模型关联方面遇到问题。我想通过访问 trips.route_id 中的数据来提取路线的行程信息,其中 routes.route_id 将具有相同的值。目前,SQL 查询正在调用 routes.id,而不是使用 routes.route_id。任何帮助将不胜感激。

路由表结构

COLUMNS: id,route_id,route_short_name,route_long_name,route_desc,route_type  
ROW: 1,2-36,2,"East 34th St",,3

该表上的primary_key是“id”。

模型

class Route < ActiveRecord::Base
has_many :trips, :foreign_key => 'route_id'
end
class Trip < ActiveRecord::Base
belongs_to :route
end

路由 Controller

class RouteController < ApplicationController
def show
@route = Route.where("'%s' = routes.route_short_name",params[:id]).first
end
end

想要调用@route.trips来提取与所述@route关联的行程信息

日志信息

Started GET "/route/19" for 127.0.0.1 at Wed Nov 23 21:09:55 -0500 2011
Processing by RouteController#show as HTML
Parameters: {"id"=>"19"}
Route Load (0.4ms) SELECT `routes`.* FROM `routes` WHERE ('19' = routes.route_short_name) LIMIT 1
Trip Load (8.4ms) SELECT `trips`.* FROM `trips` WHERE `trips`.`route_id` = 15

行程负载说明: 15 表示从“路线负载”查询返回的对象的id。我想使用结果的 routes.route_id 值而不是 id 来构建“行程负载”查询。

期望的结果:
行程负载(8.4ms) SELECT 'trips'.* FROM 'trips' WHERE 'trips'.'route_id' = '2-36'('2-36' 值引用自路由表结构示例)

最佳答案

如果我正确理解您的问题,您需要将模型更改为如下所示:

class Route < ActiveRecord::Base
has_many :trips, :primary_key => "route_id"
end

class Trip < ActiveRecord::Base
belongs_to :route, :primary_key => "route_id"
end

关于mysql - Rails 事件模型协会问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com