0

そこでRailsのWebサイトを作りたい、人を表示したい。

私は、アクティブな人々に対して、チーム別、性別など、次のようなさまざまな範囲を持っています。

scope :alphabetical, order('last_name, first_name')

scope :active, where('active = ?', true)

scope :inactive, where('active =?', false)

scope :female, where('female = ?', true)

scope :male, where('female = ?', false)

scope :for_school, lambda {|id| where("school_id = ?", id)}

しかし、これらすべての人々をウェブサイトに表示する際に、複数のスコープが呼び出される複数のドロップダウンが必要です。アクティブと非アクティブの間を行ったり来たりするだけでなく、男性と女性の間を行ったり来たりできるように。

最初は People.active から始めますが、男性が選択されたら People.male.active に変更したいと思います。次に、学校用に別のドロップダウンが選択されている場合は、やりたいPeople.male.active.for_school(x).

私はレールにまったく慣れていないので、コントローラーでリクエストを動的に変更する方法がわかりません。メソッドを作成する必要があると思いますが、メソッドは非常にハードコードに見えました。私の仕事を簡素化する宝石はありますか? または、これについてどうすればよいですか?

ありがとうございました

4

1 に答える 1

0

Ransackのようなものがあなたの求めているものかもしれません。

ransack デモを参照してください。

于 2013-04-24T04:53:04.557 に答える