首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从连接表显示

从连接表显示
EN

Stack Overflow用户
提问于 2017-11-10 07:28:52
回答 1查看 29关注 0票数 0

我有三种型号的(RailwayStation,路由和连接表RailwayStationsRoute)

代码语言:javascript
复制
class RailwayStationsRoute < ApplicationRecord
  belongs_to :railway_station
  belongs_to :route 

class Route < ApplicationRecord
  has_many :railway_stations_routes
  has_many :railway_stations, through: :railway_stations_routes

class RailwayStation < ApplicationRecord
  has_many :railway_stations_routes
  has_many :routes, through: :railway_stations_routes

我的任务:通过序号查看路由(show.html.erb)显示站点列表(station_number -连接表中的整数字段)。

当我写代码时:

代码语言:javascript
复制
<% @route.railway_stations.each do |station| %>
<%= station.railway_stations_routes.inspect %><%= station.title %>

展示:

代码语言:javascript
复制
ActiveRecord::Associations::CollectionProxy [#<RailwayStationsRoute id: 2, railway_station_id: 2, route_id: 1, station_number: 2>]Saint-Petersburg

在那里我们可以看到station_number

但如果我把检查改为station_number..。展示:

代码语言:javascript
复制
undefined method `station_number' for #<RailwayStationsRoute::ActiveRecord_Associations_CollectionProxy:0x007fc3cffe3ef0> Saint-Petersburg

因为我在station_number模型中没有railwayStation方法

接下来,我在联接表中创建了作用域:

代码语言:javascript
复制
scope :ttt, -> { select('railway_stations.*, 
           railway_stations_routes.station_number') }

及已修改的代码:

代码语言:javascript
复制
<%= station.railway_stations_routes.ttt %><%= station.title %>

展示:

代码语言:javascript
复制
#<RailwayStationsRoute::ActiveRecord_AssociationRelation:0x007fc3cff15190>Saint-Petersburg

问:如何使这一结果以数字格式(station_number)进行?

(如下代码所示)

代码语言:javascript
复制
2 Saint-Petersburg
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 09:13:32

尝尝这个

代码语言:javascript
复制
<% @route.railway_stations.select("railway_stations.*,railway_stations_routes.station_number").each do |station| %>
  <%= station.station_number %><%= station.title %>
<%end%>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47217696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档