Zeitformatierung im Mailer


#1

Hallo.

Mir ist nicht klar warum ich im mailer view erfolglos versuche
Zeitangaben mittel helper zu formatieren.

Error:
Showing app/views/booking_mailer/booking.erb where line #5 raised:

undefined method `nice_date’ for #ActionView::Base:0x247c3fc

in allen anderen views klappt das problemlos…

Derzeit behelfe ich mir noch mit:

Beginn: <%= @seminar.start.strftime(" %d %B %Y, %H:%M")%>

aber das wird dann in englisch also may etc. ausgegeben.

Gruß
Werner

Werner L.
removed_email_address@domain.invalid


#2

aber das wird dann in englisch also may etc. ausgegeben.

Und dafür gibt es mittlerweile eine ganze Reihe Plugins, die sowas
fürDich übernehmen. Eines der populäreren ist Globalize, aber es gibt
eben noch ein paar andere.

http://www.globalize-rails.org/

Andreas R.


#3

hmm, nichts gegen globalize, aber ist das nicht überholt (schließlich
ist es “compatible with the latest shiny & jaw-dropping Ruby on Rails
1.2”): Man mag von diesen ganzen Plugins halten was man will, einige
davon sind vielleicht eleganter und haben mehr features, aber seit
einiger Zeit gibt’s i18n auch eingebaut
(http://guides.rubyonrails.org/i18n.html
) - und wenn’s nur darum geht, ein Datum/Timestamp zu formatieren,
dann geht das auch mit Bordmitteln allemal…

Grüße
stefan

Am 26.05.2009 um 19:31 schrieb Andreas R.:


rubyonrails-ug mailing list
removed_email_address@domain.invalid
http://mailman.headflash.com/listinfo/rubyonrails-ug


stefan frank


software&service
weberstr. 10
69120 heidelberg
tel. +49 (0) 6221 7277049
mobil +40 (0) 173 2383390
mail removed_email_address@domain.invalid


#4

Am 26.05.2009 um 20:00 schrieb Andreas R.:

Soweit danke…

Naja. Sicher. Aber letztendlich kommt man häufig vom Hundertsten ins
Tausende und stellt dann später fest, dass das, was man da über eine
gewisse Zeit hinweg so hingehackt hat, genau von einem der vielen
Plugins bereits gelöst wurde. Da ist nun die I10n ein schlechtes
Beispiel, klar.

meine eigentliche Frage warum das im MailerView nicht klappt, bleibt
erst mal offen…

Ich nutze zwar generell die Zeit/Datum Formatierung die in locales/
de.yml liegt.
Geholfen hat dann eine date.rb die ich in die lib gelegt habe.

silence_warnings do
Date::MONTHNAMES = [nil] + %w(Januar Februar März April Mai Juni
Juli August September Oktober November Dezember)
Time::MONTHNAMES = Date::MONTHNAMES
end

class Time
alias_method :strftime_old, :strftime
def strftime(format)
format = format.dup
format.gsub!(/%B/, Date::MONTHNAMES[self.mon])
self.strftime_old(format)
end
end

Gruß
Werner

Werner L.
removed_email_address@domain.invalid


#5

hmm, nichts gegen globalize, aber ist das nicht überholt (schließlich ist es
“compatible with the latest shiny & jaw-dropping Ruby on Rails 1.2”): Man
mag von diesen ganzen Plugins halten was man will, einige davon sind
vielleicht eleganter und haben mehr features, aber seit einiger Zeit gibt’s
i18n auch eingebaut (http://guides.rubyonrails.org/i18n.html) - und wenn’s
nur darum geht, ein Datum/Timestamp zu formatieren, dann geht das auch mit
Bordmitteln allemal…

Naja. Sicher. Aber letztendlich kommt man häufig vom Hundertsten ins
Tausende und stellt dann später fest, dass das, was man da über eine
gewisse Zeit hinweg so hingehackt hat, genau von einem der vielen
Plugins bereits gelöst wurde. Da ist nun die I10n ein schlechtes
Beispiel, klar.

Andreas R.


#6

Werner L. wrote:

meine eigentliche Frage warum das im MailerView nicht klappt, bleibt
erst mal offen…

AFAIK sind helper nicht in Mailer Views verfuegbar. Siehe zB [1].
Folgender Thread [2] auf dieser Liste ist zwar etwas alt koennte dir
aber helfen wenn du die Helper wirklich im View werden willst.

Urban

[1] http://blog.viarails.net/2008/2/26/one-thing-i-hate-about-rails
[2]
http://www.mail-archive.com/removed_email_address@domain.invalid/msg01538.html


#7

Am 27.05.2009 um 10:02 schrieb Urban H.:

[1] http://blog.viarails.net/2008/2/26/one-thing-i-hate-about-rails
[2] http://www.mail-archive.com/removed_email_address@domain.invalid/msg01538.html

Danke Urban… das ist hilfreich…

Gruß


#8

also ich hatte das problem auch unnd habs so “lösen” können in dem ich
einfach im helper verzeichnis eine datei namens service_mail_helper.rb
erstellt habe.
so kann ich sämtliche eigenen helper in der mailer view verwenden.
nehm an wenn ich dort was include, kann ich andere helper auch im mailer
view verwenden.
lg

Am Mittwoch, den 27.05.2009, 10:11 +0200 schrieb Werner L.:


#9

Am 27.05.2009 um 10:02 schrieb Urban H.:

Werner L. wrote:

meine eigentliche Frage warum das im MailerView nicht klappt,
bleibt erst mal offen…

AFAIK sind helper nicht in Mailer Views verfuegbar. Siehe zB [1].
Folgender Thread [2] auf dieser Liste ist zwar etwas alt koennte dir
aber helfen wenn du die Helper wirklich im View werden willst.

Wird sich aber mit Rails 3.0 ändern hat DHH gesagt.

ciao, tom


Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
just a geek trying to change the world
Skype: TomK32 || Mail: removed_email_address@domain.invalid
http://flickr.com/people/tomk32