-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があり、Sinatraアプリケーションで使用しています。アプリを実行すると

haml :problem_haml

すべてのrubyコマンドは完全に機能しますが、hamlは何もレンダリングしません。1行でもありませんが、すべてのrubyコマンドは「-」で始まり、完全に機能しますか?原因は何でしょうか?「隠されたクラスはすべてを隠すので」と答えないでください。それはcssを隠すことではなく、文字通りサーバーから1バイトも返されません。

編集:

以前、このアプリケーションはシナトラアプリケーションだと言いましたが、実際にはパドリーノアプリケーションです。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

また、putsコマンドを問題なくコンソールに書き込みます。

4

4 に答える 4

2

最初に私が得たものですが、あなたのコードは私のために働きます:

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

追加するのを忘れたので:

require "haml" 

私のコードの始めに。それはあなたの問題でしょうか?

于 2012-09-19T07:52:20.297 に答える
1

私は、renderまたはhamlメソッドが返されないことを知りました。ですから、あなたがあなたの職務の真っ只中にいるなら、あなたはすべきです

return haml :problem_haml

それは問題を修正します。

于 2012-11-07T18:32:05.970 に答える
-1

chrome開発者ツールやfirebugなどを使用してフォームが送信されたかどうかを確認できます(POSTを確認してください)。送信された場合は、投稿リクエストがあるため、応答を処理する必要があります。推測してください:)

于 2012-09-19T04:03:13.577 に答える
-1

putshaml / Slim / erbテンプレート内で使用している場合は注意が必要です。これは、hamlには独自のputsメソッドがあるためです。http: //haml.info/docs/yardoc/Haml/Exec/Generic.html#puts-instance_method

したがって、padrinoを使用しているので、すべてのプットを次のように置き換えます。logger.debug

于 2012-09-19T15:07:49.783 に答える