🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #940

RoR: walidacja acts_as_tree

#940
From: Piotr "Harry Lepper" Misiurek
Date: Fri, 22 Feb 2008 11:43
20 lines
1889 bytes
Witam,

Od przedwczoraj zastanawiam sie jak w RoR sprawdzić poprawność
parent_id dla modelu przedstawianego w formie drzewa (acts_as_tree).
Nie chcę, aby parament parent_id:
- był taki sam jak id danego rekordu - żeby sam sobie nie mógł być
rodzicem
- wskazywał na id rekordu, dla którego obecny rekord jest przodkiem

próbowałem to zrobić wczoraj tak, pełna improwizacja:
validates_each :parent_id do |record, attr, value|
    record.errors.add attr, 'nie może wskazywać na samego siebie ani
na żadnego ze swoich potomków' if value == self.id or
Part.find(value).ancestors.include?(self.id)
  end

O dziwo nie dostałem żadnych komunikatów o błędach, ale też walidacja
nie działa. Jak ją napisać poprawnie?

pozdrawiam,
Technical Details
Message-ID: <75b6d8de-d09a-4924-b433-11e931a2cb05@n77g2000hse.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!n77g2000hse.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!n77g2000hse.googlegroups.com!not-for-mail
From: "Piotr \"Harry Lepper\" Misiurek" <harrylepper@gmail.com>
Newsgroups: pl.comp.lang.ruby
Subject: RoR: walidacja acts_as_tree
Date: Fri, 22 Feb 2008 03:43:43 -0800 (PST)
Organization: http://groups.google.com
Lines: 23
Message-ID: <75b6d8de-d09a-4924-b433-11e931a2cb05@n77g2000hse.googlegroups.com>
NNTP-Posting-Host: 83.7.71.58
Mime-Version: 1.0
X-Trace: posting.google.com 1203680624 25152 127.0.0.1 (22 Feb 2008 11:43:44 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Fri, 22 Feb 2008 11:43:44 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: n77g2000hse.googlegroups.com; posting-host=83.7.71.58;  posting-account=51nXewoAAACnvDPtTOQeWg6wEnhT8YqD
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6)  Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty),gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit