2

次の例の html フォームがあるとします。

<html> 
  <head> 
    <title>Sure wish I understood this. :)</title> 
  </head> 
  <body>
    <p>Enter your data:</p>
      <form method="POST" action="bar.rb" name="form_of_doom"> 
        <input type="text" name="data">
        <input type="submit" name="Submit" value="Submit"> 
      </form> 
  </body> 
</html>

サーバー上のテキスト ファイルに送信内容を書き込むと、「bar.rb」はどのようになりますか? 私はApacheを実行していますが、データベースとレールを避けようとしています.

4

1 に答える 1

1

Web リクエストの結果として Ruby ファイルを呼び出し、すべてのフォーム データをスクリプトに渡す何らかの方法が必要です。

RubyスクリプトをCGIとして扱うことで、Apacheでそれができるようです。引用:

DocumentRoot /home/ceriak/ruby

<Directory /home/ceriak/ruby>
    Options +ExecCGI
    AddHandler cgi-script .rb
</Directory>

この時点で、Ruby に同梱されているCGI ライブラリを使用してパラメーターを処理できます。

#!/usr/bin/ruby -w                                                                                                           

# Get the form data
require 'cgi'
cgi = CGI.new
form_text = cgi['text']

# Append to the file
path = "/var/tmp/some.txt"
File.open(path,"a"){ |file| file.puts(form_text) }

# Send the HTML response
puts cgi.header  # content type 'text/html'
puts "<html><head><title>Doom!</title></head><body>"
puts "<h1>File Written</h1>"
puts "<p>I wrote #{path.inspect} with the contents:</p>"
puts "<pre>#{form_text.inspect}</pre>"
puts "</body></html>"
于 2013-06-03T03:52:49.250 に答える