0

我有一个奇怪的问题。我有 2 个模型问题,评论。评论嵌套在问题中,因此我在评论控制器中有创建操作,如下所示:

  def create
    @issue = Issue.find(params[:issue_id])
    @comment = @issue.comments.create!(params[:comment])

    respond_to do |format|
      if @comment.save
        format.html { redirect_to @comment, notice: 'Comment was successfully created.' }
        format.json { render json: @comment, status: :created, location: @comment }
        format.js #create.js.erb
      else
        format.html { render action: "new" }
        format.json { render json: @comment.errors, status: :unprocessable_entity }
      end
    end
  end

还有我的 create.js.erb:

var new_comment = $("<%= escape_javascript(render(:partial => @comment))%>").hide();
$('#comments').prepend(new_comment);
$('#comment_<%= @comment.id %>').fadeIn('slow');
$('#new_comment')[0].reset();

问题.rb

class Issue < ActiveRecord::Base
  attr_accessible :category, :description, :title

  has_many :comments
end

评论.rb

class Comment < ActiveRecord::Base
  attr_accessible :body, :issue_id
  belongs_to :issue
end

路线.rb

  resources :comments


  resources :issues do
    resources :comments
  end

问题:当我创建一个评论时,它是一个部分驻留在views/issues/show.html.erb 上的表单。评论在数据库中创建了 4 次。

我找不到问题所在以及导致它的原因。请帮忙

4

2 回答 2

0

首先,我会建立相关的评论:

@comment = @issue.comments.build(params[:comment])

然后我会保存评论实例

@comment.save

还要检查 Javascript,也许您在事件冒泡方面遇到了一些问题,并且事件被触发了两次。

于 2012-11-22T09:32:31.850 回答
0

我实际上正在研究一些旧的 Rails 版本,其中 js 文件放在 /public/assets 中,这就是这种奇怪行为的原因。我删除了 /public/assets 文件夹中的所有文件,该应用程序现在可以正常工作了。

于 2012-11-24T08:07:37.770 回答