我有以下问题
我有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 =&#34;帖子&#34;,如
$('.posts').load(location.href + " .posts");
在routes.rb中,我得到了show_posts&#39;。但不幸的是,它不起作用。有人能帮助我吗?
编辑: 将show_posts.js.erb更改为
$('.posts').html("<%= j render @posts %>");
的工作原理。谢谢大家的提示!
答案 0 :(得分:2)
$('.posts').append("<%= escape_javascript render(:partial => 'posts') %>");
使用这些内容更改show_posts.js.erb。
答案 1 :(得分:1)
试试这个
$('.posts').html("<%= j render 'post' %>");
希望这有帮助!