Sinatra App - 分离关注点
Sinatra App - Separating Concerns
可能是一些非常基本的东西,但我希望能够将我的 Sinatra 路由与控制器分开。我的 routes.rb
:
中有这段代码
require 'sinatra/base'
class Server < Sinatra::Base
get '/' do
Action.index
end
end
这是我的controller/server.rb
class Action
def sef.index
@user = User.new("Abiodun Shuaib")
haml: index
end
end
它给出了错误undefined method 'haml' in Action:Class
。
我该如何解决这个问题?
您正在尝试访问 class 操作中的方法 haml。它根本不包含它。
例如,您可以这样做:
class Server
def index
@user = User.new("Abiodun Shuaib")
haml :index
end
end
通过这样做,您将添加到服务器方法索引。
或者你也可以这样做(这叫做Mixin):
module ActionNew
def index
@user = User.new("Abiodun Shuaib")
haml :index
end
end
class Server < Sinatra::Base
include ActionNew
get '/' do
index
end
end
可能是一些非常基本的东西,但我希望能够将我的 Sinatra 路由与控制器分开。我的 routes.rb
:
require 'sinatra/base'
class Server < Sinatra::Base
get '/' do
Action.index
end
end
这是我的controller/server.rb
class Action
def sef.index
@user = User.new("Abiodun Shuaib")
haml: index
end
end
它给出了错误undefined method 'haml' in Action:Class
。
我该如何解决这个问题?
您正在尝试访问 class 操作中的方法 haml。它根本不包含它。 例如,您可以这样做:
class Server
def index
@user = User.new("Abiodun Shuaib")
haml :index
end
end
通过这样做,您将添加到服务器方法索引。
或者你也可以这样做(这叫做Mixin):
module ActionNew
def index
@user = User.new("Abiodun Shuaib")
haml :index
end
end
class Server < Sinatra::Base
include ActionNew
get '/' do
index
end
end