Ruby:'/ signup'中的NameError未初始化的常量用户

时间:2017-07-11 18:46:19

标签: ruby sinatra sinatra-activerecord

我是Ruby的新手,正在创建一个在提交时创建新用户的表单。我已经创建了我的数据库(rake:12.0.0)并且能够在使用tux时编辑它(所以我假设我的模型文件是正确的)。我正在使用Sinatra启动网站(有效),但是当我提交表单时,我收到此错误: NameError at'/ signup'ininitialized constant User 。鉴于我能够在tux中编辑数据库,我假设我的actions.rb文件没有访问模型文件,但我不知道为什么。

ruby​​:2.4.1

美洲狮:3.9.1

sinatra:2.0.0

tux:0.3.0

我查看过具有类似主题的其他主题,但似乎无法弄清问题是什么。任何帮助都会很棒!谢谢

如果您需要任何其他信息,请告诉我们!

这是我的models / user.rb文件:

class User < ActiveRecord::Base

  validates_uniqueness_of :email, :phone_number

end

actions.rb

require 'sinatra'
require 'rubygems'

set :public_folder, 'public'
post '/signup' do
  [...params -> this section works so I omitted it]

  # Instantiate and save a User
  @user = User.create({firstname: firstname, lastname: lastname, email: email})
end

的Gemfile

source "https://rubygems.org"

gem 'rake'
gem 'activesupport'

gem 'sinatra'
gem 'sinatra-contrib'
gem 'sinatra-activerecord'

# gem 'puma'
gem 'tux'

group :development, :test do
  gem 'pry'
  gem 'shotgun'
  gem 'sqlite3'
end

1 个答案:

答案 0 :(得分:0)

您需要使用user.rb文件。在你的actions.rb文件中试试这个:

require_relative 'user'