gpt4 book ai didi

ruby-on-rails - 如何在 Rails 4 上使用 Ajax?

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:23 24 4
gpt4 key购买 nike

我正在尝试使用 ajax 在 Rails 4 中创建评论区。我的目标是在不加载页面的情况下在同一页面中创建评论及其输出。我添加了一些代码。当我点击“添加评论”按钮时,数据输入到数据库中,但没有反射(reflect)在同一页面中。如果有人有任何想法,请与我分享,谢谢。

我的代码如下:

在评论 Controller 中:

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

在 views/articles 下的 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>

View /评论下的_comment.html.erb

<%= div_for comment do %>
<p>
<b>
Posted <%= time_ago_in_words(comment.created_at) %> ago
</b>
<br/>
<%= comment.body %>
<%= link_to 'Delete', article_comment_path(comment.article_id, comment.id), method: :Delete, :class => 'btn btn-sm btn-warning', tabindex: "3" %>
<%= link_to 'Edit', article_path(comment.article_id, comment.id), :class => 'btn btn-sm btn-warning', tabindex: "3" %>
</p>
<% end %>

在观点/评论下创建.js.erb

page.insert_html :bottom, :comments, :partial => 'comment', :object => @comment
page[:new_comment].reset

配置/应用程序.rb

config.action_view.JavaScript_expansions[:defaults] = %w(jquery rails application)

最佳答案

在 Rails 中处理这种情况的正确方法是使用远程表单,这样您就可以交互式地从数据库中插入和删除对象。这里有两篇关于 Rails 中的远程表单的博文解释 detailed guide about remote formshow to partials ajax rails .这样你就可以在不刷新的情况下提交表单,然后有一个处理程序在 Controller 回调后生成创建的元素。希望这符合您的问题。

关于ruby-on-rails - 如何在 Rails 4 上使用 Ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30391664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com