Ruby on Rails AJAX更改URL并从浏览器地址栏

时间:2017-04-23 15:30:05

标签: javascript jquery ruby-on-rails ruby ajax

我创建了一个简单的管理面板,其中包含一个使用Rails远程响应的菜单。 典型的链接是这样的:

<%= link_to t('my-groups'), :controller => 'dashboard', :action => 'mygroups', :remote => true %>

它的控制器动作是:

  def mygroups
    if request.xhr?

      respond_to do |format|
        format.js
       end
    else 
      redirect_to :dashboard
    end
  end #end mygroups

我还有一个名为_mygroups.html.erb的部分文件和一个名为mygroups.js.erb的js.erb文件,内容如下:

$('.right_col').html("<%= escape_javascript(render(:partial => 'mygroups')) %>");

一切正常,部分页面在我的主模板中动态加载,就像它应该的那样。 我想要的是能够使用浏览器历史记录浏览这些结果,并且能够从浏览器的地址栏复制URL并获得相同的动态加载内容,如果我将URL粘贴到我的手动浏览器的地址栏然后按回车键。

例如,如果我点击&#34; dashboard / mygroups&#34;菜单链接它将加载_mygroups partial,将网址更改为http://localhost:3000/dashboard/mygroups并将状态推送到浏览器的历史记录。如果我只是将此URL插入地址栏,它将加载主模板,然后将_mygroups partial加载到其内部div容器。这是我想要的一种行为。

我看到的唯一解决方案是使用简单的页面重新加载而不使用&#34; remote&#34;链接。但我知道很多网站(例如github.com)使用AJAX并允许从地址栏复制/粘贴网址

如何使用Rails实现相同的行为? 也许我的整个概念都错了?

0 个答案:

没有答案
相关问题