使用JavaScript从Rails集合中提取值

时间:2014-05-07 16:57:41

标签: javascript jquery ruby-on-rails

我尝试根据下拉列表中选择的值更新div的内容。 div的内容来自Rails集合(特别是ActiveRecord :: Associations :: CollectionProxy)。我想我应该能够在不重新查询数据库的情况下做到这一点,但当然我可能错了。

控制器

def detail
  @workouts = @user.workouts
  @effort = Effort.new
end

查看

<%= form_for(@effort) do |f| %>
  <%= f.collection_select :exercise_id, Exercise.all, :id, :name, {id: 'exercise_select'} %>
<% end %>

<div>
  <% @workouts.each do |wo| %>
  <%= wo.exercise.name %> - <% wo.exercise.weight %> - <%= wo.exercise.sets %><br>
  <% end %>
</div>

我省略了一些代码,所以希望这仍然有意义。我想要做的只是在div中一次只进行一次练习,我希望显示的练习由下拉列表中选择的练习决定。我已经多次写了下面的一些jQuery

$('select').on('change', function() {

});

但即使我通过选择框输入了exercise_id,我也不确定如何继续。 如果有人能给我一个转向,我会很感激。

1 个答案:

答案 0 :(得分:0)

如果你将每个锻炼用自己的元素包裹在一个唯一的ID中,例如“exercise _#{wo.exercise.id}”,那就应该非常简单了。你也可以给他们一个像“运动”这样的课程。在你的改变功能中,你可以做类似的事情:

$('#exercise_select').on('change', function() {
    // determine the id of the selected option
    $('.exercise').hide();
    $('#exercise_'+exerciseID).show();
});