我正在使用Rails版本3.0.9和jquery。 问题是,当您单击链接时,div不会更新。 有两个动作:“显示”和“时间”。初始位置 - 显示。 控制器代码是(ajax_controller.rb):
class AjaxController < ApplicationController
respond_to :html, :js
def show
end
def time
end
end
点击div中的链接应加载时间。
下一个代码(show.html.erb):
<h1>Ajax show</h1>
Click this link to show the current
<%= link_to "time", :url=>{:action => "time"}, :remote => true%>.<br/>
<div id='time_div'>
</div>
此外,还有文件time.html.erb和time.js.erb。 遵循代码(time.js.erb):
$('#time_div').html('<%= escape_javascript(render :text => "The current time is #{Time.now.to_s}") %>');
但没有任何反应。 jquery连接。 可能是什么问题?
答案 0 :(得分:1)
您可能遇到路线问题。你的routes.rb中有这样的东西吗?
RAILS_ROOT /配置/ routes.rb中
get '/time', :to => 'ajax_controller#time', :as => :ajax_time
然后你应该像这样使用rails helper调用url
<%= link_to "time", ajax_time_path, :remote => true %>
答案 1 :(得分:0)
您可以查看日志以查看是否确实呈现了time.js.erb。可能会改为呈现HTML版本。如果是这种情况,请删除HTML版本。