【问题标题】:Ajax to refresh partial not working in railsAjax 刷新部分不在 Rails 中工作
【发布时间】:2015-08-29 16:40:28
【问题描述】:

我想在首页显示用户的文章信息,用户点击My Articles链接,就会显示信息,不需要刷新整个页面:

对于ArticlesController

  def index
    @user = User.find(params[:user_id])
    @articles = @user.articles.page params[:page]
    respond_to do |format|
      format.html { render :index }
      format.js
    end
  end

index.html.erb:

<%= render 'index/my_articles' %>

部分视图_my_articles.html.erb

<div class="panel panel-default" id="my_articles">
  <ul class="list-group">
    <% @user.articles.each do |article| %>
    <li class="list-group-item">
        <%= link_to article.title, user_article_path(@user, article) %>
      <% end %>
    </li>
  </ul>
</div>

index.js.erb:

 $("#my_articles").html("<%= escape_javascript(render 'index/my_articles').html_safe %>");

当我点击链接时什么都没有显示,但是根据rails日志呈现了部分:

Started GET "/users/55daf9df57d2fa0a9c000006/articles" for ::1 at 2015-08-30 00:22:20 +0800
Processing by ArticlesController#index as JS
  Parameters: {"user_id"=>"55daf9df57d2fa0a9c000006"}
  Rendered index/_my_articles.html.erb (3.7ms)
  Rendered articles/index.js.erb (6.4ms)
Completed 200 OK in 24ms (Views: 21.7ms | ActiveRecord: 0.0ms)

我对ajax和JS不熟悉,希望有人能帮助我,在此先感谢!

【问题讨论】:

  • 您的代码看起来不错。尝试删除.html_safe...并尝试。
  • @ArupRakshit 谢谢你的回复,但还是不行
  • @pangpang:如果你只做$("#my_articles").html("");会发生什么?
  • @fylooi 什么都没发生,和以前一样
  • @fylooi 感谢您的帮助,我将“#my_articles”设置为错误的位置

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


【解决方案1】:

试试这个方法。添加 :remote=> true 并将结束标记放在 li 标记之后。

<div class="panel panel-default" id="my_articles">
 <ul class="list-group">
  <% @user.articles.each do |article| %>
  <li class="list-group-item">
    <%= link_to article.title, user_article_path(@user, article), :remote => true %>
</li>
<% end %>
</ul>
</div>

在 index.js.erb 中编辑到

$("#my_articles").html("<%= escape_javascript(render 'my_articles').html_safe %>");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多