【问题标题】:Remote: true with link_to with params远程:true with link_to with params
【发布时间】:2015-05-28 12:50:32
【问题描述】:

我有以下问题

我有link_to

//_sort_by.html.erb
 <%= link_to "sort", :sort_by => "things", remote: true %> 

在我的控制器中,我有根据 sort_by 选择帖子的功能

def show_posts    
    @category=Category.find_by(name: params[:sort_by])

    if(@category)

    @posts=Post.where(category_id: @category)

    respond_to do |format|
      format.js  
      format.html
    end

    else
      @posts=Post.all
    end
 end

在视图中

   //show_posts.html.erb
       <div class="posts">
                      <%= render @posts %> 
       </div>
   // 
   and I have _post.html.erb

它工作正常(显然没有远程:true),但每次我更改帖子类别时它都会刷新网站,所以 在 show_posts.js.erb 我只想刷新 class="posts",比如

  $('.posts').load(location.href + " .posts");

在 routes.rb 我有'show_posts'。但不幸的是,它不起作用。有人可以帮我吗?

编辑: 将 show_posts.js.erb 更改为

  $('.posts').html("<%= j render @posts %>");

有效。谢谢大家的提示!

【问题讨论】:

  • 你能告诉我们发生了什么错误吗?
  • 没有错误,只是没有根据所选类别更改帖子列表
  • 你有部分帖子吗?
  • 你必须用类似这样的新内容替换 'posts' 类的内容 $('.posts').html("" )

标签: javascript ruby-on-rails


【解决方案1】:
 $('.posts').append("<%= escape_javascript render(:partial => 'posts') %>");

使用这些内容更改您的 show_posts.js.erb。

【讨论】:

    【解决方案2】:

    试试这个

    $('.posts').html("<%= j render 'post' %>");
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-20
      • 2016-04-28
      • 2019-06-21
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多