2012-09-19 20 views
-2
-#encoding: utf-8 
:css 
.hidden{display:none;} 
%script{:src=>"/javascripts/jquery.js"} 
%form{:action=>"https://get724.ccvb.com.tr/Get724/get724uye.aspx",:method=>"post"} 
%input.hidden{:type=>"text",:name=>"uyeno",:value=>""} 
%input.hidden{:type=>"text",:name=>"kkno",:value=>""} 
%input.hidden{:type=>"text",:name=>"gectar",:value=>""} 
%input.hidden{:type=>"text",:name=>"tutar",:value=>""} 
%input.hidden{:type=>"text",:name=>"dcins",:value=>""} 
%input.hidden{:type=>"text",:name=>"sipbil",:value=>""} 
%input.hidden{:type=>"text",:name=>"sesbil",:value=>""} 
%input.hidden{:type=>"text",:name=>"burl",:value=>""} 
%input.hidden{:type=>"text",:name=>"hurl",:value=>""} 
- t = Time.now.strftime("%Y%m%d%H%M%S") 
- puts t 
%input.hidden{:type=>"text",:name=>"zaman",:value=>"#{t}"} 
-puts "adfasdf : " + @asdf.to_s 
-puts "asdf" 
-puts "asdf : " + @asdf.to_s 
-puts session[:ewer] 
-puts session[:zxcv] 
-puts strtodigest 
-digest = Digest::SHA1.base64digest(strtodigest) 
-puts digest 
-#%input{:type=>"text",:value=>"#{strtodigest}"} 
-#%input{:type=>"text",:value=>"#{digest}"} 
%input.hidden{:type=>"text",:name=>"ozet",:value=>"#{digest}"} 
:javascript 
    $('form').submit(); 
-puts "End Of Haml" 

我有一个HAML像上面,我在西纳特拉应用程序中使用它。当我运行我的应用程序时HAML运行内嵌的Ruby,但不会呈现任何

haml :problem_haml 

每一个ruby命令都能正常工作,但haml不会渲染任何东西。甚至没有一条线,但每个红宝石命令都以“ - ”开头绝对完美?可能是什么原因? 请不要回答“因为隐藏的类隐藏了一切”,它不是关于css隐藏,从字面上看,即使从服务器返回一个字节也没有。

编辑:

我说的应用是一个应用西纳特拉之前,但它实际上是一个Padrino应用。尽管padrino只是一些在sinatra主应用程序中运行的sinatra应用程序,而更多的人知道sinatra,但我说sinatra会使问题变得更简单。

而且,这里是调用HAML代码,

def get3DSecure(ccname,price,skul,ccno,cvc) 
    puts "#############################################" 
    puts "get3DSecure function called" 
    puts "#############################################" 
    @ccname = ccname 
    @price = price.to_s + "00" 
    @skul = skul 
    @ccno = ccno 
    @cvc = cvc 
    session[:name] = ccname 
    session[:xmltosend] = makeXmlFor3D 
    session[:sipbil] = UUIDTools::UUID.random_create.to_s.delete!("-") 
    session[:sesbil] = UUIDTools::UUID.random_create.to_s.delete!("-") 
    session[:skul] = skul 
    session[:price] = price 
    session[:ccno] = ccno 
    session[:cvc] = cvc 
    puts "#############################################" 
    puts "get3DSecure function near end, render starts" 
    puts "#############################################" 
    render :adsecure,:layout=>:main 
    end 

它也写入命令放没有任何问题的安慰。

+0

Haml将在这里生成的HTML将不会显示在浏览器中。你说“甚至没有一个字节从服务器返回” - 你确定吗?如果是这种情况,那么这可能不是一个Haml问题。如果你在浏览器中查看源代码,你能看到HTML吗?请注意,使用'puts'将写入标准输出(可能是终端),而不是HTML页面。 – matt

+0

是的,我确定,没有任何回报,只是一个空白页面(来源)。 – gkaykck

回答

1

我发现render或haml方法不会返回。所以,如果你在你的功能中,你应该做

return haml :problem_haml 

它解决了这个问题。

-1

您可以使用chrome开发人员工具,萤火虫或其他类似方式(检查POST)来检查您的表单是否已提交,如果是,那么您需要处理回复,只需一个猜测:)

+0

我在编辑之前回答了这个问题:) – kfl62

2

您的代码工作对我来说,虽然第一我:

WARN: tilt autoloading 'haml' in a non thread-safe way; explicit require 'haml' suggested. 

因为我忘了补充:

require "haml" 

在我的代码的开始。这可能是你的问题吗?当您使用puts内HAML /超薄/ ERB模板