Ruby on Rails变形问题

时间:2011-01-13 17:33:10

标签: ruby-on-rails inflection

我正在使用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

2 个答案:

答案 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