【问题标题】:Rails 3: AJAX call not refreshing div with link_toRails 3:AJAX 调用不使用 link_to 刷新 div
【发布时间】:2012-05-03 13:01:55
【问题描述】:

我正在使用 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 连接。 可能是什么问题?

【问题讨论】:

  • 加载 /show 操作时页面上呈现的内容是什么?你确定你已经包含 rails_ujs 了吗?

标签: ruby-on-rails ruby-on-rails-3 jquery link-to


【解决方案1】:

您可能会遇到路线问题。你的 routes.rb 中有类似的东西吗?

RAILS_ROOT/config/routes.rb

get '/time', :to => 'ajax_controller#time', :as => :ajax_time

然后你应该像这样使用 rails helper 调用 url

<%= link_to "time", ajax_time_path, :remote => true %>

【讨论】:

    【解决方案2】:

    您可以查看您的日志以查看 time.js.erb 是否确实呈现。可能会改为呈现 HTML 版本。如果是这种情况,请删除 HTML 版本。

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      相关资源
      最近更新 更多