我有一个电影列表,在页面上是类别列表。最初,电影列表将包含所有类别的电影。但是,当用户单击一个类别时,我希望仅将所选类别中的电影替换为列表。
<% @categories.each do |category| %>
<tr><td><%= link_to category, '/movies/show_category', :category => category, :remote => true%></td></tr>
<% end %>
<div id="#movies_list">
<% @movies.each do |movie| %>
<tr>
<td><%= movie.title %></td>
<td><%= movie.category %> </td>
<td><%= movie.rating %></td>
<% if !current_user.nil? %>
<% if movie.user.email == current_user.email %>
<td><%= link_to 'Show', movie, :class => "btn btn-primary"%></td>
<td><%= link_to 'Edit', edit_movie_path(movie), :class => "btn btn-primary" %></td>
<td><%= link_to 'Destroy', movie, method: :delete, data: { confirm: 'Are you sure?' }, :class => "btn btn-primary" %></td>
<% end %>
<% end %>
</tr>
<% end %>
</div>
我使用了ID为#movies_list
的div,以便可以使用js和partial替换该div。
这是我的show_category.js.erb
文件:
$("#movies_list").html("<%= escape_javascript(render("show_category")) %>");
这是我的部分_show_category.html.erb
:
<% @movies_by_category.each do |key, value| %>
<tr> </tr>
<tr> </tr>
<% if key == params[:category]%>
<th> <%= key %> <th>
<% value.each do |movie| %>
<tr>
<td><%= movie.title %></td>
<td><%= movie.rating %></td>
<% if false %>
<td>
<%= form_for @rating do |rating_form| %>
<%= rating_form.number_field :rating, class: 'rating', 'data-size' => 'xs'%>
<%= rating_form.submit 'Add', class: 'btn btn-primary btn-success' %>
<% end %>
</td>
<% end %>
<% if !current_user.nil? %>
<% if movie.user.email == current_user.email %>
<td><%= link_to 'Show', movie, :class => "btn btn-primary"%></td>
<td><%= link_to 'Edit', edit_movie_path(movie), :class => "btn btn-primary" %></td>
<td><%= link_to 'Destroy', movie, method: :delete, data: { confirm: 'Are you sure?' }, :class => "btn btn-primary" %></td>
<% end %>
<% end %>
</tr>
<% end%>
<% end %>
<% end %>
但是我的JavaScript从未被调用!我在这里做错了什么?请帮助!