1
我有我的路線和幫助者在外部文件中定義幷包含在Sinatra中,但是我是Ruby的新手,我現在無法弄清楚如何在我的路線中使用我的幫助器方法。當我運行在RubyMine的代碼和訪問個人資料網址我得到的錯誤「NoMethodError - 未定義的方法'保護'!」如何在包含的模塊中使用我的Sinatra助手?
## Main class
require 'sinatra/base'
class MyApp < Sinatra::Base
register Sinatra::MyHelpers
register ProfileRoutes
...
end
## Helpers include
require 'sinatra/base'
module Sinatra
module LocutusHelpers
def self.registered(app)
app.before do
...
end
def protected!
...
end
end
end
end
## Routes include
require 'sinatra/base'
module ProfileRoutes
def self.registered(app)
app.get '/profile/:userid' do
protected!
...
end
end
end
我試過def self.protected!
的助手,但隨後它不能訪問請求對象。 我也試過Sinatra::MyHelpers.protected!
,Sinatra.protected!
和app.protected!
,錯誤拋出的所有的這些也
你知道我可以從我的路由訪問傭工?或者我有不正確的設置?