NameError截断模型名称

时间:2014-05-14 16:31:22

标签: ruby-on-rails ruby-on-rails-4

我似乎对Rails约定存在问题(我认为)。我有以下类给我一个NameError,错误看起来像     '未初始化的常数Store :: Campu' (我没有拼错校园,它在错误页面中显示如下)

模型

Store (store.rb)
 has_many :campus

Campus (campus.rb)
  belongs_to :store

要在索引页面显示所有商店,我有以下索引操作可以正常工作。

def index
  @stores = Store.all
end

然后允许用户执行诸如导航到创建文件页面之类的操作。

def create_import_file
  @stores = Store.find_by params[:id]
  render 'create_file'

end

我不知道我错过了什么错误。感谢您寻求任何帮助。

更新

 Store (store.rb)
   has_many :campuses
  validates :store_id, presence: true, uniqueness: true, numericality: { only_integer: true } (adding this for good measure. This is everything from my model classes so far)
Campus (campus.rb)
  self.table_name = "campuses" (Note: I couldn't get this to work without adding this entry.)
  belongs_to :store

到目前为止,我有两张桌子。商店和校园列如下:

stores
  + id
  + store_id
  + created_at
  + updated_at
campuses
  + id
  + campus_id
  + campus_name
  + created_at
  + updated_at

解决方案

这对我有用

事实证明,Rails存在多元化"校园"的问题。作为新人,我不知道发生了什么。在我的config / initializers / inflections.rb中添加一行修复了这个问题。

现在使用它可以将所有内容命名为' campus'。

ActiveSupport::Inflector.inflections(:en) do |inflect|   
  inflect.uncountable "campus"
end

1 个答案:

答案 0 :(得分:1)

您必须在此处使用plural表格

Store (store.rb)
has_many :campus

应该是

Store (store.rb)
has_many :campuses # here