2013-12-15 5 views
0

Я борюсь с логикой и задачей под рукой и надеялся на какой-то вклад в решение этой проблемы.Метод уничтожения Rails при выпуске нескольких объектов

У меня есть приложение, напоминающее Reddit. У меня есть сообщение/комментарии/пользователь/категории/модели голосования в моем приложении. В моем контроллере сообщений я устанавливаю метод destroy на сообщениях. В моем posts#show controller я установил его, где я показываю как полное сообщение, созданное пользователем, так и комментарии, которые могут создать многие пользователи. В моем Users controller в методе показа и представлении я показываю каждому пользователю комментарии и сообщения, так что мой вопрос заключается в том, что если пользователь удаляет их сообщение, и у этого сообщения были комментарии, как мне удалять как сообщение, так и все связанные с ним комментарии. Прямо сейчас я удалил сообщение, в котором были комментарии от исходного пользователя сообщения, и я получаю NoMethodError in Users#show с заголовком undefined method «для nil: NilClass».

Ну класс, очевидно, nill, потому что его пуст теперь, когда я удалил сообщение, которое было прокомментировано пользователем. Любая помощь?

точная ошибка в моей app/views/comments/_comment.html.erb на <p>commented on <em><%= link_to comment.post.title, post_path(comment.post) %></em></p>

ответ

1

dependent: :destroy Использование в связи между публикациями и комментариями. Например:

class Post < ActiveRecord::Base 
    has_many :comments, dependent: :destroy 
end 

Теперь, когда вы звоните destroy на пост, Rails уничтожит соответствующие комментарии.

Для получения дополнительной информации ищите «зависимые» в Rails docs и associations guide.

+0

Это потрясающе, я знал, что есть более простой способ, спасибо большое, я пойду дальше и реанимирую документы – user2045764

Смежные вопросы