首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails没有为javascript请求选择正确的布局

Rails没有为javascript请求选择正确的布局
EN

Stack Overflow用户
提问于 2012-01-27 08:50:11
回答 4查看 1.2K关注 0票数 0

我的应用程序中有两种不同的布局,一种用于javascript (AJAX)请求,另一种用于常规请求。

代码语言:javascript
运行
AI代码解释
复制
# application.html.haml for non-js requests (abbreviated)
!!!
%html
  %head
  %body
    = yield

# and application.js.coffee for js requests
App.modal """<%= yield %>""" # creates a javascript modal

理论上,任何与:remote => true的链接都应该使用javascript布局。这在某些情况下是有效的,但在其他情况下不起作用。

它适用于此链接:

代码语言:javascript
运行
AI代码解释
复制
%li= link_to "Login", new_user_session_path, remote: true

# log output:
Started GET "/users/sign_in?&authenticity_token=KwyFmzGgR7Rdx3dudJDvw8b5rngvVDrwfTpYLPIPjEI=" for 127.0.0.1 at 2012-01-27 03:29:41 -0500
Processing by Devise::SessionsController#new as JS
  Parameters: {"authenticity_token"=>"KwyFmzGgR7Rdx3dudJDvw8b5rngvVDrwfTpYLPIPjEI="}
  Rendered devise/shared/_links.erb (0.9ms)
  Rendered devise/sessions/new.html.haml within layouts/application (6.3ms)
Completed 200 OK in 167ms (Views: 165.9ms | ActiveRecord: 0.0ms)

# output in the javascript console:
XHR finished loading: "http://localhost:3000/users/sign_in?&authenticity_token=KwyFmzGgR7Rdx3dudJDvw8b5rngvVDrwfTpYLPIPjEI=".

但对这个不起作用:

代码语言:javascript
运行
AI代码解释
复制
%li= link_to "Account", edit_user_registration_path, remote: true

# log output:
Started GET "/users/edit?&authenticity_token=KwyFmzGgR7Rdx3dudJDvw8b5rngvVDrwfTpYLPIPjEI=" for 127.0.0.1 at 2012-01-27 03:31:24 -0500
Processing by Devise::RegistrationsController#edit as JS
  Parameters: {"authenticity_token"=>"KwyFmzGgR7Rdx3dudJDvw8b5rngvVDrwfTpYLPIPjEI="}
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
  MobilePhone Load (0.3ms)  SELECT "mobile_phones".* FROM "mobile_phones" WHERE "mobile_phones"."user_id" = 1 LIMIT 1
  Rendered devise/registrations/edit.html.haml within layouts/application (6.7ms)
Completed 200 OK in 157ms (Views: 154.4ms | ActiveRecord: 0.6ms)

# output in the javascript console:
XHR finished loading: "http://localhost:3000/users/edit?&authenticity_token=KwyFmzGgR7Rdx3dudJDvw8b5rngvVDrwfTpYLPIPjEI=".

经过一些简单的调试,我意识到第二个请求正在命中application.html.haml (错误!),而第一个请求正在命中application.js.coffee (正确!)。ajax正在成功地处理这两个问题。

我在这里有点迷惑。我希望我犯了一个简单的错误,有人能指出!

谢谢!

附注:我正在运行rails 3.2.1 (之前在3.1.3上尝试过,但出现了同样的问题)

编辑:不确定是否有区别,但我使用的是mootools-rails驱动程序:https://github.com/kevinvaldek/mootools-ujs/blob/master/Source/rails.js。accepts标头已正确设置为"text/javascript“。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-02 19:01:36

为了让它工作,我必须这样做:(与javascript库无关)

代码语言:javascript
运行
AI代码解释
复制
# whatever_controller.rb
def index
  respond_to do |format|
    format.js   # renders index.html.haml inside application.js.haml layout
    format.html # renders index.html.haml inside application.html.haml layout
  end
end

或者,您可以只将操作的模板重命名为index.js.haml而不是index.html.haml,这样可以在不使用respond_to的情况下处理ajax请求。然而,这将意味着没有启用javascript的搜索引擎和浏览器将无法访问该页面。

另一种同样有效的方法是使用respond_with

代码语言:javascript
运行
AI代码解释
复制
# application_controller.rb
respond_to :html, :js

# whatever_controller.rb
def index
  respond_with # will render the appropriate layout
end
票数 0
EN

Stack Overflow用户

发布于 2012-08-25 23:09:24

我遇到了同样的问题,我从头开始尝试一个新的rails 3.2.7,但由于我使用的是application.haml而不是application.html.erb,,远程链接无法工作。我尝试了下面的方法:

application.haml转换为partial,将application.haml重命名为_application.haml

  • In application.html.erb
  1. 只有一行:

<%= render‘%>’应用程序

票数 2
EN

Stack Overflow用户

发布于 2012-01-27 09:49:31

至于布局,您应该在控制器上显式指定它。也许你可以将application.js.coffee改成另一个名字,并在控制器的顶部添加布局'new_name‘。

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

https://stackoverflow.com/questions/9030826

复制
相关文章
Rails布局和视图渲染
基于“多约定,少配置”原则,在 index 动作末尾并没有指定要渲染的视图,Rails会自动在控制器的视图文件夹中寻找 action_name.html.erb 模板,然后渲染。这里渲染的就是 app/views/books/index.html.erb
用户1515472
2019/07/24
3.5K0
选择正确的SEO网站
网站的选择会影响谷歌seo,因为seo要求具备网页编辑的权限,网页修改某些东西,管理网址的文件和文件夹名称,修改标题,描述和关键词标签,最好能够在页面中使用H标签标题以及数据标记,这样更有利于谷歌seo。
林雍岷
2019/07/03
7820
选择正确的WordPress插件
相信很多人在最开始接触 WordPress 之所以被吸引,可能是因为强大的插件系统,虽然 WordPress 本身有很多功能性的不足,但是通过插件,可以弥补这些不足,这样我们使用的不仅仅是 WordPress,而是一套操作简单易上手,功能却十分强大的 CMS 系统。 给 WordPress 网站选择正确的插件,主要有两个含义,一个是:通过使用正确的 WordPress SEO 插件,让整个 WordPress 的网站,每一篇文章,每一个页面,都符合搜索引擎的搜索要求,这样可以让搜索引擎更快的收录网站,提高网
沈唁
2018/05/24
1.1K0
GET请求使用@RequestBody的正确姿势
但是由于GET的参数是通过Url方式传递的,而不是请求体传递的所以无法通过@RequestBody注解来接收。
明明如月学长
2021/08/27
6.3K0
如何选择正确的图片格式
图片是网站、app不可或缺的重要组成部分,其中位图更是占了图片的绝大多数,本文主要讨论各种位图格式的特点和适用场景,希望能为大家选择图片格式提供一些帮助。
milom-淼
2020/03/09
2.9K0
如何选择正确的图片格式
如何正确选择多云架构?
多云是指企业使用两个或更多的公有云 IaaS 供应商。广义来看,混合云也在其范畴。多云架构有如下优势:
深度学习与Python
2022/04/19
6070
如何正确选择多云架构?
大规模SQL分析:为正确的工作选择正确的SQL引擎
我们都渴望获得数据。不仅是更多的数据……还有新的数据类型,以便我们能够最好地了解我们的产品、客户和市场。我们正在寻找有关各种形状和大小(结构化和非结构化)的最新可用数据的实时洞察力。我们希望拥抱新一代的业务和技术专业人员,这些人员是对数据和能够改变数据与我们生活息息相关的新一代技术有真正热情。
大数据杂货铺
2020/02/11
1.2K0
大规模SQL分析:为正确的工作选择正确的SQL引擎
同事没正确使用redis,把我害苦了...
原文链接:http://1t.click/atsQ
业余草
2019/12/03
3790
Django 中使用 ajax 请求的正确姿势
我的博客在导航栏中有一个在线工具跳转,博客中提供了一些比较实用的在线工具,最近两天又添加了一个在线工具,作用是可以查询 docker 官方镜像仓库中指定镜像的版本信息,虽然之前写在线工具的时候就已经掌握了 django + jQuery ajax 的用法,但经过这次的工具更新,我对 ajax 的用法又有了更深层次的理解,所以分享一下我的使用经验。
Hopetree
2022/09/26
2K0
不要争了!技术选择没那么重要
摘要: 技术没有高下之分,做好产品才是王道。 [2019-03-19-coding.png] 很多开发者非常热衷于比较不同技术,比如:Angular 是否比 Vue.js 更好?Node.js 能否取
Fundebug
2019/03/20
5300
不要争了!技术选择没那么重要
同事没正确使用redis,把我害苦了...
首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象
良月柒
2019/11/07
1.2K0
如何为Hadoop集群选择正确的硬件
当我们想搭建一个Hadoop大数据平台时,碰到的第一个问题就是我们到底该如何选择硬件。
Fayson
2018/03/29
3.7K0
如何为Hadoop集群选择正确的硬件
如何正确选择聚类算法?
数据聚类是搭建一个正确数据模型的重要步骤。数据分析应当根据数据的共同点整理信息。然而主要问题是,什么通用性参数可以给出最佳结果,以及什么才能称为“最佳”。
大数据文摘
2019/10/29
6900
如何正确选择聚类算法?
选择正确的ERP系统的8个步骤
在40年中,大多数ERP资深人士都注意到ERP行业已经从“在高尔夫球场上出售的ERP方案”转变为以发现为主导并带动业务收益的解决方案。供应商将发布更多在线ERP内容,从而使您获得更大的业务成功,并获得比以往更高的投资回报率,很容易被信息淹没。这可能使您很难理解解决方案的实质和不可行之处,以及最适合由谁来提供适合您业务需求的解决方案。
深圳ERP
2019/12/30
7750
选择正确的ERP系统的8个步骤
如何正确的选择云数据库?
江湖传说在选择和使用云数据库过程中 10个人有9个会遇到以下问题: 数据库正常使用过程中莫名卡顿 经常遭遇主从延迟和主从不一致 不知如何实现无损跨云跨数据库迁 话不多说,请看本期《如何选正确的云数据库
勤劳的小蜜蜂
2019/06/18
1.9K0
javascript和jquary的ajax请求
ajax全称 Asynchronous JavaScript and XML(异步的JavaScript和XML)。不是一门新技术,是html,css,js,或jq,dom操作的综合运用。 ajax具有异步请求,局部刷新(不是整个网页刷新,只刷新网页某些区域)的特点。 通过ajax局部刷新数据
微醺
2019/01/17
9760
Javascript 发送 GET/POST 请求
JS 有多重方式可以实现发送 网页请求的功能,我这里记录最方便简单的 —— 基于JQuery 和 form 的GET/POST数据提交。
为为为什么
2023/02/21
1.2K0
用Python请求接口的正确姿势是啥
您好,我是码农飞哥,感谢您阅读本文!本文主要介绍Python中如何请求外部接口以及如何通过Flask框架定义接口。
码农飞哥
2021/08/18
1K0
使用curl 命令模拟POST/GET请求的正确姿势
官方文档有非常非常详尽的介绍:https://curl.haxx.se/docs/httpscripting.html
明明如月学长
2021/08/31
53.8K0
选择一款适合自己的ruby on rails IDE开发工具
用ROR框架做开发,基本上只要SciTE+资源管理器+命令行 就可以了,但如果您确实一时很难忘记IDE环境,而且机器配置又不咋地,建议您重返三剑客时代,找找当年DreamWeaver的感觉 :)  h
菩提树下的杨过
2018/01/22
1.6K0
选择一款适合自己的ruby on rails IDE开发工具

相似问题

没有为多个标志选择正确的值

112

Tapioca没有为Rails模型生成正确的RBI文件

114

MySql没有为几个查询选择正确的索引

22

Rails防止AJAX请求期间的布局

10

Javascript for google map无法正确响应rails中的ajax请求

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档