【问题标题】:ajax, link_to remote in ruby on railsajax,link_to remote in ruby​​ on rails
【发布时间】:2013-03-06 01:05:50
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails ajax link-to


    【解决方案1】:

    您缺少将使用 Ajax 请求的结果更新 div 内容的 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,可能会解释一些事情。

    【讨论】:

    • 嘿,谢谢它的工作。问题还在于 link_to 语法。我将其更改为 :say_when , :remote => true) %> 。现在可以了!!
    猜你喜欢
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多