Javascript 我应该如何集成AJAX?

Javascript 我应该如何集成AJAX?,javascript,jquery,ruby-on-rails,ruby,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ruby,Ruby On Rails 3,我的update.js.erb文件中有一段非常混乱的代码,它位于我的视频目录中。每次我添加新的注释标题时,都会调用它: $(".comments_div").html('<% @video.comment_titles.each do |comment_title| %> \ <div class ="comment_column_<%= case @video.comment_titles.count when 1 "wide"

我的update.js.erb文件中有一段非常混乱的代码,它位于我的视频目录中。每次我添加新的注释标题时,都会调用它:

$(".comments_div").html('<% @video.comment_titles.each do |comment_title| %> \
<div class ="comment_column_<%= 
 case @video.comment_titles.count 
    when 1 
        "wide" 
    when 2 
        "medium" 
    when 3 
        "narrow" 
    else 
        return 
    end 
%>"> \
    <% unless @video.comment_titles.count == 0 %> \
    <div id = "comment_title_<%= comment_title.id %>" class="comment_title"> \
        <%= comment_title.title %> \
        <%= link_to "x", comment_title_path(comment_title.id), :method => :delete, :remote => true, :class => "comment_title_delete" %> \
    </div> \
        <% comment_title.comments.each do |comment| %> \
            <div class="comment_content">  \
              <%= link_to image_tag(comment.user.profile.photo.url(:tiny)), profile_path(comment.user.profile), :class => "comment_image" %> \
              <div class="textual_comment_content"> \
              <div class="comment_text"> \
                 <span class="name_link"> \
                     <%= link_to "#{comment.user.name}", profile_path(comment.user.profile), :class => "normal" %> \
                 </span> \
                 <%= comment.body.gsub("'",'&apos;') %> \
              </div> \
              <span class="comment_footer"> \
                 <ul> \
                    <li class="list_style"><%= time_ago_in_words(comment.created_at) %> ago</li> \
                    <% unless current_user != comment.user %> \
                        <li><%= link_to "Delete", video_comment_path(:video_id => @video, :id => comment), :method => :delete, :class => "normal" %></li> \
                    <% end %> \
                 </ul> \
              </span> \
              </div> \
            </div> \
        <% end %> \
      </div> \
    <% end %> \
<% end %>');
$(“.comments\u div”).html('\
\
\
\
\
:delete,:remote=>true,:class=>comment\u title\u delete“%%>\
\
\
\
“评论图片”%>\
\
\
\
“正常”%>\
\
\
\
\
    \ 以前的\ \
  • @video,:id=>comment),:method=>:delete,:class=>“normal”%>
  • \ \
\ \ \ \ \ \ \ ');

我还有一个destroy.js.erb文件,它位于我的comment\u title目录中(因为destroy方法位于comment\u titles控制器中),每当我删除一个注释标题时,它都会被调用。我希望在这个销毁文件中有与上面相同的代码,这样当我删除注释标题时,html代码就会更新。问题是,
@video
未在我的comment\u title目录中定义,因此我不能将update.js.erb中的代码复制并粘贴到destroy.js.erb。因此,我的问题是,将上面的JS调用集成到销毁文件中的最佳方式是什么?

销毁文件实际上不需要任何javascript。当您单击destroy时,您只需删除div,而无需更新任何内容

实际上,您确实需要javascript,但不是通过控制器,这可以在客户端完成,除非您确实需要等待响应

更新 这假设您正在使用REST

Ruby数组,用于循环并识别注释销毁链接

<% @video.comment_titles.each do |ct| %>
    <%= link_to "Destroy comment", ct, :method => :delete, :confirm => "Are you sure?", :class => 'destroy' %>
<% end %>
您可以评论控制器:

def destroy
    @comment = Comment.find( params[:id] )
    @comment.destroy
    respond_to do |format|
        format.html { redirect_to :back }
        format.js { render :nothing => true }
    end
end

如果您有任何错误,请告诉我。我不太确定你的路线,所以很难猜到所有内容。

我建议将所有HTML移到一个部分,然后由
.js.erb
文件呈现。好的,我现在就做。。。我讨厌那些我确实需要javascript的“\”sno。。。您看到我的
案例
开关在哪里了吗?这会根据数据库数据更改类,然后动态更改css数据。这都是基于评论标题的数量,所以我需要在删除评论标题时动态更新。这非常简单!我会用一点时间为你写一段jq代码!哦,这是一个相关的问题:销毁链接是如何生成的?你能给我一个可以循环的对象数组吗。是ruby,php吗?好的,从你的标签上看,显然是ruby。只要给我你拥有的
@resource
变量,比如
@posts
,我就会为ya bro编写一个干净的sip。
def destroy
    @comment = Comment.find( params[:id] )
    @comment.destroy
    respond_to do |format|
        format.html { redirect_to :back }
        format.js { render :nothing => true }
    end
end