SQLite3 :: SQLException:没有这样的表:messages:SELECT“messages”。* FROM“messages”

我正在制作一个基于此railscast的简单聊天应用程序。 我发布了另一个关于此的问题,但我愚蠢地没有添加模型,然后我将其命名为错误。

但是,现在已经修复了。 问题是,我甚至不确定我是否需要数据库。 我本来打算完成这个,然后将它上传到heroku上就可以玩了。 我不想存储消息,但如果有必要,那么我会。 这是我的代码。

index.html.erb

Hack Chat

控制器;

 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 

模型;

 class Message < ActiveRecord::Base end 

航线;

 Hackchat::Application.routes.draw do root to: 'messages#index' resources :messages end 

的Gemfile;

 source 'https://rubygems.org' gem 'rails', '4.0.0' gem "rake", "~> 10.1.1" 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" 

我运行bundle exec rake db:create,bundle exec rake db:migrate,我仍然得到错误;

 ActionView::Template::Error (SQLite3::SQLException: no such table: messages: SELECT "messages".* FROM "messages"): 1: 

Hack Chat

2: 3:
    4: 5:
6: 7: app/views/messages/index.html.erb:4:in `_app_views_messages_index_html_erb__3441634471849115078_70351149151260'

任何和所有的帮助将不胜感激。

 @messages = Message.all 

告诉Rails应用程序查询数据库中消息表中的每条消息。 因此,如果您想以这种方式使用Rails应用程序,那么是的,您必须拥有某种messages表。 您说您不打算存储消息,因此index操作应转到空白聊天屏幕。 所以只需摆脱@messages = Message.all 。 如果你想要一个滚动的聊天消息列表,我想你可以把每一行写成一个数组并让索引页显示出来。 只需在聊天会话开始时将该数组设置为空白即可。