मैंने सिनात्रा और हमल का उपयोग करके एक वेबफॉर्म लिखा था जिसका उपयोग रूबी लिपि को कॉल करने के लिए किया जाएगा।दृश्य फ़ाइल को कॉल करते समय तर्क कैसे पारित करें?
सबकुछ एक चीज़ को छोड़कर ठीक लगता है: मुझे सिनात्रा/रूबी स्क्रिप्ट से एक हैमल व्यू फ़ाइल में एक तर्क पारित करने की आवश्यकता है। स्क्रिप्ट एक arror का सामना करना पड़ता
#!/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
यदि यह शब्द "त्रुटि" सहित एक स्ट्रिंग वापस आ जाएगी:
यहाँ मेरी कोड का एक हिस्सा है। यदि ऐसा होता है, तो मैं एक हैम फ़ाइल को कॉल कर रहा हूं जो उपयोगकर्ताओं को एक त्रुटि पृष्ठ दिखाएगा। यदि स्क्रिप्ट को एक एआरआर नहीं मिलता है, तो यह एक सफल पृष्ठ लौटाएगा।
मैं सफलता/असफल पृष्ठ में, उपयोगकर्ता को जोड़े गए नए वीएम का नाम शामिल करना चाहता हूं। मेरी समस्या यह है कि मुझे कोई संकेत नहीं है कि यह मेरी हैमल फ़ाइलों दोनों में कैसे पास किया जाए। मैंने एक समाधान की खोज की, लेकिन कुछ भी नहीं मिला।
पूरी तरह से काम करते हुए, तुम बहुत धन्यवाद बहुत (वोट किया गया!) – Cocotton
क्या यह एक लेआउट के लिए भी काम करेगा? अगर मेरे पास 'हैमल: इंडेक्स, लेआउट =>: कॉमन_लेआउट, लोकल => {ऑब्जेक्ट => my_object}', 'ऑब्जेक्ट' स्थानीय वैरिएबल को 'common_layout' टेम्पलेट में परिभाषित किया जाएगा? – Alexey