2012-04-10 27 views
0

我有一个State模型,其中has_many :citiescity模型其中belongs_to :state。 我想显示一个州的列表,然后当用户点击一个州进行ajax调用,以显示属于该州下面的城市。如何设置Rails 3 jQuery视图来显示状态列表,然后列出属于该状态的城市?

我敢肯定,这可以使用jQuery和没有partials,我只是有麻烦提出一些例子&解决方案。

这里就是我想它看起来像第一: - 阿拉巴马 - 阿拉斯加 - 阿肯色州 - 等。

那么,如果有人点击“阿拉斯加”名单将更新到: - 阿拉巴马 - 阿拉斯加 - 安克雷奇 - 费尔班克斯 - 朱诺 - 阿肯色州

任何帮助,将不胜感激!

编辑

好了,所以我一直在驱逐jQuery的我想出了下面的代码。我无法让各州单独展示各自的城市。因为如果你点击任何一个州,它只会显示第一个州的城市。

下面的代码:

<script> 
$(function(){ 
    $('#city').hide(); 
$('.toggle').toggle(function(){ 
    $('#city').fadeIn(100); 
}, 
function(){ 
    $('#city').fadeOut(100); 
}); 
}); 

</script> 
<%= render "layouts/header"%> 

<table class="state_list"> 
<% @states.in_groups_of(1, false).each do |state| %> 
    <tr> 
<% for state in state %> 
<td>  
<div class="toggle"><h3><%= state.name %><br /></h3></div> 
    <% @cities.each do |city| %> 
     <% if city.state.id == state.id %> 
        <div id="city"><%= link_to city.name, cities_path(:city_id => city.id) %> (<%= city.posts.where(:published => true).count %>)<br /> 
      <% end %> 
     <% end %> 
</div> 
    </td> 
     <% end %> 
    </tr> 
<% end %> 
</table> 

同样,我明白任何反馈!

+0

向我们展示您到目前为止所获得的 - 您不会得到很多帮助,让人们为您编写代码。 :) – 2012-04-11 01:11:48

+0

我欣赏反馈......我只是不知道从哪里开始。我正在探索使用jQuery切换与迭代数据结合使用...我想我现在已经接近了一个代码特定的问题。我只是在寻找一些关于去哪儿看的地方...... – 2012-04-11 02:34:22

回答

0

StackOverflow回答

我知道了!

以下是我参考的内容...另外,如果您看到更好的方法,请告诉我。

<table class="state_list"> 
<% @states.in_groups_of(1, false).each do |state| %> 
<tr> 
<% for state in state %> 
<td>  
    <script> 
    $(function(){ 
      $('#city-<%=state.id%>').hide(); 
     $('#toggle-<%=state.id%>').toggle(function(){ 
      $('#city-<%=state.id%>').fadeIn(100); 
     }, 
     function(){ 
      $('#city-<%=state.id%>').fadeOut(100); 
     }); 
    }); 

    </script> 
<div id="toggle-<%=state.id%>"><h3><%= state.name %><br /></h3></div> 
    <% @cities.each do |city| %> 
     <% if city.state.id == state.id %> 
        <div id="city-<%=state.id%>"><%= link_to city.name, cities_path(:city_id => city.id) %> (<%= city.posts.where(:published => true).count %>)<br /> 
      <% end %> 
     <% end %> 
</div> 
</td> 
    <% end %> 
    </tr> 
<% end %> 
</table> 

一切工作就像我希望的一样!

相关问题