ruby - 从另一个类访问 Sinatra 作用域

标签 ruby scope sinatra

我正在运行一个 Sinatra 应用程序,其中包含一些额外的类,用于创建用户和动态创建的其他一些类(没有数据库,它从 Web 服务提供)。我正在尝试从我的用户模型中发送 Flash 通知(使用 https://github.com/nakajima/rack-flash ),但无法弄清楚如何访问 flash 方法/变量,因为我超出了范围。

类似于:

class User
  def something
    if true
      flash[:notice] = 'Good job'
    else
      # nope
    end
  end
end

通过简单的 require 'models/user' 即可将其引入 Sinatra 应用程序

最佳答案

这是一个 XY 问题[1]。 Sinatra 负责发送 flash 消息,而不是您的 User 对象,因此设置 flash 的代码应该位于您的 Sinatra 应用程序中,而不是您的 User 类中。

[1] http://www.perlmonks.org/index.pl?node_id=542341

关于ruby - 从另一个类访问 Sinatra 作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5543615/

相关文章:

Ruby 系统方法参数

ruby-on-rails - 安装mysql gem时出错

ruby - 将 XML 元素添加到 Nokogiri::XML::Builder 文档

rest - Sinatra 和 AngularJS 之间的 CORS 问题

ruby-on-rails - 批量更新属性

ruby - 从字符串中删除重复的数字和运算符

javascript - AngularJS : ng-repeat over custom directive with isolate scope

javascript - 为什么使用表达式对变量进行 parseInt 不显示 $scope 变量?

vb.net - VB 2010 'variable' 未声明。由于它的保护级别,它可能无法访问

ruby - 经典sinatra和模块化sinatra的性能?我做错了吗?