问题标签 [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.
ruby-on-rails - 如何使用 NewRelic 监控 ActionController::Metal?
我有一个 Rails 3 应用程序,其中一些控制器是普通的 rails 控制器,有些是使用 ActionController::Metal 实现的。默认情况下,NewRelic 监控普通的 rails 控制器,但不监控 NewRelic 的。
似乎 NewRelic 支持 Rack 应用程序,但是给出的代码示例是当您想要监控特定的中间件时,或者当您有一个正在定义的 MetalApp 时。似乎两者都不适用于 ActionController::Metal。
那么,如何将 NewRelic 监控添加到我的金属控制器?
ruby - 如何从 Rails 3 的视图/助手中检索控制器类?
我知道controller_name
返回包含控制器名称的字符串,但是如何从帮助程序中检索控制器类(或对象)?
编辑:当控制器被命名空间时,该解决方案也应该起作用(例如。Admin::PostsController
)
ruby-on-rails - 动作控制器混合
我如何为动作控制器创建一个 mixin,它执行以下操作:
(我不能继承 ApplicationController,因为我使用的是与 ActionController 绑定的 gem(设计)。无论如何,mixin 似乎更合适。)
我创建了一个名为“XHRController”的模块并在 application.rb 中使用了“ApplicationController::Base.include XHRController”,但是在任何使用“layout”、“before_filter”等时都会出错,因为未定义。
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。
ruby-on-rails - 指定格式:使用 render_to_string 忽略“xml”
我有一个需要将视图呈现为字符串的操作。该视图称为 index.xml.erb。我正在尝试使用 render_to_string 来实现这一点:
render_to_string 而是渲染 index.html.erb 的内容并将其分配给 my_string。我错过了什么?
注意:我知道我可以做这样的事情:
但我很好奇为什么 render_to_string 不支持“格式”选项。
ruby-on-rails-3 - 是否可以阻止 Rails 为控制器中未定义的操作呈现视图?
在这个问题之后,我想知道是否有办法覆盖新的 rails 行为。我遇到了一个被遗忘的视图的安全问题,尽管该操作未在我的控制器中定义,但它突然暴露出来。我认为最好阻止 Rails 呈现那些未定义的操作,然后清理我未使用的视图。
ruby-on-rails - Rails 检测控制器中的请求类型?
我有一个控制器,它通过 html 显示用户配置文件,通过 JSON 显示用户悬停卡 w 配置文件信息。
问题是当找不到用户时,它会重定向,这在通过 HTML 时效果很好,但会导致 JSON 错误。是否有一种干净的方法可以仅在 HTML 请求时才发生重定向?什么是正确的轨道,干净的方式来处理这个?
谢谢
ruby-on-rails-3 - 在 rails 中,controller.action_methods 会返回方法,即使它们没有关联的路由
对于资源丰富的控制器,调用 controller.action_methods 会产生控制器上所有可能的操作方法。我有一个资源,我已将其路由限制为 [:only=> "index"]。
我正在寻找一种类似于 controller.action_methods 的方法,它可以帮助我确定给定的操作方法是否具有关联的路由。
我正在尝试动态地访问控制器中的网址。我总是可以写一个救援块,但如果有人知道更好的解决方案,请分享。
谢谢, 塔布雷兹
ruby-on-rails - 使用 .dup 和 .update_attributes 生成模型实例会导致在验证失败时创建额外的实例
我对活动模型进行了验证,这是活动控制器中的创建操作。当我尝试在不满足验证的情况下保存模型时,正在创建一个额外的活动实例。为什么在验证失败时会创建一个活动?
我在这里使用 dup 的原因是因为我想创建最新活动的副本,然后从参数更新其属性的子集。因此,为了解释起见,假设 Activity 有 10 个属性。用户将转到具有其中 3 个属性的字段的表单。然后,我想创建一个新活动,该活动具有与用户未更新的属性的最新活动相同的所有属性值。
- 更新 -
我已经发现了为什么会这样。我缩短了上面的代码,以便减少混乱,但作为缩短的一部分,我删除了以下几行:
当我将评论的保存移至活动保存后,该应用程序可以正常工作。我的猜测是保存链接到尚未保存的活动的评论会导致活动被保存?
ruby-on-rails - 获取要在 Rails 中更新时保留的参数
以 Post 为例,假设 Post 有 2 个属性,这两个属性都有验证。在编辑帖子时,假设我更改了 2 个属性,但其中一个属性验证失败,导致页面重新加载。在我看来,当页面重新加载时,以前保存的帖子属性版本会显示在表单中,而不是我刚刚输入的属性,尽管我刚刚输入的属性在 params.xml 中。
这将在典型的创建操作中处理,因为 post 实例变量声明如下所示:
但是,在更新操作中,post 实例变量如下所示:
因此,输入到表单中的更改并传递给参数不会在表单上重新呈现。我是否正确地描述了这一点,如果是这样,有没有办法在验证失败时让更改与表单一起呈现?或者,也许只有那些没有通过验证的更改?