Sinatra App - 分离问题

时间:2015-08-18 05:43:38

标签: ruby rubygems sinatra haml

可能是一些非常基本的东西,但我希望能够将我的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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您正在尝试访问Action类中的方法haml。它根本不包含它。 例如,你可以这样做:

class Server
  def index
    @user = User.new("Abiodun Shuaib")
    haml :index
  end
end

通过执行此操作,您将添加到Server方法索引。

或者你可以这样做(它叫做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