忍者ブログ
開発やら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 Error

no 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で以下のように設定。

#autocompleteword.automatic=1を有効にする.


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やらそこら辺の知識が全くないので苦戦中.


忍者ブログ [PR]
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
[06/12 ziggy]
最新TB
プロフィール
HN:
poti
性別:
非公開
バーコード
ブログ内検索
P R
FX NEWS

-外国為替-