2014-01-23 3 views
0

I havle belongs_to модель ассоциации 'Timetableap' с моделью 'Aircompany'рельсы BELONGS_TO с select_tag

 class Timetableap < ActiveRecord::Base 
     belongs_to :aircompany 
     ... 
    end 


    class Aircompany < ActiveRecord::Base 
    has_many :timetableaps 
    ... 
    end 

В контроллере 'Timetableaps':

class TimetableapsController < ApplicationController 
    ... 
    def index 
    @t = Timetableap.search(params[:search_ap],params[:search_al]) 
    ... 
    end 

Мои таблицы структуры "авиакомпании осуществляют" таблицы

create_table "aircompanies", :force => true do |t| 
    t.string "iata_code",  :null => false 
    t.string "icao_code",  :null => false 
    t.string "awb_prefix" 
    t.string "airline_name",  :null => false 
    t.integer "airport_id",  :null => false 
    t.string "country" 
    t.string "ap_hubs" 
    t.date  "start" 
    t.date  "end" 
    t.datetime "created_at",  :null => false 
    t.datetime "updated_at",  :null => false 
    end 

"timetableaps" стол

create_table "timetableaps", :force => true do |t| 
    t.integer "Flight_Number" 
    t.integer "aircompany_id" 
    t.integer "way_start" 
    t.integer "way_end" 
    t.string "TermStart" 
    t.string "GateStart" 
    t.string "TermEnd" 
    t.string "GateEnd" 
    t.string "TypeOfPlane" 
    t.time  "TimeStart" 
    t.time  "TimeEnd" 
    t.date  "DateOfStartNav" 
    t.date  "DateOfEndNav" 
    t.integer "s1" 
    t.integer "s2" 
    t.integer "s3" 
    t.integer "s4" 
    t.integer "s5" 
    t.integer "s6" 
    t.integer "s0" 
    t.integer "e1" 
    t.integer "e2" 
    t.integer "e3" 
    t.integer "e4" 
    t.integer "e5" 
    t.integer "e6" 
    t.integer "e0" 
    t.datetime "created_at",  :null => false 
    t.datetime "updated_at",  :null => false 
    end 

Как я могу отобразить выпадающий список во взглядах с 'aircompany.airline_name'?

<%= select_tag "search_al", options_from_collection_for_select(@t.group("aircompany_id"),"aircompany_id", **"aircompany"**), prompt: "All Airlines" %> 

ответ

1

Непонятно, хотите ли вы спуститься со всеми авиакомпаниями или если они должны быть отфильтрованы в некотором роде.

Если вы хотите, чтобы все авиакомпании, это работает:

<%= select_tag "search_al", options_from_collection_for_select(Aircompany.all, :id, :airline_name), prompt: "All Airlines" %> 

С @t, как представляется, коллекция Timetableap записей, вы можете выбрать для отображения только авиакомпаний, найденных в текущей коллекции timetableaps:

<%= select_tag "search_al", options_from_collection_for_select(@t.map(&:aircompany).uniq, :id, :airline_name), prompt: "All Airlines" %> 
+0

Как я могу сортировать это (@ t.map (&: aircompany) .uniq) hash? – user3081809

+0

Его не хэш, его массив. Если вы хотите его отсортировать по «Aircompany # авиакомпания_имя», это будет работать: '@ t.map (&: aircompany) .uniq.sort_by (&: имя_айры)' –

+0

Хорошо! Благодаря! – user3081809

Смежные вопросы