2013-03-17 37 views
3

我是新來的紅寶石在軌道上。我正在學習一個教程,以瞭解ajax如何在使用link_to和remote = true的rails上工作。我有以下代碼。ajax,link_to遠程紅寶石在軌道上

// in view/home/sample.html.erb 

<head> <%= javascript_include_tag "prototype.js" %> </head> 
<body> 
<div id="time_div"> 
<%= link_to("click here", :update=>'time_div' ,:url=>{:action => :say_when} , :remote => true) %> 
</div> 
</body> 

// in /controllers/home_controller.rb 

def sample 
end 

def say_when 
    render_text "<p>The time is <b>" + DateTime.now.to_s + "</b></p>" 
end 

我把prototype.js放在assets/javascripts文件夾中。 但我沒有得到瀏覽器的時間。 PLZ有人幫助

回答

1

您錯過了將更新div內容與Ajax請求的結果的JavaScript。你可以嘗試這樣的:

創建say_when.js.erb具有以下內容

$("time_div").update('<%= escape_javascript("<p>The time is <b>#{DateTime.now.to_s}</b></p>")%>'); 

您可以從控制器刪除方法say_when,也沒有在它需要了代碼,Rails會直接調用say_when.js.erb文件。

看看這#205 Unobtrusive Javascript Railscast可能會解釋的事情。

+0

嘿,謝謝它的工作。問題也出現在link_to語法中。我將它改爲<%= link_to(「click here」,:action =>:say_when,:remote => true)%>。現在它的作品! – nbbk 2013-03-17 19:05:34