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