Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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/9/csharp-4.0/2.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 Rails 5:未通过类名推断表名_Ruby On Rails_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails Rails 5:未通过类名推断表名

Ruby on rails Rails 5:未通过类名推断表名,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我有以下rails模型: class Connection < ApplicationRecord belongs_to :graph has_one :node, class_name: 'Person' end 我相信这是因为它查询的是节点,而不是它需要的人 我还尝试了连接(:people),但这会导致找不到名为people的关联的错误 如何实现这一点,而不必重命名关联?在连接中/包括将关联名称(单数(如果有一个)或复数(如果有多个)放入where子句中,将表名放入: Con

我有以下rails模型:

class Connection < ApplicationRecord
  belongs_to :graph
  has_one :node, class_name: 'Person'
end
我相信这是因为它查询的是
节点
,而不是它需要的

我还尝试了
连接(:people)
,但这会导致找不到名为
people
的关联的错误


如何实现这一点,而不必重命名关联?

连接中
/
包括
将关联名称(单数(如果
有一个
)或复数(如果
有多个
)放入
where
子句中,将表名放入:

Connection.joins(:node).where(people: {first_name: 'Jane'} )

必须执行
连接(:node)
,但它随后起了作用。谢谢@点击投票赞成,因为它的
有一个
,你是对的!where子句中关于何时对表名进行复数化/不进行复数化的规则也不明确。例如,在上面的查询中,它需要复数,但在另一个查询中,它要求我使用单数表名
ImportedContact.joins(contact\u info::phones).where(contact\u info:{phone:{phone:'123'})
@ClickUpvote在我的理解中,在where子句中,您将数据库中的表的名称完全相同(不管是复数还是单数,尽管事实上,表命名约定总是使用复数)在我上次给出的示例中,我的表名称为
contact\u infos
,但除非我在where中以
contact\u info
的形式提供,否则我会得到nil:NilClass的
NoMethodError:undefined method\u reflect\u on\u association'
Connection.joins(:node).where(people: {first_name: 'Jane'} )