# Access one specific child

**URL:** <https://www.ruby-forum.com/t/access-one-specific-child/92544>\
**Category:** Radiant CMS\
**Created:** [April 20, 2007, 2:57pm UTC](https://www.ruby-forum.com/t/access-one-specific-child/92544 "2007-04-20T14:57:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [April 20, 2007, 2:57pm UTC](https://www.ruby-forum.com/t/access-one-specific-child/92544/1 "2007-04-20T14:57:54Z")

</div>

Hi,

is there a way to select one specific child, in contrast to iterating  
over all of them?  
Something like \<children:each slug=“child-slug”\> or .

thanks

Raph

–  
Web database: [http://www.myowndb.com](http://www.myowndb.com)  
Free Software Developers Meeting: [http://www.fosdem.org](http://www.fosdem.org)

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [April 20, 2007, 3:04pm UTC](https://www.ruby-forum.com/t/access-one-specific-child/92544/2 "2007-04-20T15:04:55Z")

</div>

On 20/04/07, Raphael B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi,
> 
> is there a way to select one specific child, in contrast to iterating  
> over all of them?  
> Something like \<children:each slug=“child-slug”\> or .

\<r:find url=“/path/to/child”\>  
…  
\</r:find\>

Farrel

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [April 20, 2007, 10:54pm UTC](https://www.ruby-forum.com/t/access-one-specific-child/92544/3 "2007-04-20T22:54:06Z")

</div>

Raphael B. wrote:

> is there a way to select one specific child, in contrast to iterating  
> over all of them?  
> Something like \<children:each slug=“child-slug”\> or .

I have made a little patch for that to find a URL locally relative to  
the current page:

— standard\_tags.rb (revision 363)  
+++ standard\_tags.rb (working copy)  
@@ -396,9 +398,12 @@  
}  
tag ‘find’ do |tag|  
if url = tag.attr[‘url’]

- 

```
 if found = Page.find_by_url(tag.attr['url'])

```

- 

```
 if url[0..0] != "/" and found = Content.find(:first, :conditions

```

=\> [“slug = ? AND parent\_id = ?”, url, tag.locals.page.id])  
tag.locals.page = found  
tag.expand

- 

```
 elsif found = Page.find_by_url(tag.attr['url'])

```

- 

```
   tag.locals.page = found

```

- 

```
   tag.expand
  end
else
  raise TagError.new("`find' tag must contain `url' attribute")

```

You just use it like find: \<r:find url=“slug”\>…\</r:find\>

Cheers,  
Oliver

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [April 22, 2007, 10:54am UTC](https://www.ruby-forum.com/t/access-one-specific-child/92544/4 "2007-04-22T10:54:38Z")

</div>

On 4/20/07, Oliver B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> @@ -396,9 +398,12 @@
> 
> - 
> 
> ```
> tag.expand
> end
> else
> raise TagError.new("`find' tag must contain `url' attribute")
> 
> ```
> 
> You just use it like find: \<r:find url=“slug”\>…\</r:find\>

Exactly what I needed!

Will this patch be applied to the svn repo?

Thanks

Raph

> Cheers,  
> Oliver
> 
> * * *
> 
> Radiant mailing list  
> Post: removed\_email\_address@domain.invalid  
> Search: [http://radiantcms.org/mailing-list/search/](http://radiantcms.org/mailing-list/search/)  
> Site: [http://lists.radiantcms.org/mailman/listinfo/radiant](http://lists.radiantcms.org/mailman/listinfo/radiant)

–  
Web database: [http://www.myowndb.com](http://www.myowndb.com)  
Free Software Developers Meeting: [http://www.fosdem.org](http://www.fosdem.org)

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [April 23, 2007, 8:38am UTC](https://www.ruby-forum.com/t/access-one-specific-child/92544/5 "2007-04-23T08:38:43Z")

</div>

Hi Oliver,

Perhaps this should be added to Radiant’s Trac.  
I would welcome this patch as well.

Regards,  
Erik.

Oliver B. wrote:

> - 
> 
> ```
> if url[0..0] != "/" and found = Content.find(:first, :conditions 
> 
> ```
> 
> You just use it like find: \<r:find url=“slug”\>…\</r:find\>
> 
> Cheers,  
> Oliver

–  
Erik van Oosten

> **[Day to day stuff](http://day-to-day-stuff.blogspot.com/)**
>
> Experiences from a hard core JVM programmer. Likes to keep things simple.
