问题标签 [scopes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2382 浏览

ruby-on-rails - rails 3.0中的多个范围

我是 Rails 的初学者,我的范围有问题。

我的班级有 2 个范围:

结尾

在我的控制器中,我想同时使用这两个范围。我做了:

但我不工作,我有这个错误:

这是因为第一个作用域返回一个数组。

我该怎么做才能让它发挥作用?

谢谢 !

0 投票
1 回答
1262 浏览

ruby-on-rails-3 - Rails 多租户、范围、类变量和线程安全

简洁版本

在控制器操作期间,类变量是线程安全的吗?

长版

我正在编写一个 Rails 3 应用程序,该应用程序使用单个数据库模式实现多租户tenant_id,每个表中都有列来识别数据属于谁。

自然,我需要一种方法来确定在数据库上运行的所有查询的范围,以确保对每个租户的数据访问正确隔离。

一些人建议通过始终通过tenant实例访问数据库来实现这一点,例如:

等等

但是,由于多租户是一个架构问题(而不是业务领域问题),我希望通过在全局范围内设置它来尽可能保持模型对模型透明。它也很干燥。

我发现我可以使用多租户 gem和 around_filters 来做到这一点:

这会操纵default_scope适当的模型,以便所有数据访问都自动限定在当前租户范围内。

这在开发中效果很好,但我担心线程安全。Multitenant.with_tenant将引用保留current_tenant在类变量中。

问题是当控制器操作在堆栈上时,我可以依赖该变量的完整性吗?或者它会被另一个请求破坏吗?

另外,关于 Rails 中一般并发问题的好资料是什么?

0 投票
2 回答
977 浏览

ruby-on-rails - 在 Rails 中添加模型范围的文档

我不确定这是否真的可行,但我试图通过在我们的app/models文件中添加范围的文档来使我们的 rails 应用程序的文档更加完整。我正在尝试做的是:

然后,当我在应用程序上运行 rdoc 时,我希望看到newest_records列为公共类方法以及更传统的方法,这些方法将被记录如下:

编辑

我意识到这个问题可能有点模棱两可。所以这里尝试澄清一下:目前,当我尝试在scope声明上方添加注释行时,我没有得到 RDoc 为范围生成的文档。我知道 RDoc 可以获取元方法/属性,否则它不会在用 . 声明的文档中显示属性attr_accessor。所以我的问题是如何向我的文件添加评论,以便:

  • 该方法出现在我的 RDoc 生成的文档中
  • 它显示为公共类方法(与公共实例方法等相反)
0 投票
2 回答
1642 浏览

struts2 - Struts2 和多个活动向导/工作流

我目前正在开发一个集成向导/工作流的 Struts2 应用程序,以产生所需的结果。为了更清楚,有一个业务对象在三个不同的页面上发生了变化(主要是通过 AJAX 调用)。目前,我正在使用 ModelDriven 操作(通过使用同一业务对象的所有操作进行扩展)以及 Scope 拦截器。虽然如果用户一次只处理一个业务对象的数据,这可以正常工作,但如果用户在多个选项卡中打开不同对象的向导(当我们想要更快地完成事情时,我们都会这样做)一切都会变得混乱,主要是因为我在会话中只存储了一个业务对象。

我已经阅读了几篇关于使用对话作用域拦截器(主要文章)和关于使用作用域插件(这里)的文章。但是,这两种方法似乎都有问题:

  • 对话范围拦截器不会自动使对话过期,也不会与 Struts2 正确集成;
  • Scope 插件缺乏适当的文档,最后一次构建是在 2007 年(实际上包括 Mark Menard 在定义他的 Conversation Scope Interceptor 时编写的一些想法,尽管它不使用相同的代码)。

Spring 的 WebFlow 插件目前似乎有点过于复杂,无法使用。我目前正在寻找可以在几个小时内实施的东西,但我不介意你是否可以根据需要提出一些可行的建议,即使它需要的时间比我现在想要花的时间多.

那么,经验丰富的 Struts2 开发人员,您有什么建议?我应该如何实现这个?

0 投票
1 回答
3908 浏览

ruby-on-rails-3 - 如何使用 Arel(大概)创建一个不影响 Rails 3 中的查询的 ActiveRecord 范围?

本质上,我正在寻找一种适用于范围链的无操作类型的关系。

假设我有一个范围链:

现在,出于调试目的,我希望让published作用域不做任何事情,这样链就只会返回approved帖子,不管它们是否published存在。

我将在以下方法中返回什么:

0 投票
1 回答
1492 浏览

ruby-on-rails-3 - 如何为 Rails 协会编写规范?

他们说完美的测试只包括测试框架和被测试的类;其他一切都应该被嘲笑。那么,联想呢?

我指的不是简单has_manybelongs_to关联,而是关联扩展和范围。我真的很想为范围编写规范,但我不知道该怎么做。

0 投票
1 回答
2951 浏览

ruby-on-rails-3 - 为什么在 Rails 3.1 上不再使用带有作用域的合并方法?

我偶然发现了一篇关于 Rails 3+ 范围的精彩文章:http ://edgerails.info/articles/what-s-new-in-edge-rails/2010/02/23/the-skinny-on-scopes-以前-命名范围/index.html

您可以在此处(在“Crazy Town”部分中)阅读到可以合并来自不同模型的范围,如下所示:

它可以按预期工作,并允许您执行以下操作:

我在我的 Rails 3.1 项目中尝试了这种方法,显然它不再起作用了。

所以我克隆了这篇文章的 Rails 3.0.0-beta1 项目,我亲眼看到这些人没有撒谎,事情正在按照他们所说的方式进行。

然后我 3.1'ed 了,现在我得到了:

==> 不再起作用了。

这让我很伤心,因为范围合并很棒,现在我不能像我想要的那样干。

你知道吗 :

  • 两个版本之间发生了什么?
  • 还有其他方法可以做到这一点吗?
0 投票
2 回答
9402 浏览

java - 将 GET 请求参数放入 @ViewScoped bean

我有一个(请求范围的)列表,用户可以从中选择“PQ”(链接列表)。当单击或以其他方式进入浏览器时,应显示每个 PQ 的主页。每个 PQ 的页面的格式为

http://localhost:8080/projectname/main.jsf?id=2

首先是 PQ bean:

这是main.xhtml:

每当我选择或以其他方式刷新页面/URL 时,我都会NullPointerExceptionEntityManager

[第 47 行是 em.find(...)]

线

不会让事情变得更好。我现在很绝望。

如何将 URL GET 请求参数放入@ViewScopedbean?

注意:我敢打赌这不是一件小事。很有可能我在概念上做错了什么,所以欢迎任何关于如何改进的提示。我觉得我需要选择@ViewScoped,因为该页面上会有更复杂的基于 AJAX 的 GUI,我真的很想通过 URL GET 参数保持访问。

谢谢

0 投票
3 回答
551 浏览

ruby-on-rails - 使用 Rails/Devise 处理具有多个范围/角色的登录和注销的最佳方法是什么?

我一直在此站点上的 Devise RDocs、Google 中搜索我的问题的答案,但没有运气。

假设我有四个 Devise 范围/角色,每个都有自己的属性、登录页面和单独的 Web 流:

  • 学生们
  • 教授
  • 院长
  • 院系

所有这些都使用 User 类并具有以下共同属性。

  • ID
  • 姓名
  • 电子邮件
  • 密码
  • 角色

这是我为设置它而建立的路线示例:

然后我生成了设计范围的视图并使用了这些视图。

之后,我必须在我的应用程序控制器中添加一些代码来覆盖 Devise::RegistrationsController,它希望将所有内容路由到根路径:

我可以使用出色的助手,例如签到?它告诉我是否有任何上述范围内的用户登录。太好了!!!现在我需要current_user的类似功能。

我可以访问以下助手。

  • 现在的学生
  • 当前教授
  • current_dean
  • current_faculty

它们工作得很好,但这是我遇到问题的地方。假设我有一个共享所有这些范围的视图。现在,如果我在该视图上尝试current_student并且我以教授身份登录,它将无法正常工作。

例如:我想在每个页面上包含一个部分,以允许用户在登录后注销。这就是我为学生做的事情。工作得很好。

我想要做的是这样的事情,它将提供注销我所有范围/资源的能力,无论我是以学生、院长、教授还是教职员工身份登录的:

我的下一步是添加我自己的辅助方法来确定范围,如下所示:

如果这种方法行得通,我会这样做,但如果我决定在未来添加更多角色或通用功能,这似乎非常低效和乏味......

一定有更好的方法?这让我觉得我在错误地使用设计,或者只是在某个地方遗漏了一些东西。

0 投票
4 回答
1006 浏览

php - 范围问题:在类中调用所需文件时无法访问变量

所以 file.php 包含, echo $test;

如果我要在课外打电话,例如

需要'test.php';它会得到 $test 罚款但是在类内部调用有明显的范围问题。如何让函数中所需的文件访问变量?

编辑: - - - - - - - - - - - -

我有多个变量我希望这个文件可以访问(它们都是基于页面动态的,所以添加 x 和 y 变量是不可能的,因为它们不会总是被设置)而不是将每个变量声明为全局可访问的,有没有办法要允许类中的所需文件,访问这些变量,就好像它不是一样?

谢谢你们的反馈。不幸的是,我想要的似乎不可能,但是您启发了我创建一个解决方法,该解决方法将我需要我的文件访问的最重要的变量注册为全局变量。