zachary edgell
zachary edgell

Reputation: 87

Sinatra error added unsure of the issue

the problem i am having is a no implicit conversion of nil into String and im so confused on sinatra is saying it on the redirect '/final' and location is a + i really need to know what the issue because the is a school assignment i have that needs turned in monday

require "sinatra"

get '/' do 
    erb :namesex
end

post '/namesex' do 
    firstname = params[:firstname]
    lastname = params[:lastname]
    sirname = params[:sirname]
    redirect '/pizza?firstname=' + firstname + '&lastname=' + lastname + 
    '&sirname=' + sirname
end

get '/pizza' do 
    firstname = params[:firstname]
    lastname = params[:lastname]
    sirname = params[:sirname]
    erb :pizza, :locals => {:firstname => firstname, :lastname => lastname, 
:sirname => sirname}
end

post '/pizza' do
    firstname = params[:firstname]
    lastname = params[:lastname]
    sirname = params[:sirname]
    cheese_p = params[:cheese_p]
    peporini_p = params[:peporini_p]
    sausage_p = params[:sausage_p]
    fruit_p = params[:fruit_p]
    submit = params[:submit]
    redirect '/final?firstname=' + firstname + '&lastname=' + lastname + 
'&sirname=' + sirname + '&cheese_p=' + cheese_p + '&peporini_p=' + 
peporini_p + '&sausage_p=' + sausage_p + '&fruit_p=' + fruit_p + '&submit' + 
submit
end

get '/final' do 
    firstname = params[:firstname]
    lastname = params[:lastname]
    sirname = params[:sirname]
    cheese = params[:cheese]
    peporini = params[:peporini]
    sausage = params[:sausage]
    fruit = params[:fruit]
    erb :final, :locals => {:firstname => firstname, :lastname => lastname, 
:sirname => sirname, :cheese_p => cheese_p, :peporini_p => peporini_p, 
:sausage_p => sausage_p, :fruit_p => fruit_p, :submit => submit}
end

Upvotes: 0

Views: 28

Answers (1)

Josh McMillan
Josh McMillan

Reputation: 734

Your /final route looks like this:

firstname = params[:firstname]
lastname = params[:lastname]
sirname = params[:sirname]
cheese = params[:cheese]
peporini = params[:peporini]
sausage = params[:sausage]
fruit = params[:fruit]
erb :final, :locals => {
  :firstname => firstname, 
  :lastname => lastname, 
  :sirname => sirname,
  :cheese_p => cheese_p,
  :peporini_p => peporini_p, 
  :sausage_p => sausage_p,
  :fruit_p => fruit_p,
  :submit => submit
}

There's three variables you're passing into erb :final there which don't exist in the block above – peporini_p, sausage_p and fruit_p. That needs to be peporini, sausage and fruit, based on the variable definitions you've made above.

Also – I hate to be that guy but you might want to roll a spellcheck over this – you probably want surname rather than sirname, and pepperoni rather than peporini :)

Upvotes: 2

Related Questions