У меня есть приложение, где book_comments принадлежит к книгам.Ajax/Rails Вложенные комментарии
Мои маршруты файл:
resources :books do
resources :book_comments
end
У меня есть форма book_comment на show.html.erb для книг.
def show
@book = Book.find(params[:id])
@new_book_comment = @book.book_comments.build
end
Я использую Ajax для проводки book_comments к книге показать страницу с помощью частичной: _book_comment_form.html.erb:
<%= form_for([@book, @new_book_comment], remote: :true) do |f| %>
<div class="field" style="margin-top:60px;">
<%= f.text_area :comment, rows: 3 %>
<%= f.submit "Add Comment" %>
</div>
<% end %>
Когда @new_book_comment называют это относится к book_comments_controller создать действие :
def create
@book = Book.find(params[:book_id])
@book_comment = current_user.book_comments.build(params[:book_comment]) do |f|
f.book_id = @book.id
end
if @book_comment.save
respond_to do |format|
format.html { redirect_to @book }
format.js { render :layout => false }
end
end
конец
book_comment сохраняется, но моя про я проблема возникает, когда пытаюсь сделать с помощью AJAX в _book_comments частичного:
<div id="comments">
<% @book_comments.each do |book_comment| %>
<%= render 'comment', :book_comment => comment %>
</div>
<% end %>
</div>
через: create.js.erb в папке book_comments
$("div#comments").append("<%= escape_javascript(render('books/comment'))%>")
Подводя, у меня неприятность делает создание .js.erb в book_comments отобразить страницу книги. Почему бы не создать файл create.js.erb в папке book_comments, чтобы посмотреть на объекты в и сделать вывод, что новый комментарий к книге должен идти внутри div?
Мое сообщение об ошибке:
undefined method `comment' for nil:NilClass
не understnd почему. Видя, что я передаю переменную экземпляра в комментарий частично.