【发布时间】:2014-03-07 15:29:09
【问题描述】:
我已经成功地使用这些表构建了一个应用程序 (RAILS 4):users、comments 和 articles,并且我成功了...问题是我正在通过 ajax 创建 cmets,所以当我创建第一个评论时,它会创建,但是当我创建另一个评论时,它会显示带有新评论和第一条评论的第一条评论,使所有评论成为三个等等,即它复制所有以前的 cmets...但是当页面是重新加载它会显示创建的实际评论数量....可能是它的部分或我的代码...
ceate.js.erb
$('#chat').append("<%= j render(@article.comments)%>");
$("#new_comment")[0].reset();
我的文章展示页面是这样的
<h1><%= @article.user.username %></h1>
<%= simple_format @article.content %>
<h2>Comments</h2>
<div id="chat">
<%= render @article.comments %>
</div>
<h3>New Comment</h3>
<%= render 'comments/form' %>
因此,我的创建评论操作是:
def create
@article = Article.find(params[:article_id])
@comment = @article.comments.build(comment_params)
@comment.user = current_user
if @comment.save
respond_to do |format|
format.js {}
end
end
end
我的形式是这样的
<%= form_for([@article, @article.comments.build],:remote => true) do |f| %>
<div class="field">
<%= f.text_area :content, rows: 8, cols: 30 %>
</div>
<div class="actions">
<%= submit_tag 'Submit', :disable_with => 'commenting....', :class => 'submit' %>
</div>
<% end %>
用户模型
has_many :comments
has_many :articles
cmets 模型
belongs_to :user
belongs_to :article
文章模型 has_many :cmets
belongs_to :user
validates :user_id, :presence => true
has_many :users, -> {uniq}, through: :comments
如何让这个停止复制
【问题讨论】:
标签: jquery ruby-on-rails ajax ruby-on-rails-4