问题标签 [respond-to]

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 投票
1 回答
1123 浏览

jquery - 一个很好的例子 rails respond_to 如何处理模型验证错误和 ajax 表单

我想要的是

我使用带有 ajax 表单的新 rails respond_to Controller Api。如果一个对象没有验证 rails 会返回一个 Json 错误对象并触发“ajax:error”事件。我想在相应的表单字段下/下显示每个错误(我们使用的是 formatastic)。

这是我的例子..

控制器:

看法

js/咖啡脚本

我只是将所有错误添加到一个字符串并显示它们..

json错误对象

我的问题!

  • 我必须自己解析json吗?
  • 如何将错误消息添加到该字段?
  • 它不应该是标准 jquery-ujs 的一部分吗?
0 投票
1 回答
563 浏览

ruby-on-rails - Rails:非 RESTful 操作后的 respond_with RESTful 控制器模板

尝试向其他 RESTful 控制器添加“发布”操作时出现“模板丢失 - 缺少模板选票/提交”错误。显然,它正在寻找一个submission.html.haml不存在(也不应该存在)的视图。

在这两种情况下,我都想用这个控制器中的“显示”动作来回应。但不确定应该是什么语法。

0 投票
2 回答
636 浏览

ruby-on-rails - Object.respond_to? 陷入无限循环

我正在构建一个 Rails 3 gem,它本质上修改了从 ActiveRecord 查询返回的记录。我正在做的一件事是覆盖method_missingandrespond_to?方法,但似乎我的respond_to?定义导致无限循环抛出“SystemStackError:堆栈级别太深”错误。

以下是我对这些方法的原始定义:

在试图了解为什么会发生这种无限循环时,我respond_to?用一些“之前”和“之后”输出进行了重组,以查看它卡在哪里。

运行时,各种回调和属性方法似乎都按预期运行,每个回调和属性方法都有一个 before 和 after 调用:

但是,每当我看到一个 find 回调时,它似乎陷入了无限循环:

如果我破解我的respond_to?,那么一切似乎都运行顺利:

我做错了什么,我似乎需要这个黑客?我该如何避免呢?

0 投票
4 回答
3825 浏览

ruby-on-rails - Rails:如何在控制器中呈现其他动作,在 js 中而不是在 html 中?

我的控制器中有两个动作:

问题在于我首先调用find动作,然后调用result动作,但采用 html 格式。所以'format.js'永远不会被触发。

如何在find动作结束时result以 js 格式呈现动作?

非常感谢 !

0 投票
3 回答
8907 浏览

ruby-on-rails-3 - Rails respond_with -- 为什么 POST 返回 URL 而不是数据?

这是一个“为什么它会这样工作”的问题,而不是“我如何让这个工作”。

我的应用程序正在调用返回 JSON 的第三方 REST API,并将结果作为我自己的JSON API 的一部分返回。

我使用的是 Rails 3respond_torespond_with方法;在GET请求的情况下,这可以按我的预期工作,只是通过 JSON。

在 的情况下POST,它会做更多的事情,包括从返回的对象中创建一个 URL 以传递一个:location选项。但由于我的对象只是 JSON(不是 ActiveRecord),我得到一个错误。

例如...

我的第 3 方 API 包装器发出一个 POST 请求,该请求返回正常,然后 Rails 返回一个 500 错误,记录如下:

Rails 希望我的 @products 对象知道如何创建位置 URL。

澄清:@products第三方 API 返回的对象是纯 JSON —— 一个字符串,您可以看到嵌入在上面的错误日志消息中。发生此错误是因为 Rails 似乎希望对象更多——在 Rails 内部 API 支持中,它是一个 ActiveRecord 对象。

如果我用respond_with旧样式的 sytax 替换新的

然后一切正常。这就是我所做的,所以我没有“如何”的问题,而是有一个“为什么”的问题。

Ryan Daigle关于介绍的帖子解释说,正在发生的事情是意料之中的。

我的问题是:为什么respond_with除了数据(和 HTTP 状态?)之外还有其他东西,而且显然只是为了POST.

我并不是说这是错误的,只是想了解Rails 实施的基本原理。

0 投票
2 回答
723 浏览

ruby-on-rails - rails respond_to json 格式包含两个(或更多)模型及其一些虚拟属性?

在我的控制器操作之一中,我将一个项目分配给用户,并且我想用一些关于用户的信息和一些关于项目的信息来响应对它的 json 请求。目前,我可以看到他们所有的数据库属性,如下所示:

所以在我的萤火虫控制台中,我可以在我的控制台中看到响应对象

我可以在 JSON 响应中与模型一起返回虚拟属性吗?

谢谢你!

0 投票
2 回答
25725 浏览

ruby-on-rails - 如何判断控制器已决定呈现哪种格式

在具有以下代码的 rails 控制器操作中:

如何记录控制器将解析的格式,即“HTML”或“json”?formatCollector类型。有没有办法获取表示格式的字符串?

0 投票
1 回答
2551 浏览

ruby-on-rails-3 - Rails 3如何在请求类型为*/*时强制响应类型

我有一个before_filter想要根据请求和参数的各个方面默认响应类型。例如,

这个想法是respond_to do |format|; format.html { ... }; format.json { ... }然后将根据客户条件适当地呈现。一些客户端作为类型进入*/*(大概这是request.content_type?),我想强制这些是 HTML 响应。但是似乎不起作用。什么是一种干净的方法来做到这一点,并且没有为每条路线设置默认类型?即我只想将响应类型插入请求中,以便respond_to相应地打开它。

0 投票
1 回答
1515 浏览

sinatra - Sinatra + 机架路由

我有一个看起来像这样 ws_app.rb 的应用程序文件:

modules/Battery.rb 看起来像这样:

控制器/BatteryController.rb 文件如下所示:

当我正常运行 Sinatra 时,这非常有效,如下所示:

然后去这里:

我得到了我期待的 JSON:

但我需要将它部署在切诺基网络服务器上,所以我想为此制作一个机架 config.ru 文件......

所以我有一个文件 mpthmiws.rb 包含

还有一个 config.ru 文件,其中包含

当我跑

去这里:

但后来我得到了著名的,“Sinatra 不知道这个小曲 - 尝试 get '/battery/1.json' do "Hello World" end

如果我从控制器/BatteryController.rb 文件中获取第一条路由并将其放在 ws_app.rb 文件中的 HMIMPT 类中,如下所示:

我收到此错误:

我该如何解决这个问题?谢谢

0 投票
1 回答
3695 浏览

ruby-on-rails - 将 rails 控制器的响应类型设置为 xml

我对rails很陌生。我正在尝试将 Rails 控制器的响应类型设置为 xml,但运气不佳。我当然可以更好地理解 respond_to 和 respond_with 是如何工作的。

这是我的控制器的样子:

这会导致 http 检索失败。有人可以告诉我如何修复控制器并将其响应类型设置为 xml 吗?此外,关于 respond_to 和 respond_with 如何工作的令人信服的 1-2 班轮会很棒!

谢谢大家。