Tôi đã viết một biểu mẫu web sử dụng Sinatra và Haml sẽ được sử dụng để gọi một tập lệnh Ruby.Làm thế nào để vượt qua một đối số khi gọi một tập tin xem?
Mọi thứ có vẻ tốt ngoại trừ một điều: Tôi cần chuyển một đối số cho tệp xem Haml từ tập lệnh Sinatra/Ruby.
Đây là một phần của mã của tôi:
#!/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
Nếu kịch bản gặp một arror nó sẽ trả về một chuỗi bao gồm từ "Lỗi". Nếu điều này xảy ra, tôi sẽ gọi một tệp Haml sẽ hiển thị trang lỗi cho người dùng. Nếu tập lệnh không gặp lỗi, nó sẽ trả về trang thành công.
Tôi muốn bao gồm, trong trang thành công/lỗi, tên của máy ảo mới mà người dùng đã thêm. Vấn đề của tôi là tôi không có đầu mối làm thế nào để vượt qua nó trong cả hai tập tin Haml của tôi. Tôi đã tìm kiếm một giải pháp, nhưng không tìm thấy gì cả.
Làm việc một cách hoàn hảo, cảm ơn bạn rất nhiều (đã bỏ phiếu!) – Cocotton
Điều này cũng có tác dụng cho bố cục không? Nếu tôi có 'haml: index,: layout =>: common_layout,: locals => {: object => my_object}', biến cục bộ 'object' có được định nghĩa trong mẫu' common_layout' không? – Alexey