问题标签 [actioncontroller]

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 投票
1 回答
2009 浏览

ruby-on-rails - 找出 Rails 3 中已经设置了哪些 before_filters

我有一个用于控制器配置的 DSL。底层功能依赖于 before_filters。为了防止多次设置 before_filter,我真的需要找出是否已经在 Rails 3 控制器中设置了 before_filter。由于 before_filter 与类变量(继承、类重载)不同,我不能只设置一个类变量来检查。

挖掘 AbstractController 回调的新的高度抽象的代码并不能告诉我这是否可能。

我真的需要为控制器中的每个 DSL 调用调用 skip_filter 吗?

0 投票
1 回答
311 浏览

ruby-on-rails - 从 Rails 2 迁移到 Rails 3 的问题(nil.any?)

我一直在将我的应用程序从 Rails 2.3.8 升级到 Rails 3。

在完成所有基本工作(配置、路由和新的 AR API,用 Devise 替换 Authlogic)并让一些主要是静态页面正常显示后,我在网站的其余部分出现错误:

SomeModel第一次参考时总是出现这个错误。例如,在我的news#index

完整的堆栈跟踪如下。跟踪似乎表明我的模型app/models/news_story.rb没有被加载。

我整天都在为此苦苦挣扎。有谁知道发生了什么?

控制器动作:

附加信息:

0 投票
1 回答
10188 浏览

ruby-on-rails - 在初始化时设置 default_url_options

我需要在我的 rails 应用程序中强制主机进入其中一个环境。

我可以通过包括

在 app/controllers/application.rb

但是有没有办法在初始化时设置它,最好是在 config/environments/... 文件中?我想将条件环境逻辑保留在控制器之外。

但是当我尝试

甚至

我得到“未定义的方法”,即使在 config.after_initialize { ... }

有什么想法吗?

0 投票
1 回答
459 浏览

ruby-on-rails - Rails 3-修复涉及模板和 JS 生成器的主宰

我正在使用带有 Rails 3 的原始Juggernaut(不是Juggernaut 2)。在 lib/juggernaut.rb 中,由于无法找到@template. 根据this other post@templateRails 3的控制器中没有提供。

如何修复以下代码,以便它可以在 Rails 3 中顺利运行?(这里是原始脚本的链接。寻找render_with_juggernaut。)

我认为可以做以下两件事之一:

  • 以某种方式获取@template
  • 在不涉及 JavaScriptGenerator 的情况下生成一段 JS(需要 @template)

您对如何执行其中一种或其他方式有任何建议吗?

谢谢!

0 投票
2 回答
5141 浏览

ruby-on-rails - Rails ActionController:request.remote_ip 和 request.remote_addr 之间的区别

在 ActionController 源码中,本地请求定义如下:

在我的应用程序中,如果请求来自特定 IP 范围,我想使用不同的逻辑。和有什么区别request.remote_addrrequest.remote_ip我应该使用哪一个?

0 投票
8 回答
23890 浏览

ruby-on-rails - Rails 3:获取当前命名空间?

使用方法 :layout_for_namespace 我根据我是在前端还是后端设置应用程序的布局,因为后端使用命名空间“admin”。

我找不到一个很好的方法来找出我是哪个命名空间,我找到的唯一方法是解析来自 params[:controller] 的字符串。当然这很容易,似乎是故障安全且工作良好。但我只是想知道是否有更好的、准备好的方法来做到这一点。有人知道吗?

目前我只是使用以下方法:

提前致谢

阿恩

0 投票
1 回答
2511 浏览

ruby-on-rails - 使用和测试 Rails ActionController 的 respond_with

提前为这个问题的冗长道歉。如果你能容忍我,我想你会发现它实际上很简单……鉴于我有限的 Rails 领域知识,我很难解释。

鉴于此评论在8 月 6 日的 ActionController 提交中

我已经修改了一个非常基本的控制器来使用respond_with。当 Rails 自动生成的测试尝试通过空params来更新和创建方法时,除了 2 个规范失败之外,一切似乎都运行良好。我可以通过简单的 if save/else 来纠正这种行为,但我正在尝试理解这个“新”功能。我认为默认规范可能以过时的方式编写。

从提交评论:“ Since the request is a POST, respond_with will check wether @people resource have errors or not. If it has errors, it will render the error object with unprocessable entity status (422).

因此,向下滚动到 POST 下的最后一个测试/规范(如下),我是否可以重写它以测试“不可处理的实体状态(422)”并通过,因此一切都很乐观?

我的控制器:

测试规格:

这是 clowns_controller_spec.rb 的一部分:

0 投票
3 回答
2749 浏览

ruby-on-rails - Rails 3 / 控制器 / Flash 哈希

我希望能够将多条消息传递到我的控制器内部的闪存哈希,并让它们很好地一起显示,例如,在项目符号列表中。我设计的方法是在我的应用程序控制器中创建一个辅助函数,它将一个数组格式化为一个项目符号列表,然后我将它传递给,在我的例子中,flash[:success]。这显然不是 Rails 方式,因为我的项目符号列表被编码了。也就是说,而不是得到:

  • 消息 1
  • 消息 2

我得到:

<ul><li>消息 1</li><li>消息 2</li></ul>

我确信我可以找到一种方法来 raw() 输出,但是没有一种简单的方法可以让这样的东西工作吗?也许有一个选项可以传递给 flash[]?还有什么?

0 投票
1 回答
4547 浏览

ruby-on-rails - Rails 3:使用 respond_with 删除资源的正确方法

我正在尝试通过合并来干燥控制器respond_with。当我这样做时,按照 Railscast 中的一些说明,我得到的东西大部分都在工作。问题在于删除资源后的重定向...应该重定向到people_url...但尝试加载特定资源。

我找到的示例代码看起来像这样......但它试图加载它刚刚删除的资源失败:

将最后一行更改为respond_with(@people)也不起作用(尽管我希望它会......)

经过大量挖掘并尽我所能理解事情后,我确实让事情正常工作(至少看起来如此。规范通过。应用程序功能):

那么,这是处理这个问题的正确方法吗?似乎在 response_with 背后的所有“魔法”都会知道它在删除后无法重定向到自己?我还认为这(7 种基本的 RESTful CRUD 方法之一)将是非常基本和基本的,因此会有很多示例......但除了那些建议代码不起作用的示例之外,我找不到很多示例我。

希望有人能帮助我理解这里发生的铁轨“魔法”,这样当我在路上遇到这种情况时,我不会感到惊讶。

0 投票
2 回答
1948 浏览

ruby-on-rails-3 - Rails 3 - 扩展 ActionController

我正在尝试在我的应用程序中实现逻辑验证码。我已经搭建了简单的 TextCaptcha 来在 DB 中存储问题和答案。

目前我在 initializers/text_captcha.rb 中有这个

这在“lib/text_captcha.rb”中:

所以在评论控制器中,我可以访问@captcha

坏事是我每次进行更改时都必须重新启动 webrick - 所以我认为我这样做是错误的?我可以摆脱初始化程序,只在需要的地方需要“text_captcha”......或者有没有办法在“models/text_capctha.rb”中做到这一点,我一开始就试图这样做,但可以弄清楚。