Не могу получить комментарии в ajax + Rails - PullRequest
0 голосов
/ 09 марта 2020

Хотите добавить функцию комментария с 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 %>

1 Ответ

0 голосов
/ 09 марта 2020

Я исправил это.

controllers / posts_controller.rb

def create
  @post = Post.new(create_params)
  if @post.save
    render :index
  end
end

views / posts / _index. html .erb

<ul>
  <% @posts.each do |post| %>
    <li><%= post.content %></li>
  <% end %>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...