Ajax重定向导致没有与carmen匹配的路由

时间:2013-06-11 10:14:08

标签: ajax ruby-on-rails-3 ruby-on-rails-3.2 routes carmen

嗨,我正在使用carmen gem进行国家和州名单。

我的观看代码是,

<div class=" control-group">
  <%= f.label :country, :class => 'control-label' %>
  <div class="controls">
    <%= f.select :country, Carmen::Country.all.collect{|c| c.name}, {:selected => country}, :remote=>true %>
  </div>
</div>
<div class=" control-group">
  <%= f.label :state, :class => 'control-label' %>
  <div id="addressStates">
    <%= render :partial => 'experienceones/states', :locals => {:states => Carmen::Country.named('India').subregions.collect{|sub| sub.name }, :form => f} %>
    </div>
  </div>

部分状态是,

<div class="controls">
  <%= fields_for 'experienceones' do |addr_form| %>
    <% if !@states.blank? %>
  <%= addr_form.select :state, @states, {:prompt => 'Select State'}, {:style => 'width: 180px'} %>
<% else %>
  <%= addr_form.text_field :state %>
<% end %>
  <% end %>
</div>

jquery是,

jQuery('select#experienceone_country').change(function() {
  var country = 'country=' + $('select#experienceone_country :selected').text();
  jQuery.ajax({
    url: '/experienceones/update_state_select',
    data: country,  
    dataType: 'html',
    success: function(data){
      jQuery("div#addressStates").html(data);

      },
  });
});

并且在控制器中我有,

def update_state_select
  @states = Carmen::Country.named(params[:country]).subregions.collect{|sub| sub.name } || []
end

当我选择国家/地区时,我可以在选择标记中成功获取状态列表。

但我得到错误,

No route matches [GET] "/experienceones/1/true"

我知道,这是我要求的结果

GET "/experienceones/update_state_select?country=######"

bt我怎么能避免这个?

我的编辑网址是

http://localhost:3000/experienceones/1/edit

如果我使用,

window.location.href = "/experienceones/<%= @experience.id %>/edit"

在ajax成功之后,我得到了新的编辑页面。

我想在选定的国家/地区和同一页面(即编辑页面)中重定向。

我该怎么做?

同样的问题是新的。

谢谢。

0 个答案:

没有答案