Хотите добавить функцию комментария с ajax в Rails. Я не могу получить комментарии после публикации автоматически. Это не работает.
Ошибка:
ActionView::Template::Error (undefined method `each' for nil:NilClass):
controllers / posts_controller.rb
class PostsController < ApplicationController
def create
@post = Post.new(create_params)
if @post.save
render :index
end
end
private
def create_params
params.require(:post).permit(:content)
end
end
controllers / home_controller.rb
class HomeController < ApplicationController
def index
@post = Post.new
@posts = Post.all
end
end
просмотров / home / index. html .erb
<div id="postForm">
<%= render partial: 'posts/form', locals: { post: @post } %>
</div>
<div class="postContainer" id="postArea">
<ul>
<%= render partial: 'posts/index', locals: { posts: @posts } %>
</ul>
</div>
просмотров / сообщений / index. js .erb
$("#postArea").html("<%= j(render 'index', { posts: @posts }) %>")
$("textarea").val('')
views / posts / _index. html .erb
<ul>
<% posts.each do |post| %>
<li><%= post.content %></li>
<% end %>
</ul>
views / posts / _form. html .erb
<%= form_with(model: post, url: posts_path) do |f| %>
<form>
<div class="form-group">
<label for="contents">Content</label>
<%= f.text_area :content, class: "form-control", rows: "2" %>
</div>
<div>
<%= f.submit "Submit", type: "submit", class: "btn btn-primary" %>
</div>
<% end %>