Forum: Ruby on Rails how can I "DRYize" this method?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D1f3d779854573da0340bf53b0b625cc?d=identicon&s=25 flaubert (Guest)
on 2009-01-21 15:40
(Received via mailing list)
Hi all,


well I have this helper in my form, but it isn't DRY, as you see:

<%= f.text_field(:birth_date, :size => '10', :maxlength =>
'10', :class => "format-d-m-y divider-slash split-date", :value =>
(@person.birth_date.nil? ? '': @person.birth_date)) %>

so, @person and :birth_date must be dymamic in a helper.


How can I write those on a helper?
5772c599ccab3081e0fffb1d54f3b6de?d=identicon&s=25 Andrew Timberlake (andrewtimberlake)
on 2009-01-21 15:49
(Received via mailing list)
On Wed, Jan 21, 2009 at 4:39 PM, flaubert <aflauberts@gmail.com> wrote:

> so, @person and :birth_date must be dymamic in a helper.
>
>
> How can I write those on a helper?
> >
>
helper:
def date_field(form, method, model)
  form.text_field(method,
                         :size => 10,
                         :maxlength => 10,
                         :class => 'format-d-m-y divider-slash
split-date',
                         :value => (model.send(method).nil? ? '' :
model.send(method))
                       )
end

view:
<%= date_field(f, :birth_date, @person) %>


You could also create a custom form builder and add a date_field method
there to get the following in your view:
<%= f.date_field :birth_date %>

--
Andrew Timberlake
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

"I have never let my schooling interfere with my education" - Mark Twain
F53b05cdbdf561cfe141f69b421244f3?d=identicon&s=25 David A. Black (Guest)
on 2009-01-21 15:56
(Received via mailing list)
Hi --

On Wed, 21 Jan 2009, flaubert wrote:

> so, @person and :birth_date must be dymamic in a helper.
What does your form_for line look like? If you've got:

   form_for :person ... do |f|
     f.text_field(:birth_date)

(or some small variations on that) you'll get @person.birth_date in
the field automatically.


David

--
David A. Black / Ruby Power and Light, LLC
Ruby/Rails consulting & training: http://www.rubypal.com
Coming in 2009: The Well-Grounded Rubyist (http://manning.com/black2)

http://www.wishsight.com => Independent, social wishlist management!
D1f3d779854573da0340bf53b0b625cc?d=identicon&s=25 flaubert (Guest)
on 2009-01-21 16:06
(Received via mailing list)
tnks guy! it works, I tried exactly this, but except the "form" var.


very tnks!

On 21 jan, 11:49, Andrew Timberlake <and...@andrewtimberlake.com>
This topic is locked and can not be replied to.