我正试图建立一个非常简单的表格,为我的婚礼登记与会者。这在某种程度上是一个草案,因为我不知道我将使用Sinatra还是Rails。我将设置预定的电子邮件,以通知客人和我自己的婚礼细节。
因此,无论如何,这里是代码,我无法获得任何东西,以持久化数据库使用插入语法。有些代码被省略了。这只是关于邮政的问题。
require "sinatra"
require "sequel"
require "sqlite3"
DB = Sequel.connect('sqlite://pauley_wedding.db')
DB.create_table! :attendees do
primary_key :id
string :fname
string :lname
string :phone
string :email
end
@attendees = DB[:attendees]以下是路线/意见:
get '/' do
erb :index, :layout => :layout
end
get '/about' do
erb :about, :layout => :layout
end
get '/rsvp' do
erb :rsvp, :layout => :layout
end
post '/rsvp' do
@attendees.insert(:fname => params[:fname], :lname => params[:lname], :phone =>
params[:phone], :email => params[:email])
redirect '/confirm_rsvp'
end
get '/confirm_rsvp' do
erb :confirmation, :layout => :layout
end
get '/admin' do
erb :admin, :layout => :layout
@attendees
end
@@rsvp
<style>
h1 {
color: tan;
}
.lead {
color: tan;
}
</style>
<h1><p class="lead">Sign up!</p></h1>
<form action="/rsvp" method="POST">
<p class="lead">First Name:</p><br /><input type="text" name="fname"><br /><br />
<p class="lead">Last Name:</p><br /><input type="text" name="lname"><br /> <br />
<p class="lead">Phone Number:</p><br /><input type="text" name="phone"><br /><br />
<p class="lead">Email Address:</p><br /><input type="text" name="email">
<hr />
<button class="btn btn-primary" input type="submit">Sign Up!</button>
</form>发布于 2015-06-08 15:15:48
第一个代码块中的@attendees似乎与第二个代码块中的@attendees不同。在第一个代码块中,@attendees设置为看似顶级的代码.在第二个代码块中,@attendees在路由中使用,这将是您正在使用的Sinatra类的一个实例。您可以尝试使用ATTENDEES (常量)而不是实例变量。您还可以添加数据库记录器require 'logger'; DB.loggers << Logger.new($stdout),以查看Sequel将向数据库发送什么内容。
https://stackoverflow.com/questions/30697670
复制相似问题