Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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_Many To Many_Associations - Fatal编程技术网

Ruby on rails 关联设置正确会导致未初始化常量

Ruby on rails 关联设置正确会导致未初始化常量,ruby-on-rails,ruby,many-to-many,associations,Ruby On Rails,Ruby,Many To Many,Associations,我通过userstack在User和stack之间建立了一个简单的many-to-many关系,所有设置似乎都正确,但会导致名称错误(未初始化常量User::stacks): #db/schema.rb ActiveRecord::Schema.define(版本:2020_12_19_0749)do 创建表格“木桩”,强制::级联do | t| t、 字符串“地址” t、 datetime“created_at”,精度:6,空值:false t、 日期时间“更新时间”,精度:6,空值:fals

我通过
userstack
User
stack
之间建立了一个简单的
many-to-many
关系,所有设置似乎都正确,但会导致
名称错误(未初始化常量User::stacks)

#db/schema.rb
ActiveRecord::Schema.define(版本:2020_12_19_0749)do
创建表格“木桩”,强制::级联do | t|
t、 字符串“地址”
t、 datetime“created_at”,精度:6,空值:false
t、 日期时间“更新时间”,精度:6,空值:false
结束
创建表格“用户赌注”,强制::级联do | t|
t、 整数“用户id”
t、 整数“桩号”
t、 datetime“created_at”,精度:6,空值:false
t、 日期时间“更新时间”,精度:6,空值:false
结束
创建“用户”表,force::cascade do | t|
t、 字符串“用户名”
t、 datetime“created_at”,精度:6,空值:false
t、 日期时间“更新时间”,精度:6,空值:false
t、 字符串“密码摘要”
结束
结束
#app/models/stack.rb
类桩<应用记录
有很多:活跃的股份
有很多:用户赌注
有很多:用户,通过::用户
结束
#app/models/user.rb
类用户<应用程序记录
有很多:用户赌注
有很多:赌注,通过::用户赌注
有安全的密码吗
结束
#app/models/user_stake.rb
类userstack
当我通过
rails c
尝试关联时,会出现以下错误
NameError(未初始化的常量用户::木桩)

2.6.3:019>s
=> # 
2.6.3:020>u
=> # 
2.6.3:021>u.Pigs u.Pigs
回溯(最近一次呼叫最后一次):
2:from(irb):22
1:from(irb):22:in“irb_绑定中的救援”
NameError(未初始化的常量用户::木桩)

属于协会必须使用单数术语

#app/models/user_stake.rb
class UserStake < ApplicationRecord
    belongs_to :user
    belongs_to :stake
end
#app/models/user_stake.rb
类userstack


属于协会的必须使用单数术语。如果您在上述示例中使用复数形式表示Book模型中的author关联,并尝试按Book.create(authors:@author)创建实例,您将被告知存在“未初始化常量Book::authors”。这是因为Rails会自动从关联名推断类名。如果关联名称的复数形式错误,那么推断出的类也将错误地复数形式