问题标签 [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 - 找出 Rails 3 中已经设置了哪些 before_filters
我有一个用于控制器配置的 DSL。底层功能依赖于 before_filters。为了防止多次设置 before_filter,我真的需要找出是否已经在 Rails 3 控制器中设置了 before_filter。由于 before_filter 与类变量(继承、类重载)不同,我不能只设置一个类变量来检查。
挖掘 AbstractController 回调的新的高度抽象的代码并不能告诉我这是否可能。
我真的需要为控制器中的每个 DSL 调用调用 skip_filter 吗?
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
没有被加载。
我整天都在为此苦苦挣扎。有谁知道发生了什么?
控制器动作:
附加信息:
- 应用程序/模型/news_story.rb
- 宝石文件
红宝石版本:
/li>从控制台创建新闻故事:
/li>
ruby-on-rails - 在初始化时设置 default_url_options
我需要在我的 rails 应用程序中强制主机进入其中一个环境。
我可以通过包括
在 app/controllers/application.rb
但是有没有办法在初始化时设置它,最好是在 config/environments/... 文件中?我想将条件环境逻辑保留在控制器之外。
但是当我尝试
甚至
我得到“未定义的方法”,即使在 config.after_initialize { ... }
有什么想法吗?
ruby-on-rails - Rails 3-修复涉及模板和 JS 生成器的主宰
我正在使用带有 Rails 3 的原始Juggernaut(不是Juggernaut 2)。在 lib/juggernaut.rb 中,由于无法找到@template
. 根据this other post,@template
Rails 3的控制器中没有提供。
如何修复以下代码,以便它可以在 Rails 3 中顺利运行?(这里是原始脚本的链接。寻找render_with_juggernaut
。)
我认为可以做以下两件事之一:
- 以某种方式获取@template
- 在不涉及 JavaScriptGenerator 的情况下生成一段 JS(需要 @template)
您对如何执行其中一种或其他方式有任何建议吗?
谢谢!
ruby-on-rails - Rails ActionController:request.remote_ip 和 request.remote_addr 之间的区别
在 ActionController 源码中,本地请求定义如下:
在我的应用程序中,如果请求来自特定 IP 范围,我想使用不同的逻辑。和有什么区别request.remote_addr
,request.remote_ip
我应该使用哪一个?
ruby-on-rails - Rails 3:获取当前命名空间?
使用方法 :layout_for_namespace 我根据我是在前端还是后端设置应用程序的布局,因为后端使用命名空间“admin”。
我找不到一个很好的方法来找出我是哪个命名空间,我找到的唯一方法是解析来自 params[:controller] 的字符串。当然这很容易,似乎是故障安全且工作良好。但我只是想知道是否有更好的、准备好的方法来做到这一点。有人知道吗?
目前我只是使用以下方法:
提前致谢
阿恩
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 的一部分:
ruby-on-rails - Rails 3 / 控制器 / Flash 哈希
我希望能够将多条消息传递到我的控制器内部的闪存哈希,并让它们很好地一起显示,例如,在项目符号列表中。我设计的方法是在我的应用程序控制器中创建一个辅助函数,它将一个数组格式化为一个项目符号列表,然后我将它传递给,在我的例子中,flash[:success]。这显然不是 Rails 方式,因为我的项目符号列表被编码了。也就是说,而不是得到:
- 消息 1
- 消息 2
我得到:
<ul><li>消息 1</li><li>消息 2</li></ul>
我确信我可以找到一种方法来 raw() 输出,但是没有一种简单的方法可以让这样的东西工作吗?也许有一个选项可以传递给 flash[]?还有什么?
ruby-on-rails - Rails 3:使用 respond_with 删除资源的正确方法
我正在尝试通过合并来干燥控制器respond_with
。当我这样做时,按照 Railscast 中的一些说明,我得到的东西大部分都在工作。问题在于删除资源后的重定向...应该重定向到people_url
...但尝试加载特定资源。
我找到的示例代码看起来像这样......但它试图加载它刚刚删除的资源失败:
将最后一行更改为respond_with(@people)
也不起作用(尽管我希望它会......)
经过大量挖掘并尽我所能理解事情后,我确实让事情正常工作(至少看起来如此。规范通过。应用程序功能):
那么,这是处理这个问题的正确方法吗?似乎在 response_with 背后的所有“魔法”都会知道它在删除后无法重定向到自己?我还认为这(7 种基本的 RESTful CRUD 方法之一)将是非常基本和基本的,因此会有很多示例......但除了那些建议代码不起作用的示例之外,我找不到很多示例我。
希望有人能帮助我理解这里发生的铁轨“魔法”,这样当我在路上遇到这种情况时,我不会感到惊讶。
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”中做到这一点,我一开始就试图这样做,但可以弄清楚。