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

···

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

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

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

* 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