Ruby 未初始化的常量消息控制器
我正在基于构建一个简单的聊天应用程序。我很好地遵循了这一点,但当我转到localhost时,我得到一个错误“uninitialized constant messages控制器::Message”。这通常是一个简单的修复,但我已经花了一个多小时寻找修复,但我看不到它。这是我的密码 信息与控制器Ruby 未初始化的常量消息控制器,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,我正在基于构建一个简单的聊天应用程序。我很好地遵循了这一点,但当我转到localhost时,我得到一个错误“uninitialized constant messages控制器::Message”。这通常是一个简单的修复,但我已经花了一个多小时寻找修复,但我看不到它。这是我的密码 信息与控制器 class MessagesController < ApplicationController def index @messages = Message.all
class MessagesController < ApplicationController
def index
@messages = Message.all
end
def create
@message = Message.create!(params[:message])
PrivatePub.publish_to("/messages/new", "alert('#{@message.content}');")
end
end
索引和消息表单(index.html.erb)
gemfile
source 'https://rubygems.org'
gem 'rails', '4.0.0'
gem 'sqlite3'
group :assets do
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
end
gem 'jquery-rails'
gem 'private_pub'
gem "thin", "~> 1.6.1"
我已经检查了我能想到的每一件可能的事情,关于为什么我会得到这个错误,我真的不知道为什么。任何帮助都将不胜感激
另外,要使用private pub,我是否必须运行两个终端窗口,一个运行rails服务器,另一个运行faye?您的模型是
@Messages
,将其更改为@message
要像使用迁移一样对其进行更改,请执行以下操作:
def change
rename_table :old_table_name, :new_table_name
end
当然,不要手动创建该文件,而是使用rails生成器:
rails g migration ChangeMessagesToMessage
这将在'db
目录中生成名为正确时间戳的新文件。然后运行:
rake db:migrate
从那时起,你的应用程序就应该很好。你创建了一个名为Message的模型吗?请把密码寄出去。是的。我刚刚更新了。正如@zrl3dx指出的,将您的型号名称从
Messages
更改为Messages
,不幸的是,我仍然得到了错误;NameError(未初始化的常量messages控制器::Message):app/controllers/messages\u controller.rb:4:在'index'中,我将其更改为Message.rb,但仍然出现此错误;NameError(未初始化的常量MessagesController::Message):app/controllers/messages\u controller.rb:4:在'index'中,不仅要重命名它,还要将内容更改为class Message
I所做的,文件是Message.rb和“class Message”。这修正了常数,但现在我得到一个错误;“Message:Class的未定义方法'all'”现在Message
类只是一个原始类<代码>类消息def change
rename_table :old_table_name, :new_table_name
end
rails g migration ChangeMessagesToMessage
rake db:migrate