Я написал веб-форму, используя Sinatra и Haml, которые будут использоваться для вызова сценария Ruby.Как передать аргумент при вызове файла вида?
Все кажется прекрасным, за исключением одного: мне нужно передать аргумент в файл просмотра Haml из сценария Sinatra/Ruby.
Вот часть моего кода:
#!/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
Если сценарий встречает arror он возвращает строку со словом «Error». Если это произойдет, я вызываю файл Haml, который будет показывать страницу ошибок пользователям. Если сценарий не встречается с агентом, он вернет страницу успеха.
Я хочу добавить на страницу успеха/сбоя имя новой виртуальной машины, добавленной пользователем. Моя проблема в том, что я понятия не имею, как передать ее в обоих моих файлах Haml. Я искал решение, но ничего не нашел.
Работа отлично, спасибо очень много (проголосовали!) – Cocotton
Будет ли это работать и для макета? Если у меня есть 'haml: index,: layout =>: common_layout,: locals => {: object => my_object}', будет ли локальная переменная 'object' определена в шаблоне' common_layout'? – Alexey