開発やらlinuxについてやったこと、ひっかかったことのメモ
[1]
[2]
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
rubyでwebアプリケーションを作っているけど,難しい...
webアプリケーションてのはMVCという概念で作成されるべきらしい. 卒業研究でSeasar2使っていたのでそんなの全く意識していなかったので, ものすごくつっかかっています. rubyを使った場合, コントローラは.cgiで,モデルはデータベースで,ビューは.rhtmlなのだろうけど, 例えば,ユーザがボタンをクリックすると,データベースからデータを参照した結果を表示させるようなとき, コントローラはビューを呼ぶだけでいいのだろうか?? つまりビューの中にDBにアクセスして結果を表示するコードを埋め込んでしまっていいのだろうか. そうなるとビューが複雑になってしまうのだけれど... 分からない... PR
出来たー。
友達にリモートで手伝ってもらってようやく解決。 やっぱり、ちゃんとrubyの基本覚えてないからでした。。。 まず、 postgresが見つかりません的なエラー コマンドプロンプト>irbっていうコマンドで rubyコード打ち込んで即実行結果を返してくれる(ためしうち?)やつ使って require 'postgres'と打ったら false!と即効で返されました。。 ということでgem install postgres-pr ん~前にもインストールしたはずなのになぁ、気のせいか。 これでもエラーが出たので どうやらgemでインストールしたライブラリ使うときはいっしょに require 'rubygems'が必要らしい。 それをcgiに書き足して実行したら出来ました。 やれやれだぜ
rhtmlにrubyコードを埋め込み、実行できるようになったところで、
今度は、rhtmlファイルにデータベースと接続するrubyコードを埋め込み、実行させてみる。 dbtest.rhtmlのコードは以下 <html> <head> <title> データベーステスト </title> <body> <h1>rubyを使ったデータベースとの接続のテスト</h1> <% require 'postgres' conn = PGconn.connect(セキュリティ上省略) res = conn.exec("select * from test")%> <br/> <p> <%= res.result %> </p> </body> </html> しかし、結果は、erb.cgiがエラーを吐き出してダメでした。 エラー内容は Script Errorno such file to load -- postgres Backtrace(erb):9:in `require' (erb):9 C:/www/cgi-bin/erb.cgi:37と出ました。。。どういうこっちゃ。 なぜpostgresが読み込めないのだろう。コンソール上でのデータベース接続は成功するのに。 ためしにこのrhtmlをerbで変換してコンソール上に出力するプログラム作りました。 #!C:/Ruby/bin/ruby require 'erb ' erb = File.open("erbtest.rhtml") { |f| ERB.new(f.read) } puts erb.result(binding) 以下実行結果 C:\www>ruby db2.rb C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- erb (LoadError) from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from db2.rb:2 なぜだ。。。
rubyを始める準備がやっと整ったところで,
今度はエディタ探し. SciTEというのがrubyインストールしたとき一緒にインストールされたので使ってみる. 日本語入力のONデフォルトでは,日本語が入力できない.文字化けする.なので以下を修正 Options>Open Global Options File でプロパティファイルを開く。 # Internationalisation で始まるセクションを探す。 # Japanese input code page 932 and ShiftJIS character set 128とあるように code.page=0という記述をコメントアウトし, #code.page=932 と #character.set=128 の 2行を有効にする。 テキスト補完機能デフォルトではたぶんなんもしてくれてない.最低限,テキストの保管機能がほしいのでオプションで変更する.以下メモ Global Option Fileで以下のように設定。
erb.cgiはまだうまくいかないので,とりあえず,ERBを勉強することに.
erb.rb を作成.以下ソース #!C:\Ruby\bin\ruby require 'erb' hoge = ERB.new(open("読み込みたいファイル名").read).result open("書き出すファイル名","w") { |f| f.write(hoge) } これでルビーの埋め込みコードが書かれたファイルを ERBで変換して出力してくれました. あとは,これをどうやってWEBに応用するのか... CGIやら.htaccessやらそこら辺の知識が全くないので苦戦中. |
カレンダー
カテゴリー
フリーエリア
最新記事
(07/25)
(04/22)
(04/21)
(02/22)
(02/08)
(02/04)
(01/16)
(11/26)
(11/24)
(11/12)
最新TB
プロフィール
HN:
poti
性別:
非公開
ブログ内検索
最古記事
(11/16)
(11/16)
(11/17)
(11/17)
(11/17)
(11/18)
(11/18)
(11/19)
(11/21)
(11/21)
P R
|