100万通りの方法を試しましたが、理解できません。
ビューから、次のメソッドの quantitymy および createddate (モデル内にある) にアクセスするにはどうすればよいですか?
def self.groupit
group("hour(created_at)").select("count(*) as quantitymy, hour(created_at) as createddate")
end
私はそれを完全に間違っていると確信しています.グループのこともうまくいきません.誰か助けてもらえますか? ありがとう :)
更新: User モデル、Group モデル、Post モデルがあります。
ユーザーは 1 つのグループに属し、投稿はユーザーに属します。投稿は、ユーザーのみを介してグループに属します。
グループに投稿されたすべての投稿を時間別にグループ化して表示しようとしています。だからそうあるべきだ
Group 1: 1 post at 13:00, 5 posts at 14:00
Group 2: 17 posts at 12:00, 1 post at 13:00, 2 posts at 14:00
等
コントローラーを介して次のように表示しました。
@groups = Group.all
ビューでそれらをループします。
<% @groups.each do |g| %>
<% if g.posts.exists? %>
<tr>
<td><b><%= g.name %></b>;
<%= g.posts.count %> posts
<% g.posts.each do |post| %>
<%= post.created_at.strftime("%H") %>:00;
<% end %>
</td>
<% else %>
<% end %>
</tr>
<% end %>
更新 2/ 回答:
<% @groups.each do |g| %>
<% if g.posts.exists? %>
<tr>
<td><b><%= g.name %></b>;
<%= g.posts.count %> posts
<% g.posts.group("hour(posts.created_at)").count("hour(posts.created_at)").each do |created_at, quantitymy| %>
<%= created_at %>; <%= quantitymy %>
<% end %>
</td>
<% else %>
<% end %>
</tr>
<% end %>