Thanks for your reply! I did this and now it's perfect.
[?] Merry Xmas 2014-12-24 11:27 GMT-02:00 Vivek Sampara <[email protected]>: > Hi Anjos, > > Which is the class that is not ActiveRecord descendent ? Im > assuming Taxes::Premisefinder > > define an errors class this way > > class Error > attr_accessor :errors > def initialize > @errors = {} > end > def add(key, message) > self.errors[key] = message > end > end > > class Car > def errors > @errors ||= Error.new > end > end > > @car = Car.new > @car.errors.add(:name, "Invalid") > > And you can define valid? method and add errors accordingly. > > Its not perfect but can be a good starting point. > > > On Wed, Dec 24, 2014 at 5:08 PM, Cezinha Anjos <[email protected]> > wrote: > >> Hi everyone! Are you ok? I hope yes... >> >> I'm working on a class whose its responsibility is calculate Brazilian >> taxes. >> >> Its use is so and so like this: >> >> invoice_product = InvoiceProduct.new(filtered_params) >> operationkind = Operationkind.find(params[:operationkind_id]) >> recipient = Person.find(params[:recipient_id]) >> >> finder = Taxes::Premisefinder.new >> >> finder.find( >> current_user.licenciated, >> recipient.city.uf, >> operationkind, >> invoice_product.product.taxgroup, >> invoice_product) >> >> render json: invoice_product, status: :created >> >> >> >> It's used in a controller to respond as json in a rest API. It's not a >> ActiveRecord descendent class. >> >> My doubt is: what is the best way to collect the possible errors >> generated from Taxes::Premisefinder? >> >> Should I do Taxes::Premisefinder generates exceptions and catch them on >> the controller? >> >> Should I use similar strategy of ActiveRecord using Errrors class? >> >> In this case, what's the Rails way to work? >> >> Thanks! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/rubyonrails-talk/f5546b00-c752-476a-86cc-3e19621152ce%40googlegroups.com >> <https://groups.google.com/d/msgid/rubyonrails-talk/f5546b00-c752-476a-86cc-3e19621152ce%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/CAFKVRj-f6v1ySsT_1v1okX07V_z7PvZBNQEq4cv5c7oe3JFCtw%40mail.gmail.com > <https://groups.google.com/d/msgid/rubyonrails-talk/CAFKVRj-f6v1ySsT_1v1okX07V_z7PvZBNQEq4cv5c7oe3JFCtw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- *César Luiz dos Anjos Júnior* Diretor (48) 3263-7137 http://www.asseinfo.com.br [image: Descrição: Descrição: C:\assinatura_email\logo.jpg] "A curiosidade é um dos maiores sinais de vitalidade de um profissional.” Jim Collins “Keep learning like a crazy...” Uncle Bob -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CACDeCptJ%3D00mGjW8MRw2j%3DtTh-5w9vFf0TwBVC_DPevus8chsg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

