【问题标题】:Ajax to reload div content in Rails 4 error + where to put remote: trueAjax 重新加载 Rails 4 中的 div 内容错误 + 远程放置位置:true
【发布时间】:2013-10-13 23:55:13
【问题描述】:

我正在尝试定期刷新屏幕上的 div。 div 在我的 index.html.erb 中,看起来像这样

<div id="shared_tasks_div">
<ul>
  <% @canEditTasks.each do |elem| %>
     <div class="draggable">    
     some code to put elem values in <p>
     </div>
  <% end %>
    <% @canView.each do |elem| %>
    <div class="draggable">    
     some code to put elem values in <p>
    </div>
<% end %>
</ul>
</div>

在我的任务控制器中,我添加了以下代码

  def index
    @tasks = current_user.task
    @canEditTask = some query
    @canView = another query
    respond_to do |format|
      format.js { render :div_tasks }
    end
  end

我在我的 app/views/tasks 中创建了以下 js div_tasks.js.erb

$("#shared_tasks_div").html("<%= j(render('index', :canEditTasks=> @canEditTasks)) %>");
$("#shared_tasks_div").html("<%= j(render('index', :canView=> @canView)) %>");

我现在必须发出 a)我应该把remote: true放在哪里 b) 我的索引方法出现以下错误

ActionController::UnknownFormat
    respond_to do |format|
      format.js { render :div_task }

我确实看到了以下两个帖子并将一些建议整合到我的解决方案中,但它并没有解决问题 Rails 4 ajax update div Rails 3 - Update div content with Ajax and jquery (nested resources)

感谢您的帮助

【问题讨论】:

  • 您的div_notes.js.erb 应该在app/views/tasks 目录中,而不是在app/assets/javascripts 目录中。您的错误也显示render :div_task,但您的index 操作有div_notes。在您尝试发布链接的答案后出现此错误吗?
  • 我移动了文件,而 div_note 是我帖子中的错字。我仍然遇到同样的错误。
  • 是的,这是我尝试借助此处发布的链接实现 ajax 刷新后的错误
  • 会不会是因为在我的视野中没有远程的结果?

标签: jquery ruby-on-rails ajax ruby-on-rails-4


【解决方案1】:

尝试向您的 index.html.erb 文件添加定期 javascript ajax 调用。 javascript 应该包含对任务控制器中 index 方法的 ajax 调用(dataType:脚本将确保 format.js)。

您可以使用此处列出的方法: How to fire AJAX request Periodically?

【讨论】:

  • 嘿,我很难弄清楚。能给我举个更具体的例子吗
猜你喜欢
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 2017-03-15
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
相关资源
最近更新 更多