问题标签 [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.

0 投票
3 回答
1674 浏览

ruby-on-rails - 覆盖嵌套路由中的参数

我希望我的路线命名约定保持一致。默认参数适用:id于任何资源。但是,如果在其中嵌套另一个资源,则父资源的参数将更改为:parent_id. 我的路由看起来像:

对于用户模型,它会生成类似的 url :id,对于项目 url 将是:user_id/:id,对于问题 url 将是:user_id/:project_id/:id。我试图在此之后重载默认参数

它生成像这样的 url :user_user_id/:project_project_id/:issue_id:。由于我要覆盖它,因此我希望关闭父资源的默认附加。我希望我的路线看起来像:user_id/:project_id/:issue_id,并且我希望它对于所有模型都是一致的。即项目应映射到:user_id/:project_id.

0 投票
1 回答
28 浏览

python - 将 GET 请求从 python 发布到 rails 时出现错误的请求行“m-urlencoded”

我在 python 中使用请求包来在 rails 上 ping 一个 localhost url。我的请求标头有四个附加的东西。

当我在控制器中打印这些东西时,我只得到 DATE 和 MD5 而不是其他两个东西。而且这个错误也很糟糕 Request-Line m-urlencoded'

0 投票
2 回答
49 浏览

ruby-on-rails - 此 Ruby on Rails 代码的可能单行器

我有一个 Rails ActionDispatch::Http::UploadedFile 类型的文件对象。

我需要用通用名称覆盖用户分配的文件名,同时保留文件的扩展名。这就是我目前实现代码的方式。有没有一种更好更优雅的方式在 Ruby 中编写它。

0 投票
3 回答
489 浏览

ruby-on-rails - 使用基于已安装引擎的 url_for 获取基于约束的 url

有什么方法可以让 url_for 在动作调度路由期间根据 request.host 返回 url?

例子:

当用户在 example.com 主机上时

协作路径 => /apps/collaborate

当用户在任何其他主机上时

协作路径 => /apps/worktogether

经过大量研究,我意识到 RouteSet 类具有 named_routes ,它不考虑返回 url 的约束。

我已经尝试在 action_dispatch/routing/route_set.rb 中覆盖 @set 以从 rails 应用程序拾取,但 dint 按预期工作

0 投票
1 回答
417 浏览

ruby-on-rails - Rails 集成测试以选择是否存在正确的按钮文本

我正在浏览Hartl Rails 教程,并完成了 9.60、9.61、9.62 中的练习,这些练习要求重构新的和编辑带有新部分的表单代码。表单现在使用“提供”来提供按钮文本,如下所示:

在页面上以“yield”呈现,如下所示:

虽然不是练习的一部分,但我并不是要编写一个集成测试来测试每个页面按钮上的正确文本。例如,此代码将测试注册表单页面:

但是,我无法找出选择按钮并为按钮文本指定正确值的正确代码。我使按钮文本不正确以尝试使测试失败,但没有找到在失败时成功的正确测试语法;-)

ActionDispatch 的文档没有对此测试用例有帮助的具体示例。

0 投票
2 回答
1106 浏览

ruby-on-rails - Carrierwave:NoMethodError - 未定义的方法“允许”#

我想我已经知道答案了,但我想我会发布这个来帮助遇到这个问题的其他人,因为我在其他任何地方都找不到这个帖子。

我有一个典型的 Rails 模型并添加了一个 Carrierwave 上传器。

当我上传我得到这个错误:

它看起来像这篇文章:

#<String:0x007f66ec6ff180> ruby​​ on rails 的未定义方法“permit”

我不能(我相信现在有人会找到它)找到它记录在您需要修改控制器以跳过正常的任何地方:

通过 CW 上传时的参数安全检查(我应该通过 JSON 在后台注意到这一点)。

我确信我可以在这里找出一些条件来允许正常的 html 帖子,但我想确认我没有错过更优雅的东西,或者我在某处错过了配置选项。

所以要明确我的问题是:

1.)在这种情况下,我是否遗漏了此处记录的内容?

2.) 与基本检查相比,是否有更优雅的解决方案/安全解决方案来查看请求是否为 JSON 等?

更新

忘了提我也在使用 Dropzone 进行上传。

0 投票
0 回答
254 浏览

ruby-on-rails-4 - 覆盖 Rails 路由资源方法创建额外的 RESTful 操作

在 routes.rb 中:

添加所有 map.resources 额外的 RESTful 操作 csv_export:

创建 initilizer/mapper.rb 文件并添加模块 ActionDispatch::Routing::Mapper::Resources

0 投票
1 回答
728 浏览

php - Zend Framework 2 - 检查抽象控制器中的身份验证 - > onDispatch?

我正在authentication为在ZF2.

我需要有更多选项来根据调用的服务对用户进行身份验证。

对于从浏览器访问的 Web 应用程序的 IE,我将通过 Ldap 进行身份验证,对于 API 服务,我将检查标头中的用户凭据。

我创建了一个abstract controller检查用户是否经过身份验证;如果不是,它将被重定向到登录页面。

模块中需要相同身份验证过程的所有控制器都将扩展此类。

成功登录后,我需要保存原始请求以将其重定向回它。

我的问题是:

1. 抽象控制器 -> onDispatch() 方法放置它的地方是正确的吗?

我发现的每一个解决方案总是在Module.php. 为了区分 auth 方法,他们需要检查请求的控制器是否匹配,因为 Module.php 总是被调用。在控制器中设置它不是“更干净”吗?

2.我应该使用重定向还是转发从原始控制器传递到登录控制器然后返回?

我不介意浏览器栏中的 url 更改,只是寻找最好和最快的解决方案,同时保持原始请求。

3.将uri存储在会话类中(来自auth模块)是否正确?有什么方法可以保存整个请求(包括可能需要的 POST 数据)?

这是抽象控制器:

0 投票
1 回答
175 浏览

ruby-on-rails - 当 Rails 5 中没有提供块时如何跳过/模拟测试

在没有其他 Rspec 包袱的情况下,我很难弄清楚如何以 Rspec 的方式在 Rails 中进行测试。

0 投票
2 回答
144 浏览

ruby-on-rails - 优化 Rails 路由定义

我们在 Rails3.2.22应用程序中定义了大约 650 条路线。其中大约 20 个占我们请求的 90% 以上。这 20 个都属于可选范围:(/:api_version). 定义这些路线的最佳位置在哪里。

它是在定义树的开头还是结尾?换句话说,它们应该按升序还是降序的流行度来定义?