Rails - WillPaginate Conflict



我正在尝试对group具有的messages进行分页。

class GroupsController < ApplicationController
...
def show
...
@message = @group.messages.paginate(:page => params[:page])
end
  <% unless @group.messages.empty? %>
  <table class="messages" summary="Messages from Group">
  <tr>
  <td class="messages">
  <span class="content"><%= messages.content%></span>
  <span class="timestamp">
  Posted <%= time_ago_in_words(messages.created_at) %> ago.
  </span>
  </td>
  </tr>
 </table>
 <%= will_paginate @messagess%>
 <%end %>

但当我尝试打开我的group#show页面时,会出现错误:undefined method 'content' for #<WillPaginate::Collection:0x31a67f0>,但错误给出的行是我创建新Message的行,也就是在group#show页面中:

 <%= f.text_area :content, :rows=>5 , :cols=>49 %> 

有什么想法吗?

您需要对消息进行循环并单独打印每个消息。

控制器:

def show
  @messages = @group.messages.paginate(:page => params[:page])
end

视图:

<% unless @messages.empty? %>
  <table class="messages" summary="Messages from Group">
    <% @messages.each do |message| %>
      <tr>
        <td class="messages">
          <span class="content"><%= message.content %></span>
          <span class="timestamp">
            Posted <%= time_ago_in_words(message.created_at) %> ago.
          </span>
        </td>
      </tr>
    <% end %>
  </table>
  <%= will_paginate @messagess%>
<% end %>

为了防止表单出现错误,您需要向表单传递一个消息实例。例如

form_for(Message.new) do

相关内容

  • 没有找到相关文章

最新更新