我想要得到一些基本的Ajax在rails上工作。我有一個comon主頁,帶有橫幅,側邊欄和主區域。在側邊欄中,我添加了一個下拉菜單和按鈕(我知道這很笨拙,但你必須從某處開始)才能更改用戶對該網站(所選網絡)的視圖屬性。這個想法是,當網絡改變時,AJAX功能應該改變網站列表,反映網絡已經改變的事實。Rails ajax渲染輸出一個完整的JavaScript屏幕
的問題是AJAX代碼運行時,我得到的JavaScript出現在我的瀏覽器窗口,而不是更新適當的元素
try {Element.update("site_list_body", "<-- the correct html appears here -->");} catch (e) { alert('RJS error:\n\n' + e.toString());
alert('Element.update(\"site_list_body\", \"<--same html code here too-->");'); throw e }
我有一個環顧四周計算器和谷歌,儘管嘗試各種建議,目前他們似乎都沒有工作。任何幫助將:-)
感謝
理解史蒂夫
所以(與簡化) - 我的主網頁看起來像這樣
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Networks: <%= controller.action_name %></title>
<%= stylesheet_link_tag 'frontier', 'menus' %>
<%= javascript_include_tag :defaults %>
</head>
<body id="frontier-network">
<div id="banner"
<--banner and menu stuff -->
</div>
<div id="columns">
<div id="side">
<-- some other stuff -->
<div id="site_list_body">
<%= render :partial => "shared/network_site_list", :locals => {:site_list => @site_list} %>
</div>
<div>
<% form_for :user, :url=>{:controller=>'users', :action => :change_network} do |f| %>
<-- this is where the dropdown list etc goes -->
</div>
</div>
<div id="main">
<%= yield :layout%>
</div>
</div>
的JavaScript .rjs.js文件包含 page.replace_html(「site_list_body」,:partial =>「shared/network_site_list」,:locals => {:site_list => @site_list})
And th E控制器代碼如下:
def change_network
@user = User.find(session[:user_id])
new_network_id=params["user"]["current_network_id"]
@user.current_network_id=new_network_id.to_i
@site_list=Site.find_all_by_network_id(@user.current_network_id)
respond_to do |format|
format.js
end
end
感謝您的建議。恐怕這是行不通的。輸出只是$(「#site_list_body」)。html('<! - render output - >'); – 2012-03-12 14:20:44
你正在用這行'<%= javascript_include_tag:defaults%>'包含文件defaults.js。那個文件是否包含這個'// = require jquery'和這個'// = require jquery_ujs'? – Ashitaka 2012-03-12 21:20:23