Javascript 使用Ruby on Rails wiselinks作为商店定位器

Javascript 使用Ruby on Rails wiselinks作为商店定位器,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我有一个已分页的门店工作列表,当单击其中一个时,它会显示门店详细信息 在列表的侧面(#index)和详细信息(#show)有一个显示位置的地图 我现在尝试应用wiselinks gem,以便通过ajax完成从列表到详细信息的转换,从而无需重新加载地图 我的列表和详细信息页面使用主应用程序的子级布局 子级布局如下所示: <div class="stores-container"> # partial loaded here </div> <div class="

我有一个已分页的门店工作列表,当单击其中一个时,它会显示门店详细信息

在列表的侧面(
#index
)和详细信息(
#show
)有一个显示位置的地图

我现在尝试应用wiselinks gem,以便通过ajax完成从列表到详细信息的转换,从而无需重新加载地图

我的列表和详细信息页面使用主
应用程序的
子级布局

子级布局如下所示:

<div class="stores-container">
   # partial loaded here
</div>
<div class="map-container"></div>
我的列表和详细信息链接使用
data push='partial'数据目标='。存储容器'

我的控制器如下所示:

def index
  ...
  if request.wiselinks_partial?
    render :partial => 'my_partial'
  else
    render :layout => 'sub_level_layout'
  end
end

def show
  ...
  if request.wiselinks_partial?
    render :partial => 'my_partial'
  else
    render :layout => 'sub_level_layout'
  end
end
这对于在索引页面上点击结果页面非常有效,还允许我点击其中一个结果的链接以转到显示页面

但是,如果加载索引页面,单击其中一个结果以显示“显示”页面,然后单击“上一步”按钮,则会失败。它似乎不知道使用什么来呈现索引页,它只是显示一个空白页

我需要它只是刷新部分的内容,以便再次显示索引

如果我加载索引页面,请单击其他页面(也可以使用wiselinks完成分页),然后单击其中一个结果以显示显示页面,然后单击“上一步”按钮,它工作正常

它似乎不喜欢单击“上一步”按钮转到起始页面(页面最初以html形式加载,而不是通过WiseLink),只使用部分而不是全屏刷新内容

当页面无法加载失败请求的标题时,包含
X-request-With:XMLHttpRequest
X-Wiselinks:template

我是否使用wiselinks正确地执行此操作

有没有其他方法可以这样做,当我只需要重新加载部分内容时,单击返回起始页时,它不需要从头开始加载模板

如果可能的话,我想和wiselinks呆在一起

谢谢


可能的解决方案

我想我已经通过改变以下方式让它工作了:

$(function() {
  window.wiselinks = new Wiselinks();
});

对于我的控制器:

def index
  ...
  if request.wiselinks_partial?
    render :partial => 'my_partial'
  else
    render :layout => 'sub_level_layout'
  end
end

def wiselinks_layout
  'my_partial_as_a_layout'
end

def show
  ...
  if request.wiselinks_partial?
    render :partial => 'my_partial'
  else
    render :layout => 'sub_level_layout'
  end
end
新布局-
my\u partial\u as\u a\u layout.html.erb

<%= render 'stores/my_partial' %>

我不喜欢它要求我在layouts文件夹中将我的partial复制为布局的方式

我也不喜欢这样一个事实,即存储定位器的这组页面需要设置一个特定的div作为wiselinks要使用的容器,即使每个链接都有一个
数据目标
属性设置为
'

有人能解释为什么这可能是正确的,或者如果它仍然不正确,它有什么问题吗


谢谢

我也面临同样的问题,对此有任何解决方案:)!尝试删除控制器中的
wiselinks\u partial?
else
,并且根本不使用
wiselinks\u布局
,我认为这似乎是可行的,尽管对wiselinks使用
html4:false
,如果这有区别的话。
def index
  ...
  if request.wiselinks_partial?
    render :partial => 'my_partial'
  else
    render :layout => 'sub_level_layout'
  end
end

def wiselinks_layout
  'my_partial_as_a_layout'
end

def show
  ...
  if request.wiselinks_partial?
    render :partial => 'my_partial'
  else
    render :layout => 'sub_level_layout'
  end
end
<%= render 'stores/my_partial' %>