如何使用模块化的 Sinatra APP 将数据存储到 Activerecord 中?
How to store data into Activerecord with a modular Sinatra APP?
我是 Sinatra 的新手。我想在我的应用程序中使用模块化风格。
我希望用户输入一些文本,这些文本将存储到名为 "Tweet" 的模型中。
但是,当我提交文本时,它一直显示错误消息"NameError - uninitialized constant MiniDemo::Tweet:"。
config.ru如下:
require './app'
run MiniDemo
在app.rb中,代码如下:
require 'sinatra/base'
require_relative './routes/simple.rb'
class MiniDemo < Sinatra::Base
set :views, __dir__ + '/views'
set :public_folder, __dir__ + '/public'
if __FILE__ == [=11=]
run!
end
end
routes文件夹中的simple.rb文件如下:
require 'sinatra/base'
class MiniDemo < Sinatra::Base
get '/' do
# "Hello from my Mini Demo.\nNew Test."
erb :index
end
post '/tweet' do
Tweet.create(content: params[:content])
end
end
erb文件如下:
<!DOCTYPE html>
<html>
<head>
<script src='javascripts/twitter.js'></script>
</head>
<body>
<form method="POST" action="/tweet">
<p>Your Tweet: <input type="text" name="content"></p>
<input type="submit" id='btn-submit' value="Tweet">
</form>
</body>
</html>
推文模型是:
require 'sinatra/activerecord'
require 'sinatra/base'
class Tweet < ActiveRecord::Base
end
你能给我一些建议吗?
非常感谢。
找到原因了。我忘记在 app.rb 文件中要求模型推文。我所做的是在 app.rb 文件中包含以下行。 require_relative './models/tweet.rb'
我是 Sinatra 的新手。我想在我的应用程序中使用模块化风格。
我希望用户输入一些文本,这些文本将存储到名为 "Tweet" 的模型中。 但是,当我提交文本时,它一直显示错误消息"NameError - uninitialized constant MiniDemo::Tweet:"。
config.ru如下:
require './app'
run MiniDemo
在app.rb中,代码如下:
require 'sinatra/base'
require_relative './routes/simple.rb'
class MiniDemo < Sinatra::Base
set :views, __dir__ + '/views'
set :public_folder, __dir__ + '/public'
if __FILE__ == [=11=]
run!
end
end
routes文件夹中的simple.rb文件如下:
require 'sinatra/base'
class MiniDemo < Sinatra::Base
get '/' do
# "Hello from my Mini Demo.\nNew Test."
erb :index
end
post '/tweet' do
Tweet.create(content: params[:content])
end
end
erb文件如下:
<!DOCTYPE html>
<html>
<head>
<script src='javascripts/twitter.js'></script>
</head>
<body>
<form method="POST" action="/tweet">
<p>Your Tweet: <input type="text" name="content"></p>
<input type="submit" id='btn-submit' value="Tweet">
</form>
</body>
</html>
推文模型是:
require 'sinatra/activerecord'
require 'sinatra/base'
class Tweet < ActiveRecord::Base
end
你能给我一些建议吗? 非常感谢。
找到原因了。我忘记在 app.rb 文件中要求模型推文。我所做的是在 app.rb 文件中包含以下行。 require_relative './models/tweet.rb'