Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails 5根据JS请求呈现_Ruby On Rails_Coffeescript - Fatal编程技术网

Ruby on rails rails 5根据JS请求呈现

Ruby on rails rails 5根据JS请求呈现,ruby-on-rails,coffeescript,Ruby On Rails,Coffeescript,嗨,我正试图从同一个索引控制器响应中呈现一个索引页特定部分,我不知道这是否可能 这是索引控制器代码 def index @songs = Song.language_fillter(params[:language]).category_fillter(params[:category]).paginate(:page =>params[:page], :per_page => 6) @languages = Song.distinct.select(:language) @cate

嗨,我正试图从同一个索引控制器响应中呈现一个索引页特定部分,我不知道这是否可能

这是索引控制器代码

def index
@songs = Song.language_fillter(params[:language]).category_fillter(params[:category]).paginate(:page =>params[:page], :per_page => 6)
@languages = Song.distinct.select(:language)
@category = Song.distinct.select(:category)
respond_to do |format|
  format.html{}
  format.js{ render partial: 'songs/songshow', :collection => @songs, :layout => false}
end
end
index.html.erb

<ul class="nav justify-content-center mt-3">
 <li class="nav-item">
  <select class="custom-select song_filter" id="language_filter">
  <option value=""selected>Language</option>
  <% @languages.each do |lang| %>
    <option value="<%= lang.language %>"><%= lang.language %></option>
  <% end %>
</select>
</li>
<li class="nav-item">
   <select class="custom-select song_filter" id="category_filter">
     <option value="" selected>Category</option>
     <% @category.each do |cat| %>
     <option value="<%= cat.category %>"><%= cat.category %></option>
     <% end %>
   </select>
 </li>
</ul>
   <div class="container">
 <div class="mt-5 row" id="songs_display">
     <%= render partial: 'songshow' %>
 </div>

通过这个,我想它应该只渲染部分,但它也渲染布局,但我只想它应该渲染部分。有没有可能…

嗨,我有一个办法来做这件事。您正在使用respond_创建博客。您可以创建一个与控制器动作名称相同的一个coffee文件,并将coffee渲染像这样放入其中

咖啡

$('#songs_display').html("<%= j render partial: 'songs/songshow', :collection => @songs %>");
还有你的js请求

  $.ajax '/songs',
  type:'get'
  data:{language: language,category: category }
  dataType: 'script'
我希望这对你有用。如果有任何问题,请让我知道

  format.js{}
  $.ajax '/songs',
  type:'get'
  data:{language: language,category: category }
  dataType: 'script'