Я пытаюсь реализовать функцию ответа комментариев для своего проекта, однако я не очень уверен в использовании метода, который я использую. Моя основная идея - сохранить все комментарии в одной таблице, имея еще одну таблицу comments_replies, которая будет иметь родительский комментарий (комментарий) и комментарий (ответ). Теперь у меня есть что-то вроде этого является миграция comments_replies:Имея 2 внешних ключа из одной таблицы в одних и тех же табличных рельсах
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
и в модели comments_reply.rb
belongs_to :comment, class_name: 'Comment'
и в модели comment.rb
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 и в модели комментариев: принадлежит_to: comment, foreign_key:: parent_id, class_name: 'Comment' еще одна вещь, в модели комментариев мне нужно написать что-то вроде: has_many: comments, foreign_key:: parent_id – Hatik