使用rails和ajax动态呈现内容。

时间:2013-10-25 10:22:51

标签: jquery html ruby-on-rails ajax ruby-on-rails-3.2

我真的在如何完成应用程序的最后一步。

我想动态替换主要内容而无需刷新页面。

application.html.erb看起来像这样:

<div id="wrapper">
        <!-- ><div id="headcontainer">
            <header>
            </header>
        </div> -->
        <div id="maincontentcontainer">
            <div id="maincontent">
                <div class="section group">
                    <div class="col span_1_of_7">
                        <%= render :partial => "shared/menu" %>
                    </div>
                    <div id="replace">
                        <%= yield %>
                    </div>
                </div>
            </div>
        </div>

我的菜单部分在点击时我想动态替换#replace div的内容

<ul class='kwicks kwicks-vertical'>
    <li id='panel-1'><%= link_to_unless_current image_tag('keyIssues.png'), :remote => true %></li>
    <li id='panel-2'><%= link_to_unless_current image_tag('pollVsLeader.png'), :remote => true  %></li>
    <li id='panel-3'><%= link_to_unless_current image_tag('keyBubble.png'), :remote => true  %></li>
    <li id='panel-4'><%= link_to_unless_current image_tag('dataSource.png'),  :remote => true  %></li>
    <li id='panel-5'><%= link_to_unless_current image_tag('group14.png'), :remote => true  %></li>
</ul>

我有一些Jquery用于删除div并替换它..但它正在用页面的填充内容替换div ..页面中的页面是一些代码:

$(function(){
  $('#panel-1').click(function(){
    $("#remove").remove();
    $.get('../key_issues/index.html', function(html){
      $('.col.span_6_of_7').remove();
      $('.section.group').append(html);  
    });
  });
});

我已经尝试了ajax-rails宝石,但我也无法让它工作......有人可以提供一些建议吗?

1 个答案:

答案 0 :(得分:4)

以简单的方式

<li id='panel-1'><%= link_to image_tag('keyIssues.png'), some_path_to_url_controller , :remote => true %></li>

控制器代码

def some_method
 //your code
 respond_to do |format|
  format.js
 end
end

<强> some_method.js.erb

$("#replace_div").html("<%= j render partial: 'your_partial' %>");

了解更多信息railscast