【问题标题】:Ruby: NameError at '/signup' uninitialized constant UserRuby:'/signup'未初始化常量用户的NameError
【发布时间】:2017-07-12 03:39:45
【问题描述】:

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

红宝石:2.4.1

彪马:3.9.1

辛纳特拉:2.0.0

晚礼服:0.3.0

我查看了具有类似主题的其他主题,但似乎仍然无法弄清楚问题所在。任何帮助都会很棒!谢谢

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

这是我的模型/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

宝石文件

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

【问题讨论】:

    标签: ruby sinatra sinatra-activerecord


    【解决方案1】:

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

    require_relative 'user'
    

    【讨论】:

    • 谢谢!我还必须在我的 user.rb 中建立与 Active Records 的连接,但它现在可以工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多