【发布时间】:2016-04-06 05:47:37
【问题描述】:
我刚刚开始处理sinatra,现在我的应用程序无法导航到路由并从数据库获取数据,我总是得到 404。这就是我正在做的。
文件结构
app
|---->helpers
|----->models
|----->public
|----->routes
| |------->candidate.rb
| |------->init.rb
|----->app.rb
|----->config.ru
config.ru
require './app'
run MyApp
app.rb
require 'json'
require 'sinatra'
require 'data_mapper'
require 'dm-migrations'
require 'sinatra/cross_origin'
require 'logger'
require './models/init'
require './helpers/init'
require './routes/init'
class MyApp < Sinatra::Base
configure :development do
enable :cross_origin
DataMapper::Logger.new($stdout, :debug)
DataMapper.setup(
:default,
'mysql://root:@localhost/hackerrank'
)
end
get '/' do
File.read(File.join('public', 'index.html'))
end
DataMapper.finalize
end
命令
bundle exec rackup -p 4567 config.ru
candidate.rb 中的 api 是正确的,但如果我尝试以 http://localhost:4567/#/recruiter 的身份访问资源,我会得到 404 。
我无法弄清楚我在这里做错了什么。
【问题讨论】:
-
您是否阅读过有关在 Sinatra 中使用 ERB 的文档? ERB 或 HAML 是在 Sinatra 应用程序中呈现页面的首选方法。
-
我正在经历所有这些,如果您能帮助我解决上述问题,我将不胜感激。
-
另外,如果您是 Ruby 新手,我建议您使用 ActiveRecord 或 Sequel 作为 ORM 而不是 DataMapper。当我拿起 Ruby 时,我用了 3 个黑暗的月份使用数据映射器,然后才转向 AR,它更容易使用。