【问题标题】:Using custom classes with Sinatra在 Sinatra 中使用自定义类
【发布时间】:2012-08-10 11:52:22
【问题描述】:

我正在开发一个 Sinatra 应用程序。为了简化结构以获得更容易的未来支持,我添加了一些自定义类,它们位于单独的文件中。我正在尝试做的是让他们使用现有的帮助程序和 sinatra 自己的功能(模型、会话等),而无需重复代码。

例如,我有一个助手 to_html(text),我想在 sinatra 路由和我自己的类中都使用它,这些类也将在路由中使用。

我的 sinatra 应用程序是用 classic 风格编写的(如果您的建议很重要的话)。

有可能吗?

【问题讨论】:

  • 我猜你只需要把require 'my_class' 放在require 'sinatra' 之后,放在你用来运行服务器的主文件中。
  • 不,它没有看到辅助方法:NameError - 未定义的局部变量或方法 `current_user'
  • 请提供一个显示您所描述问题的最小代码示例。

标签: ruby sinatra


【解决方案1】:

假设您在项目的根目录中有一个 helpers 目录,您可以在用于运行服务器的应用文件中执行类似的操作。

%w(helpers).each { |p| Dir[File.join(File.dirname(__FILE__), p, "*.rb")].each { |file| require file } }

您需要在此下方包含您的路线才能正常工作。为了使这更干净,您还可以拥有一个 routes/controllers 目录。只需将“路线”添加到该数组中:

%w(helpers routes).each { |p| Dir[File.join(File.dirname(__FILE__), p, "*.rb")].each { |file| require file } }

这将需要你所有的助手 THEN 你的路线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 2011-02-24
    • 2012-08-30
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    相关资源
    最近更新 更多