Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

rails countの0が表示されません 初心者のため見落としかもしれません

解決したいこと

countの0を表示させたいです。

user_controller.rb
  def show
    @user = User.find_by(id: params[:id])
    @post_count = Post.group(:user_id).count
  end
show.html.erb
    <span class="fa fa-file-text-o"></span>:<%= @post_count[@user.id] %>
<%= @post_count[@user.id] if @post_count[@user.id] != 0 %>
とか
<%= @post_count[@user.id] if @post_count[@user.id] = 0 %>

とか、いろいろやってみたのですが、全ての表示が0になったり、表示されなくなったりしてしまい1人では解決できないと思い質問させていただきました。

最後まで読んでいただきありがとうございます。
教えていただけると幸いです。

0

2Answer

count0を表示させたいとのことですが、@post_count[@user.id]nilの場合には0を表示させたい、という理解で良いでしょうか?もしそうであれば、以下のようにコードを書いてみてください。

show.html.erbの部分を以下のように書き換えます。

<span class="fa fa-file-text-o"></span>:<%= @post_count[@user.id] || 0 %>

ここで、@post_count[@user.id]nilの場合には0が表示されます。
この方法で、表示が0になるかどうか試してみてください。

3Like

Comments

  1. @NetaNeta0620

    Questioner

    ありがとうございます。
    表示することができました。
    助かりました!

PostモデルUserモデル
belongs_toで関連付けて<%= @user.posts.count %>
とかじゃいけませんか?

また、

<%= @post_count[@user.id] if @post_count[@user.id] != 0 %>
とか
<%= @post_count[@user.id] if @post_count[@user.id] = 0 %>

上記については、構文として間違っているので
<%= %><% %>の違いを調べてみてください。
以下は参考です。

0Like

Your answer might help someone💌