Продолжайте получать неопределенный метод ‘title’, пока у меня нет никакого метода с именем title

#ruby-on-rails

#ruby-on-rails

Вопрос:

Я в основном пытаюсь воспроизвести приведенный здесь пример (http://edgeguides.rubyonrails.org/getting_started.html ) с небольшим изменением имен. У каждого post может быть несколько comment , но у меня возникают некоторые проблемы при отправке комментариев. Страница с ошибкой при попытке создать сообщение

Самое близкое, о чем я мог подумать, это то, что у меня есть проверки для post объектов, требующих присутствия title поля. Я видел решение аналогичной проблемы, чтобы убедиться, что для метода в контроллере установлена правильная частная / общедоступная область, но это не похоже на случай.

Вот мой код для контроллера комментариев

 class CommentsController < ApplicationController
def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(comment_params)
    redirect_to post_path(@post)
end

private
    def comment_params
        params.require(:comment).permit(:commenter, :body)
    end
end
  

Комментарии:

1. Также опубликуйте свои модели. У них должны быть перечисленные отношения, иначе ваш оператор @post.comments выдаст ошибку. Кроме того, покажите нам свою форму, чтобы мы знали, действительно ли отправляется post_id.

Ответ №1:

Ааааа, я только что понял свою проблему. Оказалось, что я поместил validates его в ApplicationRecord, а затем comment.rb унаследовал ApplicationRecord. Рефакторинг проверки post.rb решает проблему.