我正在使用Ruby on Rails为我玩的游戏创建一个网站。
我有User
模型和Starbase
模型。我试图设置的关系是这样的
class User < ActiveRecord::Base
has_many :starbases
end
class Starbase < ActiveRecord::Base
belongs_to :user
end
但是,当我打开脚本/控制台并尝试访问用户的星号时,它会给我一个错误:NameError: uninitialized constant User::Starbasis
。
看起来好像是拐点的问题而且轨道没有使星基校正多元化。
我尝试将其添加到intializers文件夹中的inflections.rb:
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural 'starbase', 'starbases'
end
但它仍然无法解决问题。任何人都可以就如何使其发挥作用提出建议吗?
啦啦队
EEF
答案 0 :(得分:5)
您是否尝试为反向拐点添加一条线(即“奇异”):
inflect.singular "starbases", "starbase"
我在我的控制台中尝试了你的例子,这是导致问题的单一化,而不是相反。我不确定这是否解决了其他问题(如路线),但它应该修复简单的东西(我认为)。
答案 1 :(得分:0)
我接受了一些小技巧来仔细检查Active Support如何单一化,或者复制我的类名和/或模块名称。
让您的rails应用服务器运行,并在新选项卡中输入rails console
进入您的rails控制台。在那里,您可以轻松地仔细检查您的名字的正确样式。
很长的路 ActiveSupport::Inflector.pluralize "fish"
# => "fish"
简短 "fish".pluralize
# => "fish"
您可以在此处找到更多示例
https://github.com/rails/rails/blob/master/activesupport/test/inflector_test_cases.rb