#<Review:0x007fe460871f08> 的未定义方法“total_pages”

undefined method `total_pages' for #<Review:0x007fe460871f08>

错误输出为:

undefined method `total_pages' for #<Review:0x007fe460871f08>

电影#Show:

  def show
    @review = @movie.reviews.paginate(page: params[:page], per_page: 6).order('created_at DESC').build
  end

我通过 before_filter.

设置了@movie

我的看法:

  <% if @movie.now_playing %>
    <% if @movie.reviews.any? %>
      <% @movie.reviews.each do |review| %>
        <div id="each_review_container">
          <span><%= link_to @movie.creator.name, user_path(@movie.creator) %> | </span>
          <span id="time"><%= review.created_at.try(:strftime,'%b %d, %Y') %></span>
          <p>Rating: <%= review.rating %>/10</p>
          <p><%= review.content %></p>
        </div>
      <% end %>
      <div class="digg_pagination"><%= will_paginate @review %></div>
    <% else %>
      <span id="review_message">No Reviews yet!</span>
      <span id="add_new_review_link"><%= link_to 'Add New Review', new_movie_review_path(@movie) %></span>
    <% end %>
  <% else %>
    <p id="review_message">You will be able to submit a review when the movie releases</p>
  <% end %>

重新启动我的服务器,我得到同样的错误。

在此问题上停留了一段时间,希望得到任何帮助,谢谢!

它看起来像一个错误,我想你想要的是评论而不是一条评论:

def show
    @reviews = @movie.reviews.order('created_at DESC').paginate(page: params[:page], per_page: 6)
end

查看:

  <% if @movie.now_playing %>
    <% if @reviews.any? %>
      <% @reviews.each do |review| %>
        <div id="each_review_container">
          <span><%= link_to @movie.creator.name, user_path(@movie.creator) %> | </span>
          <span id="time"><%= review.created_at.try(:strftime,'%b %d, %Y') %></span>
          <p>Rating: <%= review.rating %>/10</p>
          <p><%= review.content %></p>
        </div>
      <% end %>
      <div class="digg_pagination"><%= will_paginate @reviews %></div>
    <% else %>
      <span id="review_message">No Reviews yet!</span>
      <span id="add_new_review_link"><%= link_to 'Add New Review', new_movie_review_path(@movie) %></span>
    <% end %>
  <% else %>
    <p id="review_message">You will be able to submit a review when the movie releases</p>
  <% end %>

在您看来,您正在呼叫@movie.reviews 你为什么要在循环中写@movie.reviews?你应该使用@review of action instead.It is firing query every time you call it.

@movie.reviews 在您看来导致了这里的猜测错误,因为它不包含分页参数,而您正试图通过它进行分页。