问题标签 [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.
ruby-on-rails - 在 Rails 中对相同的 respond_to 格式使用不同的逻辑
我的 Rails 应用程序当前使用 JSON 作为respond_to
网站上 AJAX 表单的格式。我计划为应用程序创建一个公共 API,并且我也想为它使用 JSON。如果两者的请求格式都是 JSON,我如何区分控制器中的 AJAX 表单和 API 调用?
ruby-on-rails - 用于 csv 的非资源的 Rails 路线
我有一个名为“修订”的方法,我希望能够使用相同的逻辑但输出到 csv。我想我想使用 FasterCSV gem。我需要的是添加到我的路线中以便获得 html 和 csv 输出的路线。我希望我的网址是这样的:
想法?
非常感谢!
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 - 使用 Prototype,是否有可能“redirect_to”避免处理完整的“js.rjs”代码?
在 *user_controller.rb* 文件中,我有以下代码:
在update.js.rjs文件中我有这个代码
这是一种重定向 Java 响应并传递变量(@yo == true)的技巧。但是我认为最好在大括号中执行类似“redirect_to”的操作,避免处理update.js.rjs中的代码:
但我不知道该怎么做或是否有可能。有人可以就这个问题给我建议吗?
ruby-on-rails-3 - Rails3 和 Respond_with 问题
我有一个应用程序,上面有两个用户界面。
第一个适用于普通用户,第二个适用于iphone用户。
一切正常,直到我在控制器中重构我的代码以使用respond_with声明而不是respond_to。
该应用程序仍然适用于 html 界面(:format => :html),但不适用于 iphone 界面(:format => :iphone)。
在 iphone 上,当我执行以下操作(:index、:new、:edit、:show)时,它可以工作。
但是当我这样做时(:create,:update,:destroy),我收到错误说找不到模板(例如create.iphone.haml)。
在我的控制器上,我有
然后例如,编辑和更新操作
事实上,我希望 :iphone 格式被处理为 :html 是......而不是通过调用 to_format 方法,因为它在doc中指定。
ruby-on-rails-3 - 覆盖 to_xml 以限制返回的字段
使用 ruby 1.9.2 和 rails 3,我想限制以 json 或 xml 访问记录时返回的字段(仅允许两种格式)。
这个非常有用的帖子向我介绍了respond_with,我在网上的某个地方发现了一个全面允许/拒绝某些字段的好方法是覆盖类的as_json或to_xml并设置:only或:except来限制字段。
例子:
这正是我正在寻找并适用于 json 的内容,但对于 xml“索引”(GET /widgets.xml),它以一个空的 Widget 数组响应。如果我删除 to_xml 覆盖,我会得到预期的结果。我做错了什么,和/或为什么 Widgets.to_xml 覆盖会影响 Array.to_xml 结果?
我可以通过使用解决这个问题
但不觉得这是一个很DRY的方法。
ruby-on-rails-3 - 如何在 Rails 的 respond_to 块中传递布局错误?
我试图弄清楚如何使这项工作。这是我的代码,现在不工作:
javascript - 如果 format.html 存在,respond_to 不能与 format.js 一起使用
使用时respond_to
,我的 AJAX 调用仅在 HTML 响应不存在时才调用 javascript 响应。
我有以下 javascript 用于提交就地编辑操作:
然后我有以下调查控制器方法:
如果我删除该format.html
行,format.js
则按应有的方式响应。但是如果我离开format.html
那里,那么当我通过那个editable
javascript 位提交时,整个页面都会呈现。
我正在为这个应用程序运行 Rails 3.0.3。
ruby-on-rails - 发布时控制器更改变量的格式
我是 ROR 的新手,但很快就赶上了。我已经在这个问题上工作了几个小时,这似乎是一个错误。我没有任何意义。
我有一个具有以下迁移的数据库:
我已经根据此迁移验证了在数据库中创建的也是整数、字符串等。
通过脚手架生成控制器后我没有接触过控制器,即它是带有显示,索引等的标准控制器。
现在。当我通过 Web 表单、Rails 控制台或直接在数据库中输入数据时——例如用于url的 www.domain.com或用于adsense的 500——它将毫无问题地在数据库中创建。
然而,当它在网站上发布时,变量完全疯了。Adsense(整数)变成日期,url(字符串)变成浮点数,以此类推。这只发生在少数变量上。
这也会产生“参数超出范围”的问题,因为我输入 500,Rails 将尝试将其输出为 date => crash 和“参数超出范围”。
那么,我该如何解决/解决这个问题?为什么格式会发生变化?可能是因为控制器中的 respond_to 吗?
干杯,
克里斯托弗
控制器:
看法:
输出:
对于这个输出,我使用了以下输入:
请注意,例如,该 url 留空(并创建了 0.0 输出)。帝国类型留空并创建 0 输出。
为了进一步澄清,数据库中的数据正是我的输入。只有输出错误。
当我回到编辑模式时。“Adsense”和“Affiliator”的输出(默认值)显示2000-01-01 00:00:24 UTC。
ruby - Ruby 1.9.2 Object.respond_to?:hello && Object.hello 给出错误,为什么?
今天在单步执行代码时,我注意到了一些意想不到的事情。这个说法:
如果 Object.respond_to? :hello && Object.hello #stuff
给出未定义的方法错误。但为什么?显然 hello 不是 Object 的有效方法,但是考虑到短路评估,Object.hello 不应该在 Object.respond_to 时被忽略吗?: 你好是假的?
我在玩 Authlogic 时注意到了这一点,试图弄清楚为什么 UserSession 类必须定义持久化?在 Rails 3 中。
谢谢