我有三种型号的(RailwayStation,路由和连接表RailwayStationsRoute)
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 -连接表中的整数字段)。
当我写代码时:
<% @route.railway_stations.each do |station| %>
<%= station.railway_stations_routes.inspect %><%= station.title %>展示:
ActiveRecord::Associations::CollectionProxy [#<RailwayStationsRoute id: 2, railway_station_id: 2, route_id: 1, station_number: 2>]Saint-Petersburg在那里我们可以看到station_number
但如果我把检查改为station_number..。展示:
undefined method `station_number' for #<RailwayStationsRoute::ActiveRecord_Associations_CollectionProxy:0x007fc3cffe3ef0> Saint-Petersburg因为我在station_number模型中没有railwayStation方法
接下来,我在联接表中创建了作用域:
scope :ttt, -> { select('railway_stations.*,
railway_stations_routes.station_number') }及已修改的代码:
<%= station.railway_stations_routes.ttt %><%= station.title %>展示:
#<RailwayStationsRoute::ActiveRecord_AssociationRelation:0x007fc3cff15190>Saint-Petersburg问:如何使这一结果以数字格式(station_number)进行?
(如下代码所示)
2 Saint-Petersburg发布于 2017-11-10 09:13:32
尝尝这个
<% @route.railway_stations.select("railway_stations.*,railway_stations_routes.station_number").each do |station| %>
<%= station.station_number %><%= station.title %>
<%end%>https://stackoverflow.com/questions/47217696
复制相似问题