#on still exists in Rails 3, it is aliased with #[]

There's also effort underway to have the #on method return an Error 
object instead of a String (where Error might inherit from String). In 
views you can then query each Error object for it's attribute symbol or 
for it's (lazily) translated error string.

http://github.com/mateomurphy/rails/blob/73ac06a165e0e255bab03f693a6158c8dc67af17/activerecord/lib/active_record/validations.rb



Lawrence

> Just FYI, in Rails3 #on was replaced with #[]. The final 0.10 should 
> probably support both.
>
> -- Yehuda
>
> On Sat, Jun 20, 2009 at 2:46 PM, Hola <[email protected] 
> <mailto:[email protected]>> wrote:
>
>
>     Any idea why it doesn't mirror the AR interface? Is it likely to in
>     the future?
>
>     On Jun 20, 5:38 pm, Ted Han <[email protected]
>     <mailto:[email protected]>> wrote:
>     > It shouldn't break anything in DM.
>     >
>     > On Sat, Jun 20, 2009 at 5:34 PM, Hola <[email protected]
>     <mailto:[email protected]>> wrote:
>     >
>     > > I believe that for #errors to pass muster in active_record_helper,
>     > > there needs to be three methods in
>     > > Datamapper::Validate::ValidationErrors: 'on', 'full_messages' and
>     > > 'count'. Of these three methods, the only one that is missing is
>     > > 'count'.
>     >
>     >
>     >http://github.com/datamapper/dm-more/blob/459fd82a8923d7bf9c3d6ce64ab...
>     >
>     > > In AR 'count' is an alias for 'size', which is a simple one-liner:
>     >
>     > >http://api.rubyonrails.org/classes/ActiveRecord/Errors.html#M002504
>     > > # File vendor/rails/activerecord/lib/active_record/validations.rb,
>     > > line 225
>     > > 225:     def size
>     > > 226:       @errors.values.inject(0) { |error_count, attribute|
>     > > error_count + attribute.size }
>     > > 227:     end
>     >
>     > > I'm not sure if there was a particular reason why 'count' was
>     omitted
>     > > from the DM implementation - Is it safe for me to add my own
>     'count'
>     > > method along the lines of the 'size' method in AR or would
>     this break
>     > > something in DM?
>     >
>     > > On Jun 20, 2:56 pm, Yehuda Katz <[email protected]
>     <mailto:[email protected]>> wrote:
>     > > > Is #errors in 0.10 a simple Hash? It would need to duck-type
>     like an AR
>     > > > errors object to work.
>     > > > -- Yehuda
>     >
>     > > > On Sat, Jun 20, 2009 at 11:39 AM, Hola
>     <[email protected] <mailto:[email protected]>> wrote:
>     >
>     > > > > In Rails, you add error messages to the view like so:
>     >
>     > > > > <% remote_form_for(mymodel) do |f| %>
>     > > > >   <%= f.error_messages %>
>     >
>     > > > > However, if mymodel is a Datamapper rather than an
>     ActiveRecord model,
>     > > > > it produces an error:
>     >
>     > > > > undefined method `count' for {}:Hash
>     >
>     > > > > At the moment I am addressing this unfortunately by
>     removing the call
>     > > > > to error_messages in the view.
>     >
>     > > > > Is there a better workaround?
>     >
>     > > > > This is the stack trace, in case it helps (I just updated
>     to the
>     > > > > latest 0.10 release candidate for all dm gems).
>     >
>     > >
>     
> ----------------------------------------------------------------------------------------------------
>     >
>     > > > > C:/Ruby18/lib/ruby/gems/1.8/gems/dm-validations-0.10.0/lib/dm-
>     > > > > validations/validation_errors.rb:106:in `send'
>     > > > > C:/Ruby18/lib/ruby/gems/1.8/gems/dm-validations-0.10.0/lib/dm-
>     > > > > validations/validation_errors.rb:106:in `method_missing'
>     > > > >
>     C:/Ruby18/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/
>     > > > > helpers/active_record_helper.rb:179:in `error_messages_for'
>     > > > >
>     C:/Ruby18/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/
>     > > > > renderable.rb:77:in `inject'
>     > > > >
>     C:/Ruby18/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/
>     > > > > helpers/active_record_helper.rb:179:in `each'
>     > > > >
>     C:/Ruby18/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/
>     > > > > helpers/active_record_helper.rb:179:in `inject'
>     > > > >
>     C:/Ruby18/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/
>     > > > > helpers/active_record_helper.rb:179:in `error_messages_for'
>     > > > >
>     C:/Ruby18/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/
>     > > > > helpers/form_helper.rb:984:in `error_messages'
>     >
>     > > > --
>     > > > Yehuda Katz
>     > > > Developer | Engine Yard
>     > > > (ph) 718.877.1325
>     >
>     >
>
>
>
>
> -- 
> Yehuda Katz
> Developer | Engine Yard
> (ph) 718.877.1325
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to