我尝试根据下拉列表中选择的值更新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,我也不确定如何继续。 如果有人能给我一个转向,我会很感激。
答案 0 :(得分:0)
如果你将每个锻炼用自己的元素包裹在一个唯一的ID中,例如“exercise _#{wo.exercise.id}”,那就应该非常简单了。你也可以给他们一个像“运动”这样的课程。在你的改变功能中,你可以做类似的事情:
$('#exercise_select').on('change', function() {
// determine the id of the selected option
$('.exercise').hide();
$('#exercise_'+exerciseID).show();
});