0
我想實現評論回覆功能到我的項目,但我不是很確定我使用的方法。我的基本想法是將所有的評論保留在一張表中,同時有另一個表comments_replies這將有父母的評論(評論)和評論(回覆)。現在我有這樣的事情是comments_replies遷移:在同一張表中有一張表有兩個外鍵rails
模型comments_reply.rbbelongs_to :comment, class_name: 'Comment'
,並在模型comment.rb
create_table :comments_replies do |t|
t.integer :parent_comment_id, index: true, foreign_key_column_for: :comments, null: false
t.integer :reply_comment_id, index: true, foreign_key_column_for: :comments, null: false
t.timestamps null: false
end
和
has_many :comments_replies, foreign_key: :parent_comment_id, foreign_key: :reply_comment_id
對於第二部分,因爲即時嘗試使用RSPEC用於測試目的,在模型comments_reply_spec.rb我有:
require 'rails_helper'
RSpec.describe CommentsReply, type: :model do
let(:comments_reply) { create(:comments_reply) }
subject { comments_reply }
it { is_expected.to respond_to(:parent_comment_id) }
it { is_expected.to respond_to(:reply_comment_id) }
end
,但我不知道如何正確地測試這種情況下,因此任何建議,將不勝感激
我錯過了建議的方法,我相信它會更容易和更加有用,但是應該如何我在遷移和模型中指定parent_id字段,是否可以簡單地在遷移中寫入: t.integer:parent_id,index:true,foreign_key_column_for :::comments,null:false 評論模型: belongs_to:comment,foreign_key::parent_id,class_name:'Comment' 還有一件事,在評論模型中,我需要寫一些類似於: has_many:comments,foreign_key :: parent_id – Hatik