2011-05-23 71 views
1

我想分頁messages一個group有。Rails - WillPaginate衝突

但是當我嘗試打開我的group#show頁,給我的錯誤:undefined method 'content' for #<WillPaginate::Collection:0x31a67f0>,但錯誤給人行是我創建一個新Message行了,那就是在group#show頁以及:

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

任何想法?

回答

2

您需要遍歷消息並逐個打印每一條消息。

控制器:

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 
+0

感謝您的回覆!我的表單是<%form_for(:message,:url => messages_path(:person_id => current_person.id,:group_id => @group.id))do | f | %>' 我怎樣才能結束衝突? – Zeroz 2011-05-23 15:31:55

+0

交換'Message.new'的':message'。 – 2011-05-23 15:56:19

+0

謝謝!真的解決了。我有一個隨機問題:如果我把一個字符太多的消息,它不會破壞行,並尊重我的表,類,td div和東西,不管我用什麼。有關如何對此進行分類的任何想法? – Zeroz 2011-05-23 16:18:51