问题标签 [actiondispatch]
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 ActionDispatch 范围选项
你知道一个资源,它记录了 ActionDispatch范围方法的所有可用选项及其用法吗?
我已经厌倦了深入研究每个merge_X_scope方法,试图理解 X 选项的含义。
ruby-on-rails - 将 Rails3 路由中 :new 操作的范围更改为 :member
我需要匹配 /entries/slug-here/new 并将其发送到 EntriesController#new
尝试了以下方法,都没有工作:(
带有一堆匹配项的临时硬编码路径,但看起来很难看 >.<
更新:
与 create 方法和任何其他规范操作相同 - 无法重新定义它们。
ruby-on-rails - request.env['CONTENT_TYPE'] 和 request.content_type 之间有什么区别?
我看到request.env['CONTENT_TYPE']
和有两个不同的值request.content_type
。
Content-Type
从一个单独的应用程序中,我向我的 Rails 应用程序发送了一个请求,并已将text/xml
.
这是我在 Rails 应用程序中看到的另一端:
request.content_type
实际上是action_dispatch.request.content_type
request.env['CONTENT_TYPE']
和 和有什么不一样request.content_type
?- 为什么这两个值不同?
ruby - Rails:ParameterFilter::compiled_filter 尝试复制符号
我正在使用 rails exception-notifier gem 运行 rails3。当发生异常并且应该发送电子邮件时,我从 ParameterFilter 类中得到一个异常。我在 rails 源代码中发现了问题,但不确定最好的解决方法。
问题出现在 ActionDispatch::Http::ParameterFilter 中。在compiled_filter方法中,第38行出现错误:key = key.dup
when key
is a symbol,因为symbols are not dupliable。这是来源:
我看到他们只dup
在value
它是时才打电话duplicable
。如果我将源修补为仅调用dup
when key
is key
,duplicable
那么我的问题就会消失。我假设作者将条件设置为 onvalue
和 not是有原因的key
,所以我很好奇那里是否有人对这段代码有更好的理解。
仅当您将块添加到 application.rb 中的过滤器参数时,才会发生此错误。因此,对于我的原始问题,也许有一种解决方法,不需要在此处使用块。如果您有兴趣,请参阅我同事的问题Rails: Filter sensitive data in JSON parameter from logs
这是一个问题的关键是:action
。这来自rails,我不知道是否有任何方法可以强制它成为一个字符串。
我提交了一个 Rails 错误https://rails.lighthouseapp.com/projects/8994/tickets/6557-symbol-duplication-error-in-parameterfilter-compiled_filter并且我准备好了一个补丁,如果添加key.duplicable?
到该key.dup
行,我寻找有关这是否是正确解决方案的输入。
ruby-on-rails - Rails:从日志中过滤 JSON 参数中的敏感数据
我正在运行 Rails 3 并尝试从我们的日志中过滤敏感信息,这些信息是作为 post 参数传递的 JSON blob。例如,用户创建可能需要一个user
使用 JSON 对象的字符串值调用的 post 参数。JSON 对象中的键之一是password
,我们希望将其从日志中过滤掉。我发现这样做的最好方法是向我们的 filter_params 添加一个块,如下所示:
这会向 filter_params 添加一个块,这会导致另一个问题中描述的错误:Rails: ParameterFilter::compiled_filter try to dup symbol
似乎将块传递给 filter_parameters 是不安全的,所以我想知道是否有另一种方法来解决这个问题。
ruby-on-rails - 配置 Rails 应用程序以处理多个子域和多个 cookie
我有一个支持多个域的 Rails 应用程序,每个域可能有多个子域。
访问 mydomain1.com 的用户不会获得与 mydomain2.com 相同的体验(尽管应用程序的基本行为相同)
因此,如果用户登录到 mydomain1.com,则不应再登录到 mydomain2.com
如果用户登录到 france.mydomain1.com,那么它应该登录到 Germany.mydomain1.com
以前,我通过在会话存储配置中设置域来处理此问题:
我正在尝试找出处理多个域的最佳方法?
我试过四处乱窜,ActionDispatch::Callback
但从那里无法获得请求。
任何人都可以提出一种在一个应用程序中支持多个 cookie 的好方法吗?
理想情况下,我想为每个subdomain创建一个新的 cookie 。
cucumber - 测试 Rails 3.1 模型创建时的 ActionDispatch::ClosedError (RSpec/Cucumber)
我正在使用 Ruby on Rails 3.1 (RC1) 创建一个 Web 应用程序。我正在使用Factory Girl、RSpec和Cucumber(与Capybara )进行测试,但是当我创建新用户(通过 User 模型的创建操作)ActionDispatch::ClosedError
时,有时(不是每次)我都会遇到意外的提升。以下是我收到的错误消息:
使用这些创建用户的方式时会引发错误:
- 使用工厂女孩创作
Factory.create( :user )
Factory.build( :user ).save
- 基础创作
User.create( { ... } )
User.new( { ... } ).save
有趣的是,它们在某些测试中确实有效,但在其他测试中无效,而且似乎不是随机的,尽管我无法弄清楚原因。以下是我的代码的摘录:
users_controller_spec.rb
需要'spec_helper'
但是,以下代码块中未引发错误:
describe 'GET edit' do it 'assigns the requested user as @user' do get :edit, id: user.id # 这不会引发错误 assigns[ :user ].should == user end end
即使我以完全相同的方式创建用户,低于此的任何其他方法都不会引发错误。
任何关于我可能做错的建议将不胜感激!
ruby-on-rails - 你如何使用 ActionDispatch::Routing::RouteSet 识别路径?
你如何使用 ActionDispatch::Routing::RouteSet 识别路径?
我想获取视图的当前路径。
我试过<div id="<%= ActionDispatch::Routing::RouteSet::recognize_path %>">
但得到“ActionDispatch::Routing::RouteSet:Class 的未定义方法 `recognize_path'”。
谢谢!
ruby-on-rails-3 - 如何在 Sinatra 中提供来自 gem 的静态内容(类似于 Rails ::ActionDispatch::Static)
我有一个包含 gem 的 Sinatra 服务。gem 包含一些我想包含在 Sinatra 应用程序中并提供服务的静态内容。
在 Rails 中,这将通过 ActionDispatch 完成。这是一个例子:http: //jonswope.com/2010/07/25/rails-3-engines-plugins-and-static-assets/
有没有办法在没有 ActionDispatch 的情况下在 Sinatra 中做到这一点?或者有没有一种干净的方法可以通过 Sinatra 中的 ActionDispatch 做到这一点?
ruby-on-rails - 在 Rails 初始化程序中将模块包含到 ruby 类中
在 Rails 的初始化程序内部,我试图在 rails 模型中包含一个模块
这适用于第一个请求,但不适用于第二个/第三个/等。由于导轨模型重新加载。我尝试使用ActionDispatch::Callbacks.to_prepare
(ActionDispatch::Callbacks.to_prepare,我使用的是 Rails 3.0.9)
但是当我尝试在第二个/第三个/等上调用我的模块模块中定义的方法时,我不断从用户实例中收到 NoMethod 错误。要求。
我的问题是:有没有办法在初始化程序中可靠地将模块包含到 Rails 模型中而没有任何开发怪异?
更新:不可能
显然,如果没有中间件,这是不可能的。如果您不同意,请在下面添加答案。对于我的用例来说,这不是一个可接受的解决方案,所以我实际上什至没有尝试过。祝你好运。
编辑:更新的调试信息
我正在玩ActionDispatch::Callbacks.to_prepare
更多的东西,当我把它放在我的初始化程序中时我发现了一些奇怪的东西:
这在我的控制器中
在第一个请求我得到这个:
在第二个请求我得到这个:
我注意到的第一件事是对 to_prepare 的多次调用,这很奇怪。我注意到的第二件事是在第一个请求(有效)中,直接调用控制器之前和之后的 object_id 是相同的,并且它们不在任何后续调用中。如果有人能阐明为什么会发生这种情况以及如何解决它,将不胜感激。