如何在rails中使用link_to_remote传递collection_select值?

时间:2011-10-05 07:50:13

标签: ruby-on-rails ajax

我想通过link_to_remote传递collection_select下拉列表值。

<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => true}) %>
<%= link_to_remote 'Show calendar', :url => {:controller => 'calendar', :action => 'trainer_view'} %> 

我想将所选的trainer_id值传递给trainer_view方法。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

嗨:)我建议使用jQuery和AJAX来实现你的目标,这就是我尝试这样做的方法:

首先,我会将<%= link_to_remote %>放在collection_select下面,所以它看起来像这样:

<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => 'Select a Trainer'}) %>
<div id="trainerCalendar"></div>

然后,当DOM准备就绪时,将此JavaScript放在application.js中:

$('#trainer_id').live('change', function() {
  $('#trainerCalendar').html.empty;
  $.ajax({ url: '/trainer_view/',
    data: 'id=' + this.value,
    success: function(data) {
      $('#trainerCalendar').html(data);
    }
  })
});

您可以让控制器回复部分日历。

希望这有帮助!