我正在制作一个基于在这条铁路上的简单聊天应用程序。我发布了另一个关于这个问题,但我愚蠢地没有添加一个模型,然后我错误地命名它。
然而,现在这个问题已经解决了。问题是,我甚至不确定我是否需要一个数据库。我本来打算完成这个,然后把它上传到heroku上去玩。我不想储存信息,但是如果有必要的话,我会的。这是我的密码。
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" %>控制器;
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宝石档案;
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: <h1>Hack Chat</h1>
2:
3: <ul id="chat">
4: <%= render @messages %>
5: </ul>
6:
7: <%= form_for Message.new, remote: true do |f| %>
app/views/messages/index.html.erb:4:in `_app_views_messages_index_html_erb__3441634471849115078_70351149151260'任何和所有的帮助都将不胜感激。
发布于 2014-01-01 01:31:48
@messages = Message.all告诉Rails应用程序查询消息表中的每一条消息。因此,如果您想以这种方式使用Rails应用程序,那么是的,您必须有某种类型的messages表。您说您不想存储消息,所以index操作应该转到一个空聊天屏幕上。所以只要摆脱@messages = Message.all就行了。如果您想拥有一个滚动的聊天消息列表,我想您可以将每一行写到一个数组中,并让索引页显示出来。只需在聊天会话开始时将该数组设置为空白即可。
https://stackoverflow.com/questions/20864584
复制相似问题