# Um... incredibly bizarre situation... smokescreen?

**URL:** <https://www.ruby-forum.com/t/um-incredibly-bizarre-situation-smokescreen/74614>\
**Category:** Radiant CMS\
**Created:** [November 7, 2006, 10:50am UTC](https://www.ruby-forum.com/t/um-incredibly-bizarre-situation-smokescreen/74614 "2006-11-07T10:50:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [November 7, 2006, 10:50am UTC](https://www.ruby-forum.com/t/um-incredibly-bizarre-situation-smokescreen/74614/1 "2006-11-07T10:50:07Z")

</div>

## event\_behavior.rb

class EventBehavior \< Behavior::Base

register ‘Event’

description = %{}

define\_tags do  
tag ‘event’ do |tag|  
if tag.attr[‘find’]  
tag.locals.event = Event.find\_by\_name(tag.attr[‘find’])  
end

```
  tag.expand
end

tag 'event:name' do |tag|
  tag.locals.event.name
end

```

end

end

## Radiant page:

\<r:event find=“Celine Dion”\>

* * *

Okay. So, the example above works. However… One seemingly simple  
change…

## event\_behavior.rb

class EventBehavior \< Behavior::Base

register ‘Event’

description = %{}

define\_tags do  
tag ‘event’ do |tag|  
tag.locals.event = Event.find\_by\_name(tag.attr[‘find’])  
tag.expand  
end

```
tag 'event:name' do |tag|
  tag.locals.event.name
end

```

end

end

* * *

And everything goes to shit. I get:  
You have a nil object when you didn’t expect it! The error occured while  
evaluating nil.name

Hitting refresh gives me a Rails error – I assume it’s because of  
Radiant’s  
caching.

Since when did evaluation for truth alter the way something behaves?

Help is greatly appreciated.

- Daniel

---

<div class="post-metadata">

**Author:** ![dewie](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/ac8455/32.png) [@dewie](https://www.ruby-forum.com/u/dewie)\
**Post date:** [November 7, 2006, 10:50am UTC](https://www.ruby-forum.com/t/um-incredibly-bizarre-situation-smokescreen/74614/2 "2006-11-07T10:50:42Z")

</div>

Update…

Looks like the query is being run twice.

My development log says…

* * *

Event Load (0.000271) SELECT \* FROM events WHERE (name = ‘Celine  
Dion’)  
LIMIT 1  
Event Columns (0.000165) SHOW FIELDS FROM events

Logger: Found record: Celine Dion

## Event Load (0.000187) SELECT \* FROM events WHERE (name = NULL) LIMIT 1

For whatever reason it’s doing the find twice. Any ideas?

* * *
