2009-05-17 17 views
2

Mein Modell "combobox" has_many "comboboxselects" und "comboboxselects" belongs_to "combobox". Activescaffold von "Comboboxen" zeigt Daten in Comboboxselects-Spalte wie "#<Comboboxselect:0x472d25c>" an. Wie stelle ich die Spalte "Antwort" aus der Tabelle "comboxselects" dar?ActiveScaffold - Ändern des Standardnamens des zugehörigen Objekts

Modelle:

class Combobox < ActiveRecord::Base 
has_many :comboboxselects 
end 

class Comboboxselect < ActiveRecord::Base 
belongs_to :combobox 
end 

Schema:

create_table "comboboxes", :force => true do |t| 
    t.string "question" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 

    create_table "comboboxselects", :force => true do |t| 
    t.integer "combobox_id" 
    t.string "answer" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 

Ausgang:

class ComboboxesController < ApplicationController 
active_scaffold :combobox do |config| 
    config.list.columns = [:id, :question] 
    config.columns = [:question, :comboboxselects] 
end 
end 

class ComboboxselectsController < ApplicationController 
active_scaffold :comboboxselect do |config| 
    config.list.columns = [:id, :combobox, :answer] 
    config.columns = [:answer] 
end 
end 
+0

Modelldateien für die beiden Modelle und ihre Schemata, bitte. – apostlion

+0

Ich habe es hinzugefügt, Sie können es jetzt sehen. Vielen Dank für das Interesse. – kubum

Antwort

1

Zuerst müssen alle in config.list.columns referenzierten Felder in config.columns enthalten sein (alle explizit definierten config. *. Columns-Felder müssen Teilmengen von config.columns sein).

Dann wird in jedem Modell, das nicht bereits einen Namen oder Titel Feld oder eine Methode hat, müssen Sie diese benutzerdefinierte Methode deklarieren:

class Comboboxselect < ActiveRecord::Base 
belongs_to :combobox 
def to_label 
    "#{answer}" 
end 
end 

Siehe ActiveScaffold Dokumentation: Describing Records: to_label

0

Wenn Sie Anzeigen sagen, dass ich Sie in einer Ansicht bedeuten nehmen? Kannst du den laufenden Code posten, um diese Ausgabe zu erhalten?

Sieht so aus, als ob Sie nur Comboboxselect-Objekt haben, haben Sie versucht, .answer hinzuzufügen, um auf das gewünschte Attribut zuzugreifen?

+0

Ja, in einer ActiveScaffold-Standardansicht. Ich habe die Standardladekonfiguration von activescaffold hinzugefügt. Hm .. Sie haben Recht, und ich nicht jetzt, wie man die Antwort ausgibt. – kubum

Verwandte Themen