Sri thank you for reply me but I don't understand: 1. authorized_for_delete? is a rails method? How can I use it? 2. the problem is not before_destroy; the validation is ok and in fact the record is not deleted, I need a way to return to the view a message like "flash[:notice] = "can't delete"".
thank you for your help On 7 Nov, 18:36, Sri Sri <[EMAIL PROTECTED]> wrote: > I think there are two ways to do it. Anyone please correct me if I am wrong: > > 1. Try the authorized_for_delete? method in the model. That should > control the delete operations. I find it very useful. > > 2. Please look into Canceling callbacks. 'before_destroy' might be > useful to you. > http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html#M001622 > > -Sri > > Stefano wrote: > > Ok rais goes to the log file. > > So how to go with a error message in the active scaffold view? > > > Thank you > > > On 7 Nov, 17:22, Sri Sri <[EMAIL PROTECTED]> wrote: > > >> raise will raise an exception which goes to the log file. > > >> Stefano wrote: > > >>> Sorry, I've read so fast your reply so I've mistake the code. > >>> Now I've try with this code (like you've write) > > >>> before_destroy :deletable > >>> def deletable > >>> products.blank? > >>> end > > >>> and the validation is ok, but now no message appears (neither "Request > >>> Failed (code 500, Internal Error)"). > >>> I would to show the user that the delete operation is not permetted. > >>> How to do this in the Active Scaffold view? > > >>> Thank you > > >>> On 7 Nov, 17:12, Stefano <[EMAIL PROTECTED]> wrote: > > >>>> Thank you for your reply. > >>>> I've try to use this code: > > >>>> before_destroy :deletable > > >>>> def deletable > >>>> unless products.blank? > >>>> raise "You can't destroy this invoice!" > >>>> end > >>>> end > > >>>> but the message in the view is always "Request Failed (code 500, > >>>> Internal Error)". > > >>>> What can I do? > > >>>> Thank you for your help > > >>>> On 7 Nov, 11:48, "Sergio Cambra .:: entreCables - Symbol Servicios > >>>> Informáticos S.L. ::." <[EMAIL PROTECTED]> wrote: > > >>>>> El Thursday 06 November 2008 16:46:23 Stefano escribió: > > >>>>>> Hi, I've a model called "Invoice" that :has_many products. > >>>>>> I've validate the destroy of one Invoice that control if the > >>>>>> invoice.products is empty (one invoice can't be deleted if contains > >>>>>> products). > >>>>>> Here the code: > >>>>>> ----------------------------------- > >>>>>> before_destroy :deletable > > >>>>>> def deletable > >>>>>> unless products == [] > >>>>>> raise "You can't destroy this invoice!" > >>>>>> end > >>>>>> end > >>>>>> ------------------------------------- > > >>>>>> The validation is ok so in the view (managed by ActiveScaffold) if I > >>>>>> try to delete one invoice with some products associated, I receive the > >>>>>> message "Request Failed (code 500, Internal Error)" and not "You can't > >>>>>> destroy this invoice!". > >>>>>> How can I change the message? > >>>>>> Thank you > > >>>>> ActionController callbacks must raise an exception or render or > >>>>> redirect to > >>>>> cancel the action, but ActiveRecord callbacks cancel actions returning > >>>>> false, > >>>>> so you should use: > > >>>>> def deletable > >>>>> products.blank? > >>>>> end > >>>>> -- > >>>>> Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::. > >>>>> Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza > >>>>> T) 902 021 404 F) 976 52 98 07 E) [EMAIL PROTECTED] --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ActiveScaffold : Ruby on Rails plugin" 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/activescaffold?hl=en -~----------~----~----~----~------~----~------~--~---
