【发布时间】:2015-11-17 22:28:09
【问题描述】:
我在MySQL 中有一个现有的数据库,其中包含与many-to-many 关系的表:
locationchannel-
location_channel-JOIN表。
我已经创建了模型:
class Location < ActiveRecord::Base
self.table_name = "location"
has_and_belongs_to_many :channels
end
class Channel < ActiveRecord::Base
self.table_name = "channel"
has_and_belongs_to_many :locations
end
在 Rails 控制台中,我可以分别访问每个表的记录,例如:Location.all 和 Channel.all,
但是当我尝试通过以下方式访问给定location 的所有channels 时:
location = Location.first
location.channels
报错:
Mysql2::Error: Table 'mydb.channel_location' doesn't exist: SHOW FULL FIELDS FROM `channel_location`
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'switchboard_2_api_poc.channel_location' doesn't exist: SHOW FULL FIELDS FROM `channel_location`
或者:
Mysql2::Error: Table 'mydb.channel_location' doesn't exist: SHOW FULL FIELDS FROM `channel_location`
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'switchboard_2_api_poc.channel_location' doesn't exist: SHOW FULL FIELDS FROM `channel_location`
当我尝试时:
channel = Channel.first
channel.locations
我怀疑,我需要描述一个 JOIN 表 location_channel 以某种方式消除错误并打印正确的值。
【问题讨论】:
标签: mysql ruby join many-to-many ruby-on-rails-4.2