未初始化的常量 MessagesController [英] Uninitialized Constant MessagesController
问题描述
我正在基于 这个 rails cast.我一直很好,但是当我转到本地主机时,出现错误未初始化的常量 MessagesController::Message".这通常是一个简单的修复,但我花了一个多小时寻找修复,但我看不到它.这是我的代码;
I'm building a simple chat app based on this rails cast. I'm following along fine, but when I go to localhost, I get an error "uninitialized constant MessagesController::Message". This is generally a simple fix, but I have spent over an hour looking for the fix and I cannot see it. Here is my code;
messages_controller
messages_controller
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
模型(message.rb)
model (message.rb)
class Message
end
索引&消息表单(index.html.erb);
index & message form (index.html.erb);
<h1>Hack Chat</h1>
<ul id="chat">
<%= render @messages %>
</ul>
<%= form_for Message.new, remote: true do |f| %>
<%= f.text_field :content %>
<%= f.submit "Send" %>
<% end %>
<%= subscribe_to "/messages/new" %>
routes.rb;
Hackchat::Application.routes.draw do
root to: 'messages#index'
resources :messages
end
宝石文件;
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"
我已经检查了我能想到的所有可能的事情,为什么我会收到这个错误,但我真的不知道为什么.任何帮助将非常感激.
I have checked every possible thing I could think of as to why I would be getting this error, and I really do not know why. Any help would be much appreciated.
另外,为了使用私人酒吧,我是否必须运行两个终端窗口,一个运行 rails 服务器,另一个运行 faye?
Also, for using private pub, do I have to run two terminal windows, one running rails server, and the other running faye?
推荐答案
你的模型是@Messages
,改成@message
.
像你应该使用迁移一样改变它:
To change it like you should use migration:
def change
rename_table :old_table_name, :new_table_name
end
当然不要手动创建该文件,而是使用 rails 生成器:
Of course do not create that file by hand but use rails generator:
rails g migration ChangeMessagesToMessage
这将在 'db
目录中生成名称具有正确时间戳的新文件.然后运行:
That will generate new file with proper timestamp in name in 'db
dir. Then run:
rake db:migrate
从那时起您的应用应该没问题.
And your app should be fine since then.
这篇关于未初始化的常量 MessagesController的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!