【发布时间】:2019-04-16 00:06:11
【问题描述】:
我不知道为什么我不能使用rake -T 或bundle exec rake -T
# app.rb
require 'rubygems'
require 'sinatra'
require "sinatra/activerecord"
class App < Sinatra::Base
#configuraciones
set :root, File.dirname(__FILE__)
set :session_secret, 'super secret'
set :public_folder, File.dirname(__FILE__) + '/public'
set :layout, 'views/layouts'
set :database, {adapter: "sqlite3", database: "data"}
enable :sessions
#before all requests
before do
headers['server'] = 'Ruby, Ubuntu'
end
#registro de helpers de la aplicacion
helpers Sinatra::App::Helpers::Applicaction
helpers Sinatra::App::Helpers::Filters
#registro de helpers de routes
helpers Sinatra::App::Helpers::ErrorHelper
#registro de rutas
register Sinatra::App::Routing::Home
register Sinatra::App::Routing::Departamento
register Sinatra::App::Routing::Provincia
register Sinatra::App::Routing::Error
end
# Rakefile.rb
require 'sinatra'
require "sinatra/activerecord/rake"
require './app'
# config.ru
require_relative 'config/boot'
require File.dirname(__FILE__) + '/app'
run App
这是错误信息:
PS C:\ruby\sinatra> bundle exec rake -T
WARNING: If you plan to load any of ActiveSupport's core extensions to Hash, be
sure to do so *before* loading Sinatra::Application or Sinatra::Base. If not,
you may disregard this warning.
rake aborted!
NameError: uninitialized constant Sinatra::App
C:/ruby/sinatra/app.rb:18:in `<class:App>'
C:/ruby/sinatra/app.rb:5:in `<top (required)>'
C:/ruby/sinatra/Rakefile.rb:4:in `<top (required)>'
(See full trace by running task with --trace)
PS C:\ruby\sinatra>
这是文件结构:
更新 首先更改 app.rb
helpers Sinatra::App::Helpers::Application
这是 helpers.rb
module Sinatra
module App
module Helpers
module Application
def load_css(csss)
rpta = ''
if defined? csss
csss.each do |css|
temp = '<link href="' + CONSTANTS[:static_url] + css + '.css" rel="stylesheet"/>'
rpta = rpta + temp
end
end
rpta
end
def load_js(jss)
rpta = ''
if defined? jss
jss.each do |js|
temp = '<script src="' + CONSTANTS[:static_url] + js + '.js" type="text/javascript"></script>'
rpta = rpta + temp
end
end
rpta
end
end
end
end
end
我有同样的错误
【问题讨论】:
-
错误似乎是指
helpers Sinatra::App::Helpers::Applicaction这一行——Sinatra::App::Helpers::Applicaction在哪里定义?那是正确的命名空间吗?你能显示它的来源吗? -
如果你把
require "sinatra/activerecord/rake"放在rakefile 的第一行会发生什么? -
Applicaction是错字吗? -
@Stefan 我会告诉你我把代码忘在家里了
-
@lacostenycoder 我想我做到了,但我会再试一次