2012-06-11 1 views
16

ich ein Auswahlfeld haben, und ich möchte ein benutzerdefiniertes Attribut setzen es Namen genannt, habe ich versucht, es so zu tun:Rails Einfaches Formular individuelle Vereinigung Auswahlfeld

<%= f.association :in_charge, :collection => User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %>  

Es funktioniert und erzeugt das zusätzliche Attribut Es gibt jedoch ein Problem, das Attribut select value wird in das Attribut name des Modells geändert, in diesem Fall l.name. Ich die Plätze getauscht und setzen l.id zuerst aber das id-Attribut angezeigt wird, sie dupliziert bekommen, eine Idee, warum das passiert?

Gibt es eine andere Art und Weise individuelle Attribute zu definieren bei Verbänden Auswahlfelder?

Antwort

24

Mit den Schienen select() Form helper, durch einen Eingang Simple gewickelt.

<%= f.input :in_charge do %> 
    <%= f.select :county_id, User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %> 
<% end %> 

Ihr Code funktioniert nicht wie erwartet, da unter der Haube, ruft Simple collection_select(), die keine zusätzlichen Attribute in der Option-Tags unterstützt.

Die Simple readme hat die solution auch. Aber ich habe nicht bemerkt, dass, bis ich das Problem selbst gelöst hatte :)