未初始化的常量 MessagesController [英] Uninitialized Constant MessagesController

查看:48
本文介绍了未初始化的常量 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆