私のモデルは次のようになります。複数のbelongs_toを持つ子レコードを削除するにはどうすればよいですか?
class Project < ActiveRecord::Base
has_many :entries
end
class User < ActiveRecord::Base
has_many :entries
end
class Entry < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
が、私はそれが削除されるとき、プロジェクトに依存してすべてのエントリを削除したいです。私はIDとしてUUIDのPostgresを使用しています。
class Project < ActiveRecord::Base
has_many :entries, dependent: :destroy
end
そして、この:
class Project < ActiveRecord::Base
has_many :entries
before_destroy { |project| Entry.destroy_all "project_id = #{project.id}" }
end
しかし、プロジェクトが削除されるとき、エントリが残っている私はこれを試してみました。彼らはまだ別の親オブジェクトを持っているという理由があると思います。
私も自分のコントローラからそれらを削除しようとしました:問題は何、私が何かを
def destroy
@project = current_company.projects.find(params[:id])
@project.time_entries.delete_all
...
end
行方不明ですか?
うわー、私の悪い、私はそれらの2つの方法の違いがあったことを認識しませんでした。それを明確にしてくれてありがとう! –