В моем приложении комментариев, когда я обновляю страницу, комментарии исчезают - PullRequest
0 голосов
/ 12 октября 2011

Приложение моих комментариев работает, но единственная проблема заключается в том, что всякий раз, когда я обновляю страницу, комментарии исчезают. В журнале показано, что тело вставлено в таблицу комментариев (оно сохранено). Что я здесь не так делаю? Любая помощьбудет оценен. Спасибо заранее.

Просмотр # шоу

    <div id="comments"></div>

   <%= form_for :comment,:remote => true,:url=>  {:controller=>"comments",:action=>"create"},:html => { :id => 'new-comment'} do |f| %>
   <%= f.text_area(:body) %>
   <div class="errors"></div>
   <%= f.submit "post" %>
   <% end %>

Контроллер комментариев

    class CommentsController < ApplicationController
    respond_to  :js
   def create
   @deal=Deal.find(1)
   @comment =@deal.comments.build(params[:comment])
   @comment.save
   respond_with( @comment, :layout => !request.xhr? )  
   end

    def show
    @comment=Comment.all
    @deal=Deal.find(1)
    @comment=@deal.comments
    end
   end

create.js.erb

     $('#comments').append("escape_javascript(@comment.body)");

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Я не вижу, где отображаются ваши комментарии в шаблоне шоу.

Как насчет чего-то подобного?

   <div id="comments">
      <% @comments do |comment| %>
        <%= comment.body %>
      <% end %>
   </div>

   <%= form_for :comment,:remote => true,:url=>  {:controller=>"comments",:action=>"create"},:html => { :id => 'new-comment'} do |f| %>
     <%= f.text_area(:body) %>
      <div class="errors"></div>
     <%= f.submit "post" %>
   <% end %>

Обратите внимание, вам нужно установить @comments вконтроллер или использовать другой метод получения комментариев, например @view = View.find(params[:id]) и <%= @view.comments.each do |comment| %>...

0 голосов
/ 12 октября 2011

Полагаю, что комментарий связан с постом, который не назначен.

В вашей форме вы должны добавить

<%= f.hidden_field :post_id, @post.id %>

Если вы хотите играть по книге, post_id должен быть attr_protected и вместо этого назначать его вручную в контроллере комментариев

@comment = Comment.new(params[:comment])
@comment.post_id = params[:comment][:post_id]
@comment.save
...