Как получить список комментариев к выбранной записи в RoR? - PullRequest
0 голосов
/ 18 марта 2019

Я создал пример приложения rails со списком приложений, отображаемых в DataTable. Если я выберу одну из строк, я хочу, чтобы представление поста затем показывало таблицу со списком комментариев к этому посту под ним. В пост-контроллере у меня есть:

  # GET /posts
  # GET /posts.json
  def index
    @posts = Post.all
  end
  # GET /posts/1
  # GET /posts/1.json
  def show
    @post = Post.find(params[:id])
    @comments = Comment.find(params[:id])
  end

В результате вышесказанного выдает ошибку, что не может найти комментарий с id = 1.

То, что я пытаюсь сделать, это получить список, аналогичный тому, который возвращает индекс для сообщений, которые я могу использовать на странице post.html.erb для создания списка. Какие аргументы я использую для сбора комментариев к найденному сообщению (если они существуют)? Схема комментариев имеет столбец с именем 'post_id'.

1 Ответ

1 голос
/ 18 марта 2019

Вы используете тот же идентификатор, который получаете в своем действии, чтобы получить сообщение и его комментарии. Это неправильно, это просто идентификатор сообщения. Вы можете получить их, используя ваш пост, как это

def show
  @post = Post.find(params[:id])
  @comments = Comment.where(post_id: @post.id)
end

или, что лучше, если в вашей Post модели

определена ассоциация comments
def show
  @post = Post.find(params[:id])
  @comments = @post.comments
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...