Napisałem formularz internetowy wykorzystujący Sinatrę i Haml, które będą używane do wywoływania skryptu w języku Ruby.Jak przekazać argument podczas wywoływania pliku widoku?
Wszystko wydaje się w porządku, z wyjątkiem jednej rzeczy: muszę przekazać argument do pliku widoku Haml ze skryptu Sinatra/Ruby.
Tutaj jest część mojego kodu:
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
require 'haml'
get '/' do
haml :index
end
post '/' do
name = params[:name]
vlan = params[:vlan]
tmp = nil
tmp = %x[./wco-hosts.rb -a -n #{name} -v #{vlan}]
if tmp.include?("Error")
haml :fail
else
haml :success
end
end
Jeśli skrypt napotka arror zwróci ciąg zawierającej słowo „Error”. Jeśli tak się stanie, dzwonię do pliku Haml, który wyświetli stronę błędu dla użytkowników. Jeśli skrypt nie natrafi na arror, zwróci stronę sukcesu.
Chcę dodać na stronie powodzenie/niepowodzenie nazwę nowej maszyny wirtualnej dodanej przez użytkownika. Mój problem polega na tym, że nie mam pojęcia, jak go przekazać w obu moich plikach Haml. Szukałem rozwiązania, ale niczego nie znalazłem.
Działa doskonale, dziękuję bardzo dużo (głosowało w górę!) – Cocotton
Czy to też działa dla układu? Jeśli mam 'haml: index,: layout =>: common_layout,: locals => {: object => my_object}', czy zmienna lokalna 'object' zostanie zdefiniowana w szablonie' common_layout'? – Alexey