问题标签 [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 投票
2 回答
403 浏览

ruby-on-rails - 如何使用 NewRelic 监控 ActionController::Metal?

我有一个 Rails 3 应用程序,其中一些控制器是普通的 rails 控制器,有些是使用 ActionController::Metal 实现的。默认情况下,NewRelic 监控普通的 rails 控制器,但不监控 NewRelic 的。

似乎 NewRelic 支持 Rack 应用程序,但是给出的代码示例是当您想要监控特定的中间件时,或者当您有一个正在定义的 MetalApp 时。似乎两者都不适用于 ActionController::Metal。

那么,如何将 NewRelic 监控添加到我的金属控制器?

0 投票
3 回答
619 浏览

ruby - 如何从 Rails 3 的视图/助手中检索控制器类?

我知道controller_name返回包含控制器名称的字符串,但是如何从帮助程序中检索控制器类(或对象)?

编辑:当控制器被命名空间时,该解决方案也应该起作用(例如。Admin::PostsController

0 投票
1 回答
338 浏览

ruby-on-rails - 动作控制器混合

我如何为动作控制器创建一个 mixin,它执行以下操作:

(我不能继承 ApplicationController,因为我使用的是与 ActionController 绑定的 gem(设计)。无论如何,mixin 似乎更合适。)

我创建了一个名为“XHRController”的模块并在 application.rb 中使用了“ApplicationController::Base.include XHRController”,但是在任何使用“layout”、“before_filter”等时都会出错,因为未定义。

0 投票
2 回答
1465 浏览

ruby-on-rails-3.1 - 使用 authenticate_or_request_with_http_basic() 时收到 AbstractController::DoubleRenderError

authenticate_or_request_with_http_basic当我在块的开头添加调用时,我有一个有效的控制器操作会中断。这是无效的操作代码:

我在浏览器窗口中收到“AbstractController::DoubleRenderError”错误响应,并带有以下消息:

在此操作中多次调用渲染和/或重定向。请注意,您只能调用渲染或重定向,并且每个操作最多调用一次。另请注意,重定向和渲染都不会终止操作的执行,因此如果您想在重定向后退出操作,则需要执行“redirect_to(...) and return”之类的操作。

当我将“authenticate_or_request_with_http_basic”逻辑放在一个单独的操作中,然后配置一个 before_filter 来为索引操作运行它时,一切都很好。但是,我不会将这个逻辑重用于索引以外的任何操作,我想知道为什么上面的代码不起作用。

解决方案

在 Tyler 和 RKB 的帮助下,我找到了解决方案。这里是:

authenticate_or_request_with_http_basic如果身份验证成功,则返回“true”。失败时返回 401。

0 投票
1 回答
3873 浏览

ruby-on-rails - 指定格式:使用 render_to_string 忽略“xml”

我有一个需要将视图呈现为字符串的操作。该视图称为 index.xml.erb。我正在尝试使用 render_to_string 来实现这一点:

render_to_string 而是渲染 index.html.erb 的内容并将其分配给 my_string。我错过了什么?

注意:我知道我可以做这样的事情:

但我很好奇为什么 render_to_string 不支持“格式”选项。

0 投票
1 回答
556 浏览

ruby-on-rails-3 - 是否可以阻止 Rails 为控制器中未定义的操作呈现视图?

这个问题之后,我想知道是否有办法覆盖新的 rails 行为。我遇到了一个被遗忘的视图的安全问题,尽管该操作未在我的控制器中定义,但它突然暴露出来。我认为最好阻止 Rails 呈现那些未定义的操作,然后清理我未使用的视图。

0 投票
1 回答
2361 浏览

ruby-on-rails - Rails 检测控制器中的请求类型?

我有一个控制器,它通过 html 显示用户配置文件,通过 JSON 显示用户悬停卡 w 配置文件信息。

问题是当找不到用户时,它会重定向,这在通过 HTML 时效果很好,但会导致 JSON 错误。是否有一种干净的方法可以仅在 HTML 请求时才发生重定向?什么是正确的轨道,干净的方式来处理这个?

谢谢

0 投票
0 回答
282 浏览

ruby-on-rails-3 - 在 rails 中,controller.action_methods 会返回方法,即使它们没有关联的路由

对于资源丰富的控制器,调用 controller.action_methods 会产生控制器上所有可能的操作方法。我有一个资源,我已将其路由限制为 [:only=> "index"]。

我正在寻找一种类似于 controller.action_methods 的方法,它可以帮助我确定给定的操作方法是否具有关联的路由。

我正在尝试动态地访问控制器中的网址。我总是可以写一个救援块,但如果有人知道更好的解决方案,请分享。

谢谢, 塔布雷兹

0 投票
0 回答
1269 浏览

ruby-on-rails - 使用 .dup 和 .update_attributes 生成模型实例会导致在验证失败时创建额外的实例

我对活动模型进行了验证,这是活动控制器中的创建操作。当我尝试在不满足验证的情况下保存模型时,正在创建一个额外的活动实例。为什么在验证失败时会创建一个活动?

我在这里使用 dup 的原因是因为我想创建最新活动的副本,然后从参数更新其属性的子集。因此,为了解释起见,假设 Activity 有 10 个属性。用户将转到具有其中 3 个属性的字段的表单。然后,我想创建一个新活动,该活动具有与用户未更新的属性的最新活动相同的所有属性值。

- 更新 -

我已经发现了为什么会这样。我缩短了上面的代码,以便减少混乱,但作为缩短的一部分,我删除了以下几行:

当我将评论的保存移至活动保存后,该应用程序可以正常工作。我的猜测是保存链接到尚未保存的活动的评论会导致活动被保存?

0 投票
1 回答
41 浏览

ruby-on-rails - 获取要在 Rails 中更新时保留的参数

以 Post 为例,假设 Post 有 2 个属性,这两个属性都有验证。在编辑帖子时,假设我更改了 2 个属性,但其中一个属性验证失败,导致页面重新加载。在我看来,当页面重新加载时,以前保存的帖子属性版本会显示在表单中,而不是我刚刚输入的属性,尽管我刚刚输入的属性在 params.xml 中。

这将在典型的创建操作中处理,因为 post 实例变量声明如下所示:

但是,在更新操作中,post 实例变量如下所示:

因此,输入到表单中的更改并传递给参数不会在表单上重新呈现。我是否正确地描述了这一点,如果是这样,有没有办法在验证失败时让更改与表单一起呈现?或者,也许只有那些没有通过验证的更改?