Es gibt nicht viel Dokumentation, wie die Option display_with in Best In Place zu verwenden, aber ich versuche, Best_in_Place zu erhalten, um Daten in verdichteter Form anzuzeigen, (MM/TT/JJJJ). My db (SQLServer) hat die in Datetime-Format gespeicherten Daten, und ich verwende diesen Befehl, um das Feld anzuzeigen:Best_in_place display_with nicht finden helper
<%= best_in_place(@production, :budget_approval_internal, type: :date, :nil => "[Not set]") %>
Wenn das Juwel geklickt funktioniert wie erwartet, ein Kalender-Steuerelement des Aufstellen das Datum auszuwählen, und dann in Kurzform anzeigen. Aber wenn ich refresh drücken erhalte ich ein Datum, das wie folgt aussieht:
2013-12-04 00:00:00 UTC
Also dachte ich, ich verwenden könnte: display_with Option Gebrauch einen Helfer zu haben, die wie folgt aussieht:
def format_date(my_date)
my_date.strftime('%m/%d/%Y')
end
ich diese setzen im application_helper.rb Modul und dann versucht, dies:
<%= best_in_place(@production, :budget_approval_internal, type: :date, :display_with => :format_date, :nil => "[Not set]") %>
aber ich einen Fehler in den Worten:
"kann das Hilfsprogramm format_date nicht finden. Irgendwelche Ideen?
Nein, ich glaube, ApplicationHelper ist automatisch in allen Controllern enthalten, aber auf jeden Fall hat es nicht geholfen. Interessanterweise, wenn ich einfach <% = format_date (@ production.budget_approval_internal)%> in die Ansicht lege, funktioniert es gut.Ich bin mir nicht sicher, wie format_date den Parameter von display_with bekommen soll, aber ich gehe davon aus, dass das Teil der best_in_place Magie ist. – user1023110
Es scheint, dass es nur Helfer aus dem ActionView-Modul akzeptiert. In lib/best_in_place/helper.rb gibt es einen Haken bei 'ViewHelpers.respand_to? (Opts [: display_with])'. Und der ViewHelpers wird wie folgt erstellt: 'BestInPlace :: ViewHelpers = ActionView :: Base.new' – Sebi
Also gibt es eine Möglichkeit, diese Funktion irgendwie in das ActionView-Modul einzufügen? – user1023110