# Custom rake task: uninitialized constant

**URL:** <https://www.ruby-forum.com/t/custom-rake-task-uninitialized-constant/207400>\
**Category:** IT\
**Created:** [May 25, 2011, 10:23am UTC](https://www.ruby-forum.com/t/custom-rake-task-uninitialized-constant/207400 "2011-05-25T10:23:27Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [May 25, 2011, 10:23am UTC](https://www.ruby-forum.com/t/custom-rake-task-uninitialized-constant/207400/1 "2011-05-25T10:23:27Z")

</div>

Questo e’ un esempio di un rake taks ch mi sono fatto:

CUSTOM\_MONTHS = [nil, “GEN”, “FEB”, “MAR”, “APR”, “MAG”, “GIU”, “LUG”,  
“AGO”, “SET”, “OTT”, “NOV”, “DIC”]

def parse\_date\_string(date\_string)  
begin  
day, month, year = date\_string.split("-")  
Time.mktime(year, CUSTOM\_MONTHS.index(month),  
day).strftime("%Y-%m-%d")  
rescue  
return nil  
end  
end

namespace :import do  
desc ‘import pericolanti’  
task :pericolanti =\> :environment do  
UnsafeBuilding.delete\_all  
puts “Creating unsafe\_buildings…”  
lines = FasterCSV.read(’/home/user/Docs/pericolanti’)  
lines.each do |row|  
if row.any?  
# controllo che row[10] e row[11] non siano stringhe  
barrier\_meters = row[10] if row[10].is\_a?(Float) or  
row[10].is\_a?(Integer)  
square\_meters\_public\_land = row[11] if row[11].is\_a?(Float) or  
row[11].is\_a?(Integer)

```
    practice_number = row[17].to_i
    practice_date = parse_date_string(row[3])
    practice_new_date = parse_date_string(row[3])
    inspection_date = parse_date_string(row[7])
    intervention_date = parse_date_string(row[9])
    remove_date = parse_date_string(row[13])
    notification_date = parse_date_string(row[14])
    expiry_date = parse_date_string(row[15])
    cordoned_off = true if row[8] == "Si" or row[8] == "SI"
    cordoned_off = false if row[8] == "No" or row[8] == "NO"
    UnsafeBuilding.create!({ :practice_number => practice_number,

```

:address =\> row[6]

etc. etc.

rake import:pericolanti funziona perfettamente, l’import del file csv  
viene fatto ma se faccio rake import:pericolanti  
RAILS\_ENV=“production” mi dice:  
uninitialized constant UnsafeBuilding.  
Come mai.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [May 25, 2011, 10:45am UTC](https://www.ruby-forum.com/t/custom-rake-task-uninitialized-constant/207400/2 "2011-05-25T10:45:04Z")

</div>

On 25 May 2011 08:22, Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> return nil  
> if row.any?  
> intervention\_date = parse\_date\_string(row[9])  
> rake import:pericolanti funziona perfettamente, l’import del file csv  
> viene fatto ma se faccio rake import:pericolanti  
> RAILS\_ENV=“production” mi dice:  
> uninitialized constant UnsafeBuilding.  
> Come mai.

Scusate risolto, bisognava aggiungere require “/app/models/Model” nel  
rake file.
