我已经开始学习rails了,我想在评论中添加ajax
应使用Ajax添加评论
你能帮忙或链接到一个例子吗?
这是我的config.rb:
resources :posts do
resources :comments
end
在post / show.html.erb
中<p><%= @post.title %></p>
<h2>Comments:</h2>
<div id='com'>
<%= render @post.comments %>
</div>
<h2>Add a comment:</h2>
<%= render "comments/form" %>
在view / comments / _comment.html.erb中:
<p>
<strong>Commenter:</strong>
<%= comment.commenter %>
</p>
<p>
<strong>Comment:</strong>
<%= comment.body %>
</p>
<%= link_to "Del", [comment.post, comment], :confirm => 'Are you sure?', :method => :delete %>
<hr>
在comments / form.html.erb
中<%= form_for([@post, @post.comments.build], remote: true) do |f| %>
.
.
.
在comments_controller中:
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(params[:comment])
respond_to do |format|
format.html { redirect_to post_path(@post) }
format.js
end
end
并在视图中添加文件:_create.js.erb
$('#com').html("<%=j render @post.comments %>");
没有远程true 所有工作(但重新加载页面) 动作删除适用于
在application.html.erb
中 <%= javascript_include_tag 'application' %>
当我点击提交表单时 - 没有任何反应
但是当我(提交后)重新加载页面时 - 我看到添加了评论
答案 0 :(得分:3)
您需要包含不引人注目的javascript
app/assets/javascripts/application.js
中的
你有这个(如果没有添加)
//= require jquery
//= require jquery_ujs
和
@DemitriyDN自己回答:)
将_create.js.erb
重命名为create.js.erb
答案 1 :(得分:0)
编辑新代码 在comments_controller中:
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(params[:comment])
respond_to do |format|
format.html { redirect_to post_path(@post) }
format.js
end
end
end