Grouped Collection Select Alphabetical Order Rails

前端 未结 5 1356
天命终不由人
天命终不由人 2021-01-03 05:27

I finally figured out how to implement Dynamic Select menus using this tutorial.

Everything works, But how does one organize the Cities in t

5条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-03 05:52

    Option 1: In your City model, add a default scope that directs cities to be returned in alphabetical order:

    # app/models/city.rb
    default_scope :order => 'cities.name ASC'
    

    Collections of City objects will, by default, be returned in alphabetically by name.

    Option 2: Define a named scope in your State model that returns cities in alphabetical order as an association on a State object:

    # app/models/state.rb
    scope :cities_by_name, -> { cities.order(name: :asc) } # Rails 4
    
    scope :cities_by_name, cities.order("name ASC") # Rails 3
    

    Then, pass your scoped query to your grouped_collection helper:

    f.grouped_collection_select :city_id, State.order(:name), :cities_by_name, :name, :id, :name, {:include_blank=> "Select a City"}, {:class=>'dropdown'}
    

提交回复
热议问题