首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 > 在RoR 2.x中使用respond_to与ajax进行优雅的降级

在RoR 2.x中使用respond_to与ajax进行优雅的降级
EN

Stack Overflow用户
提问于 2017-12-27 04:50:32
回答 1查看 0关注 0票数 0

我正在阅读关于rubyonRails的web开发的AWDR书籍,而旧代码的一个问题是它没有使用响应。respond_to以确保所使用的视图是javascript视图。现在,在一些更新的示例中,我看到人们稍后提到它们,在实现优雅降级时,使用request.xhr?判断用户是否启用了javascript,如果没有,则重新定向用户。

我想知道你是否需要respond_to去做同样的事,如果是的话,如果这被认为是好的形式,为什么?

所以我想做的是:

代码语言:javascript
复制
def function
  respond_to do |format|
    format.js do
      basic_stuff
    end
    format.html do
      basic_stuff
      user_redirect
    end
  end
end

这似乎违反了干法原则,我可能忽略了用户和服务器在这里的交互方式。老实说,API文档并没有对我说得很清楚。

EN

回答 1

Stack Overflow用户

发布于 2017-12-27 14:26:50

你可以这样重构:

代码语言:javascript
复制
def function
  basic_stuff # executed regardless of the mime types accepted
  respond_to do |format|
    format.html do
      user_redirect
    end
  end
  # will fall back rendering the default view - which you should ensure will be js
end

request.xhr?查看请求的X-Requested-With标题(查看它是否包含“XMLHttpRequest”)。respond_to查看接受的MIME类型。

您可以使用这两种方法来实现某种优美的度。

你不能用xhr?对于优雅的程度,除非Ajax调用设置了标头(Prototype会自动这样做)。

此外,respond_to提供了更多的灵活性,即从同一个块发送XML、json、js,无论是什么。

所以我建议respond_to这儿

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档