[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Expected kelse

erik

4/24/2008 3:16:00 PM

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
4 Answers

Alex Gutteridge

4/24/2008 3:35:00 PM

0

On 24 Apr 2008, at 16:20, 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?
>
> <% 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





Phillip Gawlowski

4/24/2008 3:36:00 PM

0

-----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....

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

Simon Krahnke

4/24/2008 4:45:00 PM

0

* Phillip Gawlowski <cmdjackryan@googlemail.com> (17:35) schrieb:

> 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

Ron Fox

4/25/2008 11:31:00 AM

0

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

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?
>
> <% 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