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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

受付中

自動削除機能が実行されない

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

0回答

0グッド

0クリップ

215閲覧

投稿2022/10/11 00:40

前提

掲載日を超えると、自動で削除されるようにしていたが、DM機能を付けた後に
削除されず、エラーが発生した。
Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails
と表示され調べると外部制約キーについての修正について書いており、plan.rbの
has_many :roomsに dependent: :destroyを付け足したところ下記のエラーが発生しました。

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

ActiveRecord::StatementInvalid at /plans/18 Mysql2::Error: Unknown column 'users.room_id' in 'where clause'

該当のソースコード

class Plan < ApplicationRecord has_many :rooms, dependent: :destroy belongs_to :user mount_uploader :photo, PhotoUploader validates :title, presence: true, length: { maximum: 50 } validates :photo, presence: true validates :detail, presence: true validates :conditions, presence: true validates :start_on, presence: true validates :end_on, presence: true end

・掲載後に削除する機能

plans_contorllers.rb/plan_destroy

1def plan_destroy 2 Plan.where('end_on < ?', Date.today).destroy_all 3 end

調べて、修正してもわからないので、アドバイスを頂けたら幸いです。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/10/11 00:41

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

m.ts10806

2022/10/11 00:43

「自動削除」はどのように実行されてるのでしょう。 どう見ても何かしらのリクエストによって実行されてるようにしか見えないのですが。 ただ、本当に勝手に削除してしまっていいんですか? データの整合性とれなくなってるのでは? 設計思想等をきちんと伝えない限り、根本的な解決にはなりません。 設計から見直す必要があるかもしれませんし、それこそ小手先の実装レベルの話には思えません。
退会済みユーザー

退会済みユーザー

2022/10/11 01:04

すみません。 色々と再興した結果、掲載期間が過ぎたら、「掲載期間が終了した」と表示され、応募およびメッセージボタンが表示されないようにするということに変更しました。 質問後に変えてしまい、大変申し訳ありません。
m.ts10806

2022/10/11 01:07

仕様コロコロ変えすぎて実装が追い付いてないだけではないでしょうか(ずっと前からそんな感じ)
退会済みユーザー

退会済みユーザー

2022/10/11 01:14

ずっと前からそう感じていたのならば、誠に申し訳ないです。 仕様や設計書は書いてはいるのですが、開発していく中で違うなと思う部分が出てきたので、 まだまだ甘いなと自分自身、痛感しました。。。
m.ts10806

2022/10/11 01:32 編集

「小手先だけでなんとかするのではなく」のようなコメントは初めてではないと思うのですが、 伝わっていなかったようで残念です。 直前の質問でwinterboumさんに指摘されたことも全く活きてないと思います。 https://teratail.com/questions/o6716zt06tt5ce
退会済みユーザー

退会済みユーザー

2022/10/11 01:23

本当にすみません。 勉強がまだまだ足りず、私自身の理解力の低さが原因だと思っています。
m.ts10806

2022/10/11 01:29

謝る必要はなく(こちらも謝ってほしいわけではなく) 地道に階段を1段ずつ上ってもらいたいだけです。 せめて「赤の他人が読んで理解できる、現象を再現できる」くらいはやりましょう。 理解力関係ない部分です。あくまで配慮の問題(あと本当に解決する気があるかどうか)
退会済みユーザー

退会済みユーザー

2022/10/11 01:34

すみません。 なんかアドバイス得られたらな程度に気軽に質問をしてかもしれません。 まだまだうまく伝えられないので、もう少し起こっている現象や困っている箇所に対して。 相手が理解できるような質問できるよう配慮したいと思います。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。