如何在Rails中使用js.erb和html.erb部分?

时间:2019-01-06 06:44:18

标签: javascript ruby-on-rails partials

我有一个电影列表,在页面上是类别列表。最初,电影列表将包含所有类别的电影。但是,当用户单击一个类别时,我希望仅将所选类别中的电影替换为列表。

<% @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>&nbsp;</tr>
<tr>&nbsp;</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从未被调用!我在这里做错了什么?请帮助!

0 个答案:

没有答案