Hey,

I want custom errors.as_json behavior from my implementation of
ActiveModel and with inheritance!

So how do I do something like shown in the following pseudo?

module A
include ActiveModel

def errors.to_json
"blow"
end
end

module B
include A

def errors.to_json
"go " + super
end
end


So far, I've been fooling around using instance_eval on errors in A,
but I can't get inheritance from that in B.

Lille

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Search Discussions

  • Frederick Cheung at Nov 16, 2011 at 8:31 am

    On Nov 16, 2:52 am, Lille wrote:
    Hey,

    I want custom errors.as_json behavior from my implementation of
    ActiveModel and with inheritance!

    So how do I do something like shown in the following pseudo?
    Ruby doesn't work that way. You'd need to override to_json on the
    ActiveModel::Errors class. if you want to be able to have different
    classes have an errors object that behave in different ways then you
    could try subclassing ActiveModel::Errors and have the errors method
    on your object return an instance of that subclass rather than an
    instance of ActiveModel::Errors

    Fred
    module A
    include ActiveModel

    def errors.to_json
    "blow"
    end
    end

    module B
    include A

    def errors.to_json
    "go " + super
    end
    end

    So far, I've been fooling around using instance_eval on errors in A,
    but I can't get inheritance from that in B.

    Lille
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
  • Frederick Cheung at Nov 16, 2011 at 8:35 am

    On Nov 16, 8:30 am, Frederick Cheung wrote:
    On Nov 16, 2:52 am, Lille wrote:> Hey,
    I want custom errors.as_json behavior from my implementation of
    ActiveModel and with inheritance!
    So how do I do something like shown in the following pseudo?
    Ruby doesn't work that way. You'd need to override to_json on the
    ActiveModel::Errors class. if you want to be able to have different
    classes have an errors object that behave in different ways then you
    could try subclassing ActiveModel::Errors and have the errors method
    on your object return an instance of that subclass rather than an
    instance of ActiveModel::Errors
    yet another option would be to redefine the errors method to be

    def errors
    super.tap {|e| e.extend ExtraErrorsBehaviour}
    end

    where ExtraErrorsBehaviour is a module that overrides some of the
    methods on the errors object (I vaguely recall an railsconf talk a
    long time ago by the jruby guys saying that calling extend forces ruby
    to dump its method caches, i.e. calling extend a lot will slow you
    down a bit but I've no idea if that applies to ruby 1.9.x)

    Fred

    module A
    include ActiveModel
    def errors.to_json
    "blow"
    end
    end
    module B
    include A
    def errors.to_json
    "go " + super
    end
    end
    So far, I've been fooling around using instance_eval on errors in A,
    but I can't get inheritance from that in B.
    Lille
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedNov 16, '11 at 2:53a
activeNov 16, '11 at 8:35a
posts3
users2
websiterubyonrails.org
irc#RubyOnRails

2 users in discussion

Frederick Cheung: 2 posts Lille: 1 post

People

Translate

site design / logo © 2021 Grokbase