Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无法访问与“”相关的模型_Ruby On Rails_Ruby_Activerecord_Relational Database_Has One - Fatal编程技术网

Ruby on rails 无法访问与“”相关的模型

Ruby on rails 无法访问与“”相关的模型,ruby-on-rails,ruby,activerecord,relational-database,has-one,Ruby On Rails,Ruby,Activerecord,Relational Database,Has One,我有两种型号:Show和vention。展会有一个场馆,而每个场馆都属于展会。该条件在两个模型文件中都定义为有一个和属于语句。但是,我无法通过执行show.venture访问场馆。考虑下面的代码,其中S是代码>显示< /COD>实例: logger.info("*********************") logger.info("#{s.inspect}") logger.info("#{Venue.find(s.venue_id)}") # Works logger.info("#{s.v

我有两种型号:
Show
vention
。展会有一个场馆,而每个场馆都属于展会。该条件在两个模型文件中都定义为
有一个
属于
语句。但是,我无法通过执行
show.venture
访问场馆。考虑下面的代码,其中S是代码>显示< /COD>实例:

logger.info("*********************")
logger.info("#{s.inspect}")
logger.info("#{Venue.find(s.venue_id)}") # Works
logger.info("#{s.venue}") # Causes a MySQL Error
logger.info("*********************")
我觉得导致MySQL错误的代码行应该可以工作。这就是错误:

ActiveRecord::StatementInvalid (Mysql::Error: Unknown column 'venues.show_id' in 'where clause': SELECT * FROM `venues` WHERE (`venues`.show_id = 95)  LIMIT 1)

我不知道它为什么要访问
场馆。显示id
。有什么想法吗?

外键颠倒了。在ActiveRecord的约定中,具有所属对象的类应使用外键映射到数据库表。请参阅:“在具有外键的模型中始终使用“属于”关联。”如果您考虑一下“属于”与“有一”和“有多”交互的方式(因为您显然无法将外键放在“有多”模型中),这会有一定的意义。

您将外键反转。在ActiveRecord的约定中,具有所属对象的类应使用外键映射到数据库表。请参阅:“在具有外键的模型中始终使用“归属于”关联。”如果您考虑一下“归属于”与“有一”和“有多”交互的方式,这是有道理的(因为您显然不能将外键放入“有多”模型中)。

我想我有点困惑,因为我这样想:“如果一个节目有一个场地,那么一个节目就有一个场地id来引用该场地。”但我必须开始思考“如果一个节目属于一个场地,它必须是它所属场地的id。”我想我有点困惑,因为我这样想:“如果一个节目有一个场地,那么一个节目就有一个场地id来引用该场地。“但我必须开始思考”如果某个节目属于某个场馆,则必须提供该节目所属场馆的id。”