我的rails应用程序有两个基于两个控制器/视图/模型的页面。两个控制器使用不同的布局
控制器A /视图A - 使用布局A - 使用jquery js / jquery css 控制器B /视图B - 使用布局B - 没有jquery ...标准默认值..
当我从页面A(基于控制器A /视图A)导航到页面B(基于控制器B /视图B)时...布局更改不会立即生效。我必须从浏览器手动“重新加载页面”...才能启动布局。
为什么布局更改不会自动生效?我该怎么做才能实现这一目标?
当我从B页切换回A页时......布局立即改变....不确定为什么当我从A页移到B时同样的事情不会发生。
添加了布局代码:
-- Layout 1
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</meta>
<title>myapp1</title>
<%= stylesheet_link_tag "jquery.mobile.min.css" %>
<%= javascript_include_tag "application","rails","jquery.min.js","jquery.mobile.min.js" %>
<%= csrf_meta_tag %>
</head>
<body>
<div data-role= "page" >
<%= yield %>
</div>
</body>
</html>
-- Layout 2
<!DOCTYPE html>
<html>
<head>
<title>myapp1</title>
<%= csrf_meta_tag %>
</head>
<body>
<div data-role= "page" >
<%= yield %>
</div>
</body>
</html>
添加控件代码的摘录,其中调用布局:
controller # 1
class HeadersController < ApplicationController
layout "xjquery"
before_filter :authenticate
controller # 2
class RhattachmentsController < ApplicationController
layout "xplain"
def index
rhid = session[:header_id]
答案 0 :(得分:1)
最终对我有用的是将:rel=>"external"
添加到link_to,它将我从View A转到ControllerB / View B.这会强制整页重新加载并立即应用新布局。