2016-07-06 27 views
0

Ich verwende Schienen 4.2.3. Ich habe eine Beziehung, die bestimmte Spalten zurückgibt ...Wie mache ich RoR Optionsnamen und ID-Verkettungen anderer Felder auswählen?

MyObject.joins(:distance_unit) 
    .where(["user_id = ?", user.id]) 
    .select("distance, distance_units.id, distance_units.abbrev") 

Diese Daten können in einem Auswahlmenü verwendet werden soll ...

<%= select_tag "distance", options_from_collection_for_select(@distance_options, "distance", "distance") %> 

Doch was ich will, ist für die ID eine Verkettung von der zu sein Felder "distance" und "distance_units.id" und der Optionsname als Verkettung der Felder "distance" und "distance_unit.abbrev". Wie mache ich das in Rails?

Antwort

0
  • Sie können es mit options_for_select tun, wie folgt aus:

    <%= select_tag "distance", options_for_select(@distance_options.collect{|obj| ["#{obj.distance}_#{obj.id}", "#{obj.distance}_#{obj.abbrev}"]}) %> 
    
+0

In meiner Anfrage aber ich zwei Spalten nur die Auswahl, die jeweils aus unterschiedlichen Datenbanktabellen, so gibt es kein Modell Kapselung dieser beiden. Wie mache ich die Verkettung unter diesen Bedingungen? – Dave

+0

sehe meine aktualisierte Antwort, es wird für Sie arbeiten .. :) – Devd