# Error in if statement

**URL:** <https://www.ruby-forum.com/t/error-in-if-statement/87269>\
**Category:** Rails\
**Created:** [March 1, 2007, 11:15am UTC](https://www.ruby-forum.com/t/error-in-if-statement/87269 "2007-03-01T11:15:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rubysharma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a5b964/32.png) [@rubysharma](https://www.ruby-forum.com/u/rubysharma)\
**Post date:** [March 1, 2007, 11:15am UTC](https://www.ruby-forum.com/t/error-in-if-statement/87269/1 "2007-03-01T11:15:50Z")

</div>

Hi,

The below code is my global layout…code I would like to include a if  
statement in it.

 Languages: \<%= controller.action\_name %\> \<%= stylesheet\_link\_tag 'scaffold' %\>

\<% if flash[:notice].empty? then puts flash[:message]%\>

\<%= yield %\>

whats wrong with the if statement here…?

Thanks in advance,  
Sharma

---

<div class="post-metadata">

**Author:** ![rubysharma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a5b964/32.png) [@rubysharma](https://www.ruby-forum.com/u/rubysharma)\
**Post date:** [March 1, 2007, 11:29am UTC](https://www.ruby-forum.com/t/error-in-if-statement/87269/2 "2007-03-01T11:29:56Z")

</div>

> \<% if flash[:notice].empty? then puts flash[:message]%\>

> whats wrong with the if statement here…?

puts won’t work in rhtml. You can try this:  
\<%= flash[:message] if flash[:notice].empty? %\>

## Regards, Rimantas

[http://rimantas.com/](http://rimantas.com/)

---

<div class="post-metadata">

**Author:** ![rubysharma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a5b964/32.png) [@rubysharma](https://www.ruby-forum.com/u/rubysharma)\
**Post date:** [March 1, 2007, 11:32am UTC](https://www.ruby-forum.com/t/error-in-if-statement/87269/3 "2007-03-01T11:32:56Z")

</div>

think i read somewhere that “puts” should not be used in templates.

use

\<%= flash[:message] if flash[:notice].empty? %\>

On 1 Mrz., 11:15, Sharma C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![rubysharma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a5b964/32.png) [@rubysharma](https://www.ruby-forum.com/u/rubysharma)\
**Post date:** [March 1, 2007, 2:32pm UTC](https://www.ruby-forum.com/t/error-in-if-statement/87269/4 "2007-03-01T14:32:28Z")

</div>

On Mar 1, 2007, at 5:15 AM, Sharma C. wrote:

> Languages: \<%= controller.action\_name %\> \<%= stylesheet\_link\_tag 'scaffold' %\>

\<% if flash[:notice].empty? %\> \<%= flash[:message] %\> \<% end %\>

> \<%= yield %\>
> 
> whats wrong with the if statement here…?
> 
> Thanks in advance,  
> Sharma

You need to use \<%= %\> to get output from ERb and (as others have  
said) you don’t use puts in templates.

You’re Welcome,  
-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![rubysharma](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a5b964/32.png) [@rubysharma](https://www.ruby-forum.com/u/rubysharma)\
**Post date:** [March 1, 2007, 12:29pm UTC](https://www.ruby-forum.com/t/error-in-if-statement/87269/5 "2007-03-01T12:29:14Z")

</div>

Thanks for the help.

Thorsten wrote:

> think i read somewhere that “puts” should not be used in templates.
> 
> use
> 
> \<%= flash[:message] if flash[:notice].empty? %\>
> 
> On 1 Mrz., 11:15, Sharma C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
