Expected kelse

The following piece of code returns:
syntax error, unexpected kELSE, expecting kEND

When I delete this block of code all works well - I have read that
this may be an issue with copied or pasted code, UTF-8 issues etc…

I have tried all of these - is there simply something wrong with my
code that I am not seeing?

<% if c.amount < 500 %>
<% @project.budgmonthexpends.find(:all, :conditions =>
[:year_id == c.year_id]).each do |d| %>
<% else %>
<[email protected](:all, :conditions => :year_id
== c.year_id).each do |d|%>
<% end %>

Thanks,
Erik

On 24 Apr 2008, at 16:20, erik wrote:

       <% @project.budgmonthexpends.find(:all, :conditions =>

[:year_id == c.year_id]).each do |d| %>
<% else %>
<[email protected](:all, :conditions => :year_id
== c.year_id).each do |d|%>
<% end %>

Thanks,
Erik

You never finish (or do anything with) the block from the line above,
you have to end that block with ‘end’ before your ‘else’ statement.

if c.amount < 500
@project.budgmonthexpends.find(:all, :conditions => [:year_id ==
c.year_id]).each do |d|
end
else
@project.budgmonthexpends.find(:all, :conditions => :year_id ==
c.year_id).each do |d|
end
end

Is valid code (though still gibberish since you’re not doing anything
with the two each blocks). Hope that helps.

Alex G.

Department of Biochemistry
University of Cambridge

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

erik wrote:
| The following piece of code returns:
| syntax error, unexpected kELSE, expecting kEND
|
| When I delete this block of code all works well - I have read that
| this may be an issue with copied or pasted code, UTF-8 issues etc…
|
| I have tried all of these - is there simply something wrong with my
| code that I am not seeing?

Removing the ERb cruft:

if c.amount < 500
~ @project.budgmonthexpends.find(:all, :conditions =>
[:year_id == c.year_id]).each do |d|
~ else
~ @project.budgmonthexpends.find(:all, :conditions =>
~ :year_id == c.year_id).each do |d|
~ end

Stuffing an ‘else’ in a block makes Ruby throw an error, obviously.


Phillip G.
Twitter: twitter.com/cynicalryan

~ - You know you’ve been hacking too long when…
…you get snail mail, and you think to your self "You have new mail on
node “your_address” from user “name_on_the_frank”.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkgQqNAACgkQbtAgaoJTgL9qZwCfQEmZTKTuIZLneB3NINWKVXOr
WKQAnj84e3tV9mkGITpgbqY0BTq1OGUk
=jPbH
-----END PGP SIGNATURE-----

if c.amount < 500
~ @project.budgmonthexpends.find(:all, :conditions =>
[:year_id == c.year_id]).each do |d|
~ else
~ @project.budgmonthexpends.find(:all, :conditions =>
~ :year_id == c.year_id).each do |d|
~ end

Stuffing an ‘else’ in a block makes Ruby throw an error, obviously.

Besides that, how is »[:year_id == c.year_id]« or »:year_id ==
c.year_id« supposed to work?

mfg, simon … l

I think your
previous line
<% @project.budgmonthexpends.find(:all, :conditions =>
[:year_id == c.year_id]).each do |d| %>

is missing the block of code to execute… which should end with an
‘end’, but the else is seen prior to the end required to end the block.

RF

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs