Ruby on rails 如何在rails 4上使用ajax?
我正在尝试使用ajax在Rails4中创建一个评论区域。我的目标是在同一页面中创建注释及其输出,而无需加载页面。我添加了一些代码。当我点击“添加评论”按钮时,数据输入数据库,但不反映在同一页面中。如果任何人有任何想法,请与我分享,谢谢 我的代码如下: 在注释控制器中:Ruby on rails 如何在rails 4上使用ajax?,ruby-on-rails,ruby,ajax,ruby-on-rails-4,Ruby On Rails,Ruby,Ajax,Ruby On Rails 4,我正在尝试使用ajax在Rails4中创建一个评论区域。我的目标是在同一页面中创建注释及其输出,而无需加载页面。我添加了一些代码。当我点击“添加评论”按钮时,数据输入数据库,但不反映在同一页面中。如果任何人有任何想法,请与我分享,谢谢 我的代码如下: 在注释控制器中: def create @article = Article.find(params[:article_id]) @comment = @article.comments.create @comment.bo
def create
@article = Article.find(params[:article_id])
@comment = @article.comments.create
@comment.body = params[:comment]["body"]
respond_to do |format|
@comment.save
format.html { redirect_to @article }
format.js
end
end
在视图/文章下的show.html.erb中
<div class="col-xs-12 col-sm-12">
<h2 class="text-center"><%= @article.title.html_safe %></h2>
<p><%= @article.body.html_safe %></p>
<h2>Comments</h2>
<div id="comments">
<!-- <p><%= render :partial => @article.comments %></p> -->
<%= render :partial => 'comments/comment', :collection => @article.comments %>
</div>
<%= form_for([@article, Comment.new], :remote => true) do |f| %>
<p>
<%= f.label :body, "New comment" %><br/>
<%= f.text_area :body, type:"text", tabindex: "6", class: "form-control", placeholder: 'your comment', rows: "4", required: true %>
</p>
<p><%= f.submit "Add comment" %></p>
<% end %>
</div>
config/application.rb
config.action_view.JavaScript_expansions[:defaults] = %w(jquery rails application)
在rails中处理这种情况的正确方法是使用远程表单,通过这种方式可以交互地从db中插入和删除对象。 下面是两篇关于rails和中的远程表单的解释性博客文章。通过这种方式,您可以在不刷新的情况下提交表单,然后使用处理程序在控制器回调后生成创建的元素。 希望这符合您的问题。添加了如下内容: 在视图/注释下创建.js.erb
page.insert_html :bottom, :comments, :partial => 'comment', :object => @comment
page[:new_comment].reset
$("#comments").append("<%= escape_javascript(render(:partial => @comment)) %>");
$("#new_comment")[0].reset();
$(“#注释”)。追加(“@comment”)%>”;
$(“#新#注释”)[0]。重置();
这对我很有用。这些也是有用的链接。
$("#comments").append("<%= escape_javascript(render(:partial => @comment)) %>");
$("#new_comment")[0].reset();