私は立ち往生しています(まだRailsに非常に慣れていません)、なぜ機能しないのかわかりません:
私は持っている:
class Message < ActiveRecord::Base
attr_accessible :updated_at
has_many :categories_messages
has_many :categories, through: :categories_messages
end
class CategoriesMessage < ActiveRecord::Base
attr_accessible :category_id, :message_id
belongs_to :category
belongs_to :message
end
class Category < ActiveRecord::Base
attr_accessible :name
has_many :categories_messages
has_many :message, through: :categories_messages
end
@messagesPer = Category.all.includes(:messages).group('categories.id').order("COUNT(messages.id) DESC")
<% @messagesPer.each_with_index do |message, i| %>
<tr>
<td><%= i+1 %></td>
<td><%= message.name %></td>
<% if message.categories_messages.exists? %>
<td><%= message.messages.last.updated_at.to_s.to_date %></td>
<td><%= message.messages.first.updated_at.to_s.to_date %></td>
<td><%= message.messages.count %></td>
<% else %>
<td>0</td>
<td>0</td>
<% end %>
</tr>
<% end %>
だから私はそれを表示したい:カテゴリの名前、最後のメッセージが作成された日付、最初のメッセージが作成された日付、およびそのカテゴリのすべてのメッセージ。
最初のメッセージが作成された日付のみが表示され、最後のメッセージは表示されないという事実を除けば、すべて正常に機能します (最後のメッセージには最初の日付が表示されます)。私は何を間違っていますか?
アップデート:
私が入れたら
@messagesPer = Category.all.includes(:messages).group('categories.id')
最後のメッセージと最初のメッセージの正しい日付が表示されますが、注文を追加するとすぐに壊れます...