我正在构建一个基于this rails cast的简单聊天应用。我跟着很好,但是当我去localhost时,我得到一个错误“未初始化的常量MessagesController :: Message”。这通常是一个简单的修复,但我花了一个多小时寻找修复,我看不到它。这是我的代码;
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
model(message.rb)
class Message
end
指数&amp;消息表单(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
的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"
我已经检查过每一个我能想到的事情,为什么我会得到这个错误,我真的不知道为什么。任何帮助将非常感激。
另外,为了使用私人酒吧,我是否必须运行两个终端窗口,一个运行rails服务器,另一个运行faye?
答案 0 :(得分:2)
您的模型为@Messages
,将其更改为@message
。
要改变它,就像你应该使用迁移一样:
def change
rename_table :old_table_name, :new_table_name
end
当然不要手动创建该文件,而是使用rails generator:
rails g migration ChangeMessagesToMessage
这将在'db
目录中生成名称中包含正确时间戳的新文件。然后运行:
rake db:migrate
从那以后你的应用应该没问题。