Ich habe ein Modell, das der Benutzer nicht die meisten Felder nach der ursprünglichen Erstellung zu aktualisieren.Schienen Wiederverwendung Formularansicht auf bearbeiten, aber einige Felder schreibgeschützt
Ich habe das :readonly
HTML-Attribut gesehen, das ich auf allen Feldhelfern anheften kann, aber das Bedingungswesen auf allen Feldern fühlend ... icky.
Ich benutze nichts besonderes für die Erstellung meiner Formulare im Moment, einfach nur HAML. Wer kennt einen besseren Weg?
Dies ist, was ich habe, so weit, es zu tun dachte:
def set_readonly?(object, html_attr)
html_attr.merge(object.new_record? ? {} : {:readonly => 'readonly'})
end
als:
f.text_field :supplier_id, set_readonly?(@damaged_goods, {:size => 5})
Die Lösung für mich ein Weg wäre, machen sabbern ein Attribut als Lese einzustellen -nur auf dem Modell zusammen mit State Machine das sich dann zu den Ansichten ausbreiten würde. :)
'attr_protected' schützt nur den Wert von in der Datenbank aktualisiert. Ich möchte lieber nicht, dass meine Benutzer Zeit damit verbringen, ein Feld zu aktualisieren, damit es nicht ohne Warnung gespeichert wird. :) Also wollte ich einen Weg finden, den Wert von schreibgeschützt auf einen bestimmten Zustand zu setzen, und dann würde die Ansicht wissen, dass sie schreibgeschützt ist. Ich benutze im Moment den 'set_readonly?' Helfer, den ich in den Fragetext geschrieben habe. – gaqzi