Je la petite application Sinatra (I ai supprimé le code inutile supplémentaire):Ruby/Sinatra/HAML problème message flash
helpers do
def flash(args={})
session[:flash] = args
end
def flash_now(args={})
@flash = args
end
end
before do
@flash = session[:flash] || {}
session[:flash] = nil
end
post '/post' do
client = Twitter::Client.new(:login => 'xxxxxxx', :password => 'xxxxxxx')
username = params[:username]
type = params[:type]
tags = params[:tags]
budget = params[:budget]
if username != '' && type != '' && tags != '' && budget != ''
message = username + ' is looking for a ' + type + ' with ' + tags + ' skills. Budget = ' + budget + ' #freelance #job'
status = client.status(:post, message)
flash(:notice => 'Gig posting sent successfully!')
else
flash(:error => 'Gig posting unsuccessful - please check the marked fields!')
end
redirect '/'
end
Et puis je suit dans le fichier modèle de mise en page de base HAML que l'application utilise:
#message
- if @flash[:error]
%p.error
= @flash[:error]
- if @flash[:notice]
%p.notice
= @flash[:notice]
Ainsi, en théorie, quand quelqu'un poste un message, aide le flash() est appelée et une variable de session est définie, la demande est redirect, lorsque les avant coups de pied filtre dans et doit définir la variable de session sur une variable d'instance accessible par le modèle.
Cependant, pour la vie de moi, je n'arrive pas à comprendre pourquoi il n'est pas imprimé le message dans le modèle.
Des idées?