我正在构建一个应用程序来为星球大战RPG生成角色.我添加了Species模型.Species是复数的单数,这是一个循环.我可以通过使用在应用程序中使路由正常工作species_index_path,但由于某种原因,has_many :characteristics, :through => :species_characteristics它不是在一个方向上工作.
例如,我有两个模型在控制台中正确播种(和工作):Characteristics和Species.Characteristics按以下方式设置:
class Characteristic < ActiveRecord::Base
has_many :species_characteristics
has_many :species, :through => :species_characteristics
has_many :skills
end
Run Code Online (Sandbox Code Playgroud)
Species 按以下方式设置:
class Species < ActiveRecord::Base
has_many :species_characteristics
has_many :characteristics, :through => :species_characteristics
end
Run Code Online (Sandbox Code Playgroud)
他们之间的模型只有一个belongs_to.
如果我Characteristic.first.species从控制台打电话,我会得到与该特征相关的物种清单.
Species.first.characteristics但是,如果我打电话,我会得到以下信息:
NameError: uninitialized constant Species::Characteristics
Run Code Online (Sandbox Code Playgroud)
我期待增加一个新的变形,或者某种方式,但我什么都没有.有没有人有更好的方法将模型重命名为Race?
has_many由于未初始化的常量错误,关系不能仅在一个方向上起作用,可能是由于拐点问题.除了重命名模型之外,还有什么方法可以修复它吗? ruby initialization ruby-on-rails inflection ruby-on-rails-4