3

我是 ruby​​ on rails 的新手。我正在按照教程来了解 ajax 如何使用 link_to 和 remote=true 在 Rails 上工作。我有以下代码。

// 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 文件夹中。但我没有时间在浏览器上。请有人帮忙

4

1 回答 1

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可能会解释一些事情。

于 2013-03-17T18:25:41.180 回答