如何过滤DB中的3组数据?

时间:2014-09-08 13:53:41

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4

所以,我有一个应用程序,允许用户从不同的电影中观看各种剪辑。管理员负责创建Studio,其中包含电影和剪辑,以及实际上传各种电影中的剪辑。

现在,我想添加管理员选择工作室然后选择电影的功能,然后选择剪辑和日期范围,这样当他们点击"过滤"管理员将根据任何给定的剪辑获取统计信息。

统计数据最终将显示用户,用户帐户类型等...

这是一个模型,用于说明它必须如何运作:date-range

请记住,我已经在数据库中拥有用户,工作室,电影和剪辑数据,我只想添加此过滤器功能。如果你能指出我如何做到这一点的正确方向,那就太棒了!!

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用脚手架生成的控制器

,这是一个解决方案
class StudioController < ApplicationController
  before_action :set_studio, only: [:films...]
  ...
  def films
    respond_to do |format|
      format.js { render json: @studio.films.to_json }
    end
  end
end

然后设置路线

resources :studio do
  member do
    get 'films'
  end
end

最后在您的视图中使用javascript映射事件

<script>
  $('#studio_select').change(function() {
    $.ajax({dataType: 'json', url: '/studios/' + $(this).val() + '/films.json'}).done(function(data) {
      $('#film_select').html('');
      $.each(data, function(id, elt) {
        $('#film_select').append('<option value="' + elt.id + '">' + elt.title + '</option>');
      })
    })
  })
</script>

等等为子元素。 不确定javascript部分,但它应该看起来像这样......

希望这会有所帮助:)