質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

846閲覧

条件に応じてデータを表示したいです。

morfonica

総合スコア33

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/08/11 13:45

前提・実現したいこと

Ruby on Rails でwebアプリを制作しています。
投稿に対して非表示ボタンを押すと、その投稿及び投稿したユーザーが投稿したもの全てを非表示にしたいにですが

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

class Public::PostsController < ApplicationController before_action :authenticate_customer! before_action :ensure_correct_customer, only: [:edit, :update, :destroy] def index @posts = Post.page(params[:page]).reverse_order # current_customer.muting = [2, 3, 4] @mute_posts = current_customer.mutings.each{ |mute| # @posts.select{ |posts| post != mute } } # binding.pry # @mute_post = current_customer. # current_customer.muting = [1, 2, 3] # sum = current_customer.muting.map{ |mute| # Post.where(user_id: mute) # end # Post.where(customer_id: ) # @post = sum end view <% @posts.each do |post| %> <tr id="post_<%= post.id %>"> <th><%= post.created_at.strftime("%Y/%m/%d %H:%M:%S") %></th> <th><%= attachment_image_tag(post, :image, :fill, 50, 50, fallback: "no-image.jpg") %></th> <th><%= post.text %></th> <% if post.customer == current_customer %> <td><%= link_to '編集する', edit_post_path(post), class: "btn btn-sm btn-success" %></td> <td><%= link_to '削除する', post_path(post), method: :delete, data: { confirm: '本当に消しますか?' }, class: "btn btn-sm btn-danger" %></td> <% else %> <td class="sympathy-btn"><%= render "public/sympathies/sympathy-btn", post: post %></td> <td class="cheer-btn"><%= render "public/cheers/cheer-btn", post: post %></td> <% if current_customer.muting?(post.customer) %> <td><%#= link_to "非表示を解除する", customer_relationships_path(post.customer.id), method: :delete, class: "btn btn-primary" %></td> <% else %> <td><%= link_to "非表示にする", customer_relationships_path(post.customer.id), method: :post, class: "btn btn-success" %></td> <% end %> <% end %>

試したこと

フォロー機能のような関係性を作り、『この投稿をしたユーザーの投稿を全て非表示にする』という条件をviewに書いてみたのですがエラーしか出なかったので、controllerに書こうとしたのですが、そちらもうまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

rails version 5.2.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ruby

1@posts = Post.page(params[:page]).reverse_order.where.not(customer_id: params[:id])

のようにすれば、(customer_id: params[:id])に該当するものを除外できます。

投稿2021/08/11 16:13

youtubeuta

総合スコア150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問