htmlのフォームから飛ばしたデータをrubyで処理する方法を紹介。
簡易的なサービスを想定しているので、
WEBrick+SQlite3を使用。
SQliteはdbiライブラリで扱っている。
【index.html】
# ヘッダー等は割愛
<form action="entry">
<input type="text" name="name">
<input type="submit" value=" 送信 ">
</form>
【server.rb】
#! /usr/local/bin/ruby -Ks
# -*- encoding: UTF-8 -*-
require 'rubygems'
require 'webrick'
require 'erb'
require 'dbi'
config = {
:port => 8099,
:DocumentRoot => '.'
}
server = WEBrick::HTTPServer.new( config )
server.mount_proc("/entry") { |req, res|
dbh = DBI.connect( 'DBI:SQlite3:test.db' )
dbh.do("insert into date
values('#{req.query['name']}');")
dbh.disconnect
template = ERB.new( File.read('entried.html') )
res.body << template.result( binding )
}
trap(:INT) do
server.shutdown
end
server.start
【entried.html】
登録完了
action名と同じ名前をmount_porcでしてあげると、それ以下の処理をしてくれる。
その際templateで返答するデータを決めているので、html形式で返す(erbなどでもOK)
trapはControl+cでサーバを停止させる仕組み。
ちなみに
WEBrick::HTMLServlet::FileHandler.add_handler("erb", WEBrick::HTTPServlet::ERBHandler)
とserver = WEBrick::HTTPServer.new( config )の下あたりにでも追記すると、拡張子erbを処理済みのファイルとして扱えるようになる。
セキュリティレベルは推して知るべし。
2011年3月23日水曜日
2011年3月13日日曜日
Ruby on railsでacts_as_taggableの導入にはまった話
通常通りacts_as_taggableを入れると
acts_as_taggable_on_steroids has been moved to github: http://github.com/jviney/acts_as_taggable_on_steroids
とエラー表示が出る。
なので、プロジェクトフォルダに移動して、
# ruby script/plugin install http://github.com/jviney/acts_as_taggable_on_steroids
もしすでにインストールされてるよ!と怒られたら、一度アンインストールするか、もしくは
# ruby script/plugin install http://github.com/jviney/acts_as_taggable_on_steroids --force
で、OK
acts_as_taggable_on_steroids has been moved to github: http://github.com/jviney/acts_as_taggable_on_steroids
とエラー表示が出る。
なので、プロジェクトフォルダに移動して、
# ruby script/plugin install http://github.com/jviney/acts_as_taggable_on_steroids
もしすでにインストールされてるよ!と怒られたら、一度アンインストールするか、もしくは
# ruby script/plugin install http://github.com/jviney/acts_as_taggable_on_steroids --force
で、OK
Ruby on railsでfile_columnの導入にはまった話
uninitialized constant FileColumn::ClassMethods::Inflector
という表示がされて動かない。
plugins/file_column/lib/file_column.rb
の
my_options = FileColumn::init_options(options,
Inflector.underscore(self.name).to_s,
attr.to_s)
を
my_options = FileColumn::init_options(options,
self.name.to_s.underscore,
attr.to_s)
に書き換えれば動くらしい。
参考:
http://d.hatena.ne.jp/aki-s-119/20081201/1228168584
という表示がされて動かない。
plugins/file_column/lib/file_column.rb
の
my_options = FileColumn::init_options(options,
Inflector.underscore(self.name).to_s,
attr.to_s)
を
my_options = FileColumn::init_options(options,
self.name.to_s.underscore,
attr.to_s)
に書き換えれば動くらしい。
参考:
http://d.hatena.ne.jp/aki-s-119/20081201/1228168584
Ruby on railsでrestful_authenticationの導入にはまった話
現時点で、techno-weenie.netからrestful_authenticationプラグインを入れることができない。
代わりにgemとして用意されている。
# gem install restful_authentication
それにともない、machinistと、fakerが必要になる。
# gem install machinest
# gem install faker
# gem install aasm
で、enviroment.rbに以下を追記
config.gem "restful_authentication", :version => ">= 1.1.6"
config.gem "aasm", :version => ">= 2.1.5"
config.gem "faker"
config.gem "machinist"
で、マイグレーションをして、完了。
代わりにgemとして用意されている。
# gem install restful_authentication
それにともない、machinistと、fakerが必要になる。
# gem install machinest
# gem install faker
# gem install aasm
で、enviroment.rbに以下を追記
config.gem "restful_authentication", :version => ">= 1.1.6"
config.gem "aasm", :version => ">= 2.1.5"
config.gem "faker"
config.gem "machinist"
で、マイグレーションをして、完了。
Ruby on railsでgettextの導入にはまった話。
Rails of ruby on railsを参考に導入したらはまった。
どうやらgettextのバージョンが変わって、呼び出すときに
gettext/railsでは呼び出せなくなっていて、
代わりにgettext_railsが独立したgemとして用意されるようになったみたい。
だから
# gem install gettext_rails
をする必要がある。
また設定も、enviroment.rbに
Rails::Initializer.run do |config|
……
config.gem "locale_rails"
config.gem "gettext_activerecord"
config.gem "gettext"
config.gem "gettext_rails"
……
end
の記述が必要となった。
さらにgettext_railsにはバグがあり、
i18.rb内のLocale.xxx(いろんな関数)のすべての部分を::Local.xxxに書き換え擦る必要がある。
どうやらgettextのバージョンが変わって、呼び出すときに
gettext/railsでは呼び出せなくなっていて、
代わりにgettext_railsが独立したgemとして用意されるようになったみたい。
だから
# gem install gettext_rails
をする必要がある。
また設定も、enviroment.rbに
Rails::Initializer.run do |config|
……
config.gem "locale_rails"
config.gem "gettext_activerecord"
config.gem "gettext"
config.gem "gettext_rails"
……
end
の記述が必要となった。
さらにgettext_railsにはバグがあり、
i18.rb内のLocale.xxx(いろんな関数)のすべての部分を::Local.xxxに書き換え擦る必要がある。
2011年3月6日日曜日
ruby on railsのユーザー認証「restful_authentication」導入まで
# gem install restful_authentication
# gem install machinst
# gem install faker
# gem install aasm
で、構成のenviroment.rbファイルのendのうえあたりに
config.gem "restful_authentication", :version => ">= 1.1.6"
config.gem "aasm", :version => ">= 2.1.5"
config.gem "faker"
config.gem "machinist"
を追加。
# gem install machinst
# gem install faker
# gem install aasm
で、構成のenviroment.rbファイルのendのうえあたりに
config.gem "restful_authentication", :version => ">= 1.1.6"
config.gem "aasm", :version => ">= 2.1.5"
config.gem "faker"
config.gem "machinist"
を追加。
2011年3月5日土曜日
登録:
投稿 (Atom)