Expected kelse

E

erik

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 %> <!-- Error is occuring here -->
<%@project.budgmonthexpends.find:)all, :conditions => :year_id
== c.year_id).each do |d|%>
<% end %>

Thanks,
Erik
 
A

Alex Gutteridge

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 %> <!-- Error is occuring here -->
<%@project.budgmonthexpends.find:)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 Gutteridge

Department of Biochemistry
University of Cambridge
 
P

Phillip Gawlowski

-----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 Gawlowski
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-----
 
S

Simon Krahnke

* Phillip Gawlowski said:
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
 
R

Ron Fox

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Staff online

Members online

Forum statistics

Threads
474,206
Messages
2,571,068
Members
47,674
Latest member
scazeho

Latest Threads

Top