malworm
@malworm

Как использовать has_many ActiveRecord?

Здравствуйте, подскажите пожалуйста, как в актив рекорд используя has_many привязать несколько комментариев к одному посту, буду очень благодарен примеру. У меня получается так, что посты сохраняются отдельно, а комментарии отдельно, поле post_id остается всегда пустым, следовательно комментарии не соответствуют никакому посту. Как правильно принимать параметры и сохранять их, чтобы было соответствие?
P.S: пожалуйста, не нужно кидать ссылку на guides.rubyonrails.org , не нашел там ответа
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
@Trikita
class Post < ActiveRecord:Base
  has_many :comments
end

class Comment < ActiveRecord:Base
  belongs_to :post
end

Миграция 
class CreateComments < ActiveRecord::Migration
  def change
    create_table :comments do |t|
      t.text :body
      t.references :post, index: true, foreign_key: true
    end
  end
end

И лучше модель Post так не называть, переименуйте в BlogPost или как-то еще

В котроллере comments

def create
    @comment = Comment.create(comment_params)
      redirect_to blog_post_path(@comment.blog_post)
end

private

def comment_params
   params.require(:comment).permit(:author, :body, :blog_post_id)
end


метод create объединяет new и save
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
iGooods.ru Санкт-Петербург
от 120 000 до 180 000 ₽
SberMarket Москва
До 220 000 ₽
Frogogo Москва
от 100 000 ₽
17 февр. 2020, в 00:30
1500 руб./за проект
16 февр. 2020, в 22:28
2000 руб./за проект