2011-11-14 51 views
0

我的Rails應用程序基於兩個控制器/視圖/ models..both控制器使用不同的佈局更新佈局到另一個

控制器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

當您從頁面A導航到頁面B時試試redirect_to – megas

+0

我嘗試了redirect_to。它確實重定向,但是新的佈局仍然不起作用。當我手動刷新頁面時,刷新的頁面使用新的佈局。有沒有辦法從控制器或視圖內調用諸如window.location.reload()(或類似的)來完成頁面刷新? – RORNewbie

+0

在您設置佈局的位置顯示您的代碼 – megas

回答

1

什麼終於爲我工作是將:rel=>"external"到的link_to其中t讓我從視圖A到控制器B /視圖B.這會強制整頁重新加載,並立即應用新的佈局。

相關問題