トップページphp
1001コメント324KB

【Agile】Ruby on rails相談所【DRY】

■ このスレッドは過去ログ倉庫に格納されています
00012005/06/13(月) 20:51:40ID:hOTuU4T5
Ruby on rails に関する相談所です。
まだまだ、日本語の情報が少ないですが、
みんなで、意見を出し合いましょう!!

<英語>
本家: http://www.rubyonrails.org
API: http://api.rubyonrails.com/
Documents&Tutorials: http://documentation.rubyonrails.com/

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/

ActiveRecordの記事(データベースの操作):
http://jp.rubyist.net/magazine/?0004-RLR
http://jp.rubyist.net/magazine/?0006-RubyOnRails
0002& ◆tgU8/95sxQ 2005/06/13(月) 20:54:27ID:hOTuU4T5
【注意】Rubyで書くCGIに関しては、CGIのスレも存在します。
Railsを用いない場合は、そちらで質問しましょう。
0003nobodyさん2005/06/13(月) 20:56:27ID:KTji43OB
報酬高し!! Webmasterさん広告ならこれで決まり
http://www.geocities.jp/bar_bar_deai/
http://www.geocities.jp/bar_bar_deai/index2.html
0004nobodyさん2005/06/14(火) 00:20:46ID:???
Rolling with Ruby on Rails
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html
Ajax on Rails
http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html

Ajax on Rails を見ながら live search なアプリを作ってみたんだけど、
IE でランタイムエラー(prototype.js 250行目)が出るんだよね(Firefox でのみ動く)。
うーむ。
0005nobodyさん2005/06/14(火) 00:57:26ID:XpjFpBrk
Railsの動作って、どうなってるかって、追いたいのですが、
どのファイルから追えばいいんでしょうか??

http:://webserver/example/actionにアクセスがあった場合、
ExampleController < ActionController::Baseオブジェクトが作られて、
そのactionメソッドを実行して。。っていう挙動ですよね。(多分)
それで、そのあと、includeとかしながら、TemplateからErbオブジェクトを作って
表示するとかしてるんですよね。(多分)

こういう動作を追いたいのですが、どうすればいいでしょう?最初の段階(ファイル)だけでも教えてください。
000652005/06/14(火) 01:18:58ID:???
途中で、***ClassMethodsとかのメソッドが使えるようになったりしますよね。
しかも、知らない間にインスタンス変数に入ってしまってたり。

うーん、なんか難しい。だれかHelp!
0007nobodyさん2005/06/14(火) 11:02:16ID:???
>>5
dispache.cgiから追うのが楽なんじゃ。

>http://webserver/example/action
これはActionController::Routingによって
呼び出されるコントローラ、アクションが決まる。
0008nobodyさん2005/06/14(火) 20:54:06ID:1gP+vaAG
>>5
script/server を debug モードで動かす。

ruby -rdebug script/server

デバッガの動かし方は適当に文章を読んでくれ。
000952005/06/14(火) 23:39:33ID:???
>>7,8
どうもありがとうございます。
もっとすっきりしたものかと思っていたら、かなり複雑な構造ですね => Rails
なんか、全体像がはっきりしない。
しかも、デバッガ使うの初めてなので、そこから勉強です。 (。・x・)ゝ
0010nobodyさん2005/06/16(木) 06:02:41ID:VasKh/4r
RailsってView部分が、かなりいけてないね。
0011nobodyさん2005/06/16(木) 22:53:07ID:???
>>10
具体的に
0012nobodyさん2005/06/17(金) 22:27:23ID:???
>>11
eRubyつかってるからだろ。どうしてもHTMLが崩れてしまう。
まあ今はAmritaが使えるわけだが。
0013nobodyさん2005/06/19(日) 11:00:13ID:Ww2NH+8i
sikitemplateも使えるみたいよ
0014nobodyさん2005/06/19(日) 12:55:54ID:79QeBHwi
あとは、Kwartzも正式にサポートしてるな。安定版かつ正式サポート
なのは、今のところこれだけのはず。
0015nobodyさん2005/06/21(火) 02:20:21ID:???
>>13,14
作者タンおつ
0016nobodyさん2005/07/09(土) 23:19:14ID:???
いつかこのスレが活況を呈するように...
ageながら保守
0017nobodyさん2005/07/11(月) 10:10:32ID:???
日本語のRails関連Wikiって、いつのまにかいろいろあるのね。

>>1にものっている
Rails' wiki: http://wiki.fdiary.net/rails/

Railsについて淡々と記録するよ http://wiki.rails2u.com/
Ruby on Rails - Japan http://docs.jpror.info/
0018nobodyさん2005/07/11(月) 10:19:43ID:???
IBM developerWorks
Ruby on RailsによるWebアプリケーションの高速開発
http://www-6.ibm.com/jp/developerworks/linux/050708/j_l-rubyrails.html
0019nobodyさん2005/07/11(月) 10:36:16ID:???
http://map.rails2u.com/

最新バージョンのRailsのAjax機能使ってるらしい。
こういうのが簡単にできるなら、
本格的にRails使ってみようかな…。
0020nobodyさん2005/07/11(月) 11:53:53ID:???
>>19
これのソースってどこかにある?
0021nobodyさん2005/07/12(火) 01:23:53ID:???
>>19
入力補完はこれでしょ。
http://script.aculo.us/demos/ajax/autocompleter_customized
0022nobodyさん2005/07/20(水) 18:54:12ID:???
railsをインストールして、cookbookのチュートリアルを実行して
なるほどー、というところまでは出来たのですが、
次は何を読めばよいの?
マニュアルはリファレンス的なものばかりで、量も多すぎて
どこから手をつけてよいかわからんのです。
0023nobodyさん2005/07/21(木) 21:41:03ID:???
>>22
何を作りたいの?
0024nobodyさん2005/07/22(金) 16:46:57ID:???
それが、具体的に何とは決まってないのです。
まずはそれを決めるのが先決か。。。
0025nobodyさん2005/07/22(金) 17:24:48ID:???
大方、上司に、
「最近 Rails というのが流行っているらしいな。ちょっと調べてくれたまえ」
とかなんとか言われたんだろうな。
まあ頑張れや。
0026nobodyさん2005/07/22(金) 18:43:00ID:???
Railsに限らず、ひととおり規則を覚えたら次は他人のソースを読むものだよ。
ていうか、ほかにやることある?
0027nobodyさん2005/07/22(金) 18:50:07ID:???
Railsに限らず、ひととおり規則を覚えたら次は自分でコードを書くものだよ。
ていうか、ほかにやることある?
0028nobodyさん2005/07/23(土) 00:44:54ID:???
Railsに限らず、ひととおり規則を覚えたら次はオナニーするものだよ。
ていうか、ほかにやることある?
0029nobodyさん2005/07/23(土) 01:09:34ID:???
オナニーくらいしかすることないです。。
0030nobodyさん2005/07/23(土) 02:06:01ID:???
>>29
エロゲやってるけどオナる元気ない俺はどうしたらいいですか。
0031nobodyさん2005/07/25(月) 10:12:25ID:???
>>26
適度な規模で手本となりそうなソースがあったら是非紹介してください。
Railsアプリでソースが公開されているのって、あまり見たことないような。
0032nobodyさん2005/07/26(火) 17:22:24ID:mY+A3RuF
ActionControllerのBaseクラスのソースにある、
include Classinheritableattributes
のClassinheritableattributesモジュールは、どこにあるのでしょうか??
見つからないのですが。。

http://64.233.167.104/search?q=cache:B1zdQ8Q6zgQJ:dev.rubyonrails.com/browser/trunk/actionpack/lib/action_controller/base.rb%3Frev%3D1779+site:http://dev.rubyonrails.com/browser/trunk/++classinheritableattributes&hl=ja
0033nobodyさん2005/07/26(火) 20:14:14ID:???
>32
$ cd /usr/lib/ruby/gems/1.8/gems
$ find . -name \*.rb -type f | xargs grep -li Classinheritableattributes

./activerecord-1.11.1/lib/active_record/base.rb

./activerecord-1.11.1/lib/active_record/fixtures.rb

./activerecord-1.11.1/test/class_inheritable_attributes_test.rb

./actionpack-1.9.1/lib/action_controller/base.rb

./activesupport-1.1.1/lib/active_support/class_inheritable_attributes.rb

一番下のじゃないかと。
0034nobodyさん2005/07/29(金) 18:44:44ID:???
データベースは sqlite3 を使っていて、scaffold を試しています。
で、手動でテーブル作っていくつかデータを突っ込んで、scaffold の
list や show は動くことが確認できたのですが、new や edit ができません。
newやeditは本来ならフィールドの型に応じた入力欄が出てくるはずだと思う
のですが何も出てきません。何が悪いんでしょうか?
0035nobodyさん2005/07/31(日) 18:53:38ID:???
>>34
このへん↓の問題じゃなかろーか。

http://wiki.rubyonrails.com/rails/show/HowtoUseSQLite
> NOTE: UNIX and Mac systems must have swig installed before
> installing the sqlite-ruby or sqlite3-ruby gem. Otherwise the
> gem will not use the actual sqlite library, instead defaulting to
> a pure ruby sqlite library that doesn’t work properly.

エラーメッセージを見たほうがよいのは言うまでもない。
0036nobodyさん2005/07/31(日) 23:14:53ID:???
>>35
ありがとうございます。sqlite-rubyはFreeBSD ports で入れたので pure ruby
版ではなく swig 版のはずです。
しょうがないので今はMySQLを入れてそちらを使っています。もちろん正常動作
しています。sqliteで正常に動いている人はいますか?
0037nobodyさん2005/08/02(火) 16:42:04ID:???
>>36
portsからruby-sqlite3いれて使ってますが、
うちではとくに問題ないですよ。
なにが違うんでしょうね。
エラーメッセージなどに何かヒントが出てませんかね。
0038nobodyさん2005/08/02(火) 17:00:11ID:???
試しに schema 晒してみるとか
0039nobodyさん2005/08/03(水) 10:20:11ID:???
schemaは、Agile Web Development with Rails という本の例題ほぼそのまま
です。例題はMySQL前提なので、sqlite用に少しだけ手直ししてますが。

create table products (
id integer primary key,
title varchar(100) not null,
description text not null,
image_url varchar(200) not null,
price decimal(10,2) not null
);

sqliteでは型がないというのと何か関係しているのかなあ。
0040nobodyさん2005/08/05(金) 01:35:48ID:???
DHH、Hacker Awards受賞オメ
0041nobodyさん2005/08/07(日) 21:51:40ID:???
おまえら Rails のいいところを挙げてくれ。

ToDo のチュートリアルと Rolling with Ruby on Rails は
読んだけど、良さが分からん。
0042nobodyさん2005/08/08(月) 01:10:19ID:???
ruby と rails と適当な DBMS があれば、
とりあえずウェブアプリを作って試せる。
開発環境の構築って面倒なので、
それが簡単ってのは大きいと思うな。
0043nobodyさん2005/08/08(月) 09:59:45ID:???
>>41
ぜひ Agile Web Development with Rails を読め。英語だけど、あの本を読めば
良さがわかる。Rolling with Ruby on Rails だけじゃ駄目だ。

日本語でまとまった(あるいは良質な)ドキュメントがないのが、日本でいまいち
盛り上がらない理由じゃないか?
0044nobodyさん2005/08/08(月) 16:26:54ID:???
盛り上がらないのは、Ruby なんかつかうやつはバカですというだけでは?
0045nobodyさん2005/08/08(月) 22:48:47ID:???
バカでもつかえるほど簡単なら反対にメチャメチャ盛り上がると思うけど?問題は別では?
0046nobodyさん2005/08/09(火) 12:05:25ID:???
>>41
やっぱり生産性の高さや開発効率のよさじゃないかなあ。
設定なんてほとんどいらないし、helperが充実していてお手軽に
作れるし、テスト機能も充実。
0047nobodyさん2005/08/09(火) 12:22:40ID:???
scaffold の次に何をしたらいいか途方に暮れているバカな俺がやってきましたよ。
0048412005/08/10(水) 00:36:53ID:???
Rails に魅力を感じないのは
自宅で Rails を動かせても
外に公開できない(というか自宅サーバーは公開したくない)点。
ホスティングサービスが開始されたみたいだけど、
お金払ってまで公開したくないし・・・。

# Rails は module_eval 使いまくり + 行数多すぎ なので、
# 毎回初期化が必要な CGI ではパフォーマンスが悪すぎて使えないし・・・。

>>42
正直言って、趣味でやるのに DBMS を使うのが面倒。
DBMS 無しでも Rails を 使えるらしいけど。

>>43
無料で読める分は読んだ。
(けど、ONLamp以上の内容は無かったような・・・)
Agile ... のほかの章にはそれ以上の内容がある?

>>46
使ったこと無いけど、テスト機能はどの辺が便利?
0049nobodyさん2005/08/10(水) 01:22:37ID:???
> # 毎回初期化が必要な CGI ではパフォーマンスが悪すぎて使えないし・・・。

mod_ruby とかでは動かないの?
0050nobodyさん2005/08/10(水) 04:01:32ID:???
>>49
>>48 の文意が読めてない悪寒。
0051nobodyさん2005/08/10(水) 09:37:06ID:???
日本のレンタル鯖屋で、mod_ruby や fastcgi が使えるところって、
どこかありますかね?
0052nobodyさん2005/08/10(水) 11:10:43ID:???
>>51
Googleで「レンタルサーバ fastcgi」で検索したら
http://www.vps7.net/support.html とかあった。
0053nobodyさん2005/08/15(月) 19:34:35ID:???
String の文字コードを UTF-8 にそろえる Multilingual Rails はどうよ。

ttp://dev.rakusui.jp/diary/?date=20050811#p02
ttp://www.tuxsoft.se/oss/rails/multilingual
0054nobodyさん2005/08/15(月) 21:07:45ID:???
>>53
ja_JP.euc-jp と ja_JP.Shift_JIS と jp_JP.UTF-8 が使い分けられないような。
0055nobodyさん2005/08/18(木) 08:51:36ID:T1YA/xPz
rails コマンドで掘ると出来る vendor って名前のディレクトリは
なにに使うのでしょか。

ここに activerecord とかを放りこむとアプリケーションごとに
違ったバージョンのライブラリが使えるとか?
0056nobodyさん2005/08/19(金) 00:27:18ID:???
>>55
production 環境を配布するときに、ライブラリを配置するところ。
activerecord やら actionpack やら。
0057nobodyさん2005/08/20(土) 00:59:14ID:/WX6pIlt
たとえば、Amrita2使いたいと思ったときは、
Amrita2のライブラリは、
どのディレクトリに入れればいいんでしょうか??
0058nobodyさん2005/08/23(火) 09:13:51ID:???
>>57
vendor で良いでしょ。

Rails本には、lib には自分で作ったライブラリを入れて、vendorにはthird-party
コードを入れると書いてあるけど、webでそういうことが書いてあるところってある?
0059nobodyさん2005/08/23(火) 13:55:18ID:???
>>58
web では知らないけど README に書いてあるような。
0060nobodyさん2005/08/31(水) 11:58:11ID:???
例えばさ、「入力内容の確認画面」とか作ったらさ、
その画面では save とか update せずに、その次の画面でするわけだろ?

でもさ、validation は save とか update の時しか自動的には効かないからさ、
「入力画面の確認画面」の時には validation が効かないわけ。
入力内容がエラーでも、確認画面が表示されちゃう。

こういう場合、自分で ActiveRecord::Base#valid? を呼べば良いだけ?
他になんか方法あるの?


つまりさ、save, update を伴わない validation 方法を知りたい訳なんだけどさ。
0061nobodyさん2005/08/31(水) 13:45:09ID:???
アマゾソでRails本を昨日注文したら、今日の段階で発送されたよ。

発送可能時期:通常9〜11日以内に発送します。

じゃなかったのかと、(ry
0062nobodyさん2005/08/31(水) 13:59:46ID:???
>>60

普通に作ってりゃ確認部分のアクションに
def confirm_update
@article = Article.new(params[:article])
render :action => 'edit' unless @article.valid?
end
とか一行入れるだけじゃん?
0063nobodyさん2005/08/31(水) 14:18:17ID:???
>>62
了解。あんがと。
0064nobodyさん2005/08/31(水) 23:11:25ID:???
>>61
和訳マダー?
0065612005/09/01(木) 14:27:03ID:???
>64
漏れも和訳版が欲しかったけど、ついカッとなって買ってしまった。
Debianのムトゥ神の話だと、Ruby関連の本が出しにくいって言っていたので
あきらめて原文でいいやと(ry
0066nobodyさん2005/09/01(木) 17:56:45ID:5OESrt58
超素人質問ですみません。

質問1
これはデータベースを使ったCGIを作るための支援システムと考えていいのでしょうか?

質問2
自サーバで公開する人用のシステムでしょうか?
要するにレンタルサーバで公開する場合は使えないのでしょうか?
0067nobodyさん2005/09/01(木) 18:01:47ID:???
>>66

> 質問1
> これはデータベースを使ったCGIを作るための支援システムと考えていいのでしょうか?

Yes. けれども、データベースは必須ではないはず。


> 質問2
> 自サーバで公開する人用のシステムでしょうか?
> 要するにレンタルサーバで公開する場合は使えないのでしょうか?

レンタルサーバーによる。

所定のライブラリが置けて(Rubyも実行できて)、
(必要なら)データベースを利用できて(rubyバインディングも含む)、
Apache などで mod_rewrite 相当のことが可能なら、使える。
0068nobodyさん2005/09/01(木) 18:22:07ID:???
>>67
丁寧な回答ありがとうございます。
後半、ちょっと用語が難しくて半分ぐらいしか理解できていないです。

ずばりYes/Noだけでいいのでご回答お願いします。
xreaでは使えますか?
0069nobodyさん2005/09/01(木) 18:35:45ID:???
>>68
>xreaでは使えますか?

Yes

一応補足するとCGIとしては使えるので使えるか使えないかで言ったらYesだな。
それが使い物になるかは別問題。
DBもMySQLが使えるのでフル機能のRailsが動くはずだが
mod_rubyやFastCGIといった高速化のための手段が使えないので重すぎる可能性あり。
0070nobodyさん2005/09/01(木) 18:52:13ID:???
>>69
回答ありがとうございます。
挑戦してみます。
0071nobodyさん2005/09/01(木) 20:56:53ID:???
横からだが mod_rewrite 必要なのか……ダメだ orz
mod_ruby 等があった方が望ましいくらいに重いのか……ダメだ orz

まぁ、サーバに要望を出してみれば良いのかもしれないけど。
0072nobodyさん2005/09/02(金) 04:10:33ID:???
>>71
同じく横からだけど補足すると、mod_ruby とかがあった方がいい理由は、
Railsの処理が重いという意味でなく、Railsの設計的にリダイレクトを
多用しているのでCGIの起動コストが顕著になるからだと思うの。

公式ページのフロー見たらわかるけど、例えば、データを修正するときに
修正ページ(CGI)で修正したあとに表示ページ(CGI)へ飛んだりとか。

もし、重そうという漠然としたイメージで敬遠されたらもったいないなと
思ったので、機会があったら実際に一度使ってみて下さいな。
0073nobodyさん2005/09/02(金) 18:42:20ID:???
>>72
さらに横から

>同じく横からだけど補足すると、mod_ruby とかがあった方がいい理由は、
>Railsの処理が重いという意味でなく、Railsの設計的にリダイレクトを
>多用しているのでCGIの起動コストが顕著になるからだと思うの。
リダイレクトうんぬん以前に Rails は 1回 の CGI の起動コストが非常に重い。
大規模な Ruby のプログラムならほとんどすべて
この宿命を負うはず・・・。
(Rails 場合は eval



# CGIは毎回プロセスを起動しないといけないので、
# RailsでCGIをやろうとするとどうしてもこの欠点が目立ってしまう。

YARV が出て、毎回パースする必要が無くなれば
(かつ require の度? にGC が動かなくなれば)
もう少し早くなるんだろうけど、現状のRailsがCGIで重いのは事実。

> 重そうという漠然としたイメージで敬遠されたらもったいないな
FastCGI や mod_ruby なら実用に耐えるというのは正しいと思うけど、
その環境を無料で自宅サーバー以外で享受できる?
0074nobodyさん2005/09/02(金) 23:08:56ID:???
>>73
> 大規模な Ruby のプログラムならほとんどすべて
> この宿命を負うはず・・・。

HikiやtDiaryや影舞をCGIで動かしてるけど、全然重くない。
この三つは大規模じゃないってこと?
0075nobodyさん2005/09/02(金) 23:18:12ID:???
Railみたいなのに較べるとそこらはずいぶんストレートで軽量な気がする。
reflectionがらみが結構思いんじゃないかなぁ。
respond_to?とか動的な仕組みをフルに使うあたり。
0076nobodyさん2005/09/02(金) 23:18:18ID:???
>>74
tDiary は結構重くない?

海外だと rails 使えるぜというのを売りにしているところがあるけど、
http://vinterstille.dk/ruby-on-rails-hosting-list
日本じゃ聞いたことないね。
まあ、自宅サーバ以外で無料で使うのは諦めた方が良いかと。
0077nobodyさん2005/09/03(土) 01:53:50ID:???
>>74
Rails のソースの行数と Hiki, tDiary にソースの行数を比較してみて。
Rails 全体(ActionPack, ActiveRecord 等を含む)
のソースの行数は 一万数千行 〜 二万 くらいだったと思う。
Hiki, tDiary とはかなり違う(影舞は知らない。ごめん)

単純に行数だけが問題じゃないけど、
CGIのプロセス起動時にこれだけのソースを毎回 Ruby がパースするとなると、当然重くなる。
(Rails は起動時に eval 系を結構使うので、さらに重い)

ちょっと古い話だけど、

http://jamis.jamisbuck.org/articles/2005/01/21/making-cgi-rails-faster

Rails, being (by default) a gem-dependent application, incurs that overhead
every time you load the app “clean” (ie, not under FCGI or such).
For example, my in-progress financial package manager (Budget-Wise) took
about 2.4 seconds just to load the login screen!

とある。テスト環境がわからないけど、
この人の場合はRailsアプリケーションをCGIとして使うと、
画面を出すのに一回につき 2.4 秒かかった。
今は短縮されて 一回の起動に1秒少しになっているみたい。
Rails 0.13.1 でどこまで起動が短縮されたのか分からないけど、
構造上のおおきな改善は望めないと思う。
(あくまで CGIでの話。FastCGI や mod_ruby は別)

>>75
tDiary が重い理由の一つは eval 系の使用と多段 eRuby 評価だと思う。
最高で3回くらい eRuby で展開している。
プラグインの構造上、どうしても eRuby 評価はせざるを得ないんだが・・・。
0078nobodyさん2005/09/03(土) 05:30:55ID:???
>>72-
なるほど、2ch と似た問題ということですか。
なんとなく、イメージは沸いてきました。

俺のとこもレンタルしてるサーバでは、無理ですねぇ。
tDiary のおかげで、それなりにサーバに普及したと思うけど、
mod_ruby の対応まで望むのは、かなり厳しい気がする……
ちなみに wema は、結構重いと思うです。
0079nobodyさん2005/09/05(月) 08:43:16ID:???
なんか知ったかぶってるバカがいるなあ。
YARVが出たところでCGIとしての起動コストは下がるどころかかえって上がる可能性
もあるし、Railsが起動に時間がかかるのはevalのせいでもあるまい。

respond_to?のせいで遅いのだとしたら、fastcgi使っても遅いだろバーカ。
0080nobodyさん2005/09/05(月) 09:20:38ID:???
なんか知ったかぶってるバカがいるなあ。
0081nobodyさん2005/09/05(月) 16:24:47ID:???
categories テーブルに別のテーブルの名前 fluits, vegetables, meats が文
字列として入っている時、対応する Ruby のクラスオブジェクト(Fluit,
Vegetable, Meat) を作りたいんですけど、どうやったらいいですか?

Item テーブルに category_id があり、 categories テーブルからレコードを
検索するテーブル名が分かる。

fluits, meats などがそれぞれ item_id を持っているので Item の id と比
較してレコードを探す。

という事をやりたいんですが。
0082nobodyさん2005/09/05(月) 20:24:02ID:???
>>81
最初だけ読んだ。テーブル名(文字列)→ARクラスへの変換の質問だと判断。
klass = Inflector.constantize(Inflector.classify(item.category.tablename))
klass.find(item.id)
あと、フルーツの名前がまずそうなので変名した方がいい。
0083nobodyさん2005/09/05(月) 20:55:27ID:???
>YARVが出たところでCGIとしての起動コストは下がるどころかかえって
>上がる可能性もあるし、
これはそのとおり。
だけど、Pythonみたいに一回読んだソースをバイトコードに落としてくれれば
速くなる可能性はある。(どっちにしたって可能性のみ)

> Railsが起動に時間がかかるのはevalのせいでもあるまい。
ActiveSupport の

Class#cattr_*
Class#class_inheritable_*
Module#mattr_*

は class_eval を使っていて、これを呼び出すコードは Rails の色んな所にある。
これ以外にも色々と eval 系を使っている。
で、eval 系が遅いのは GC のせい。
下のベンチマークをみたら大体分かると思う。

$ ruby -e 'require "benchmark"; include Benchmark; h = []; 100000.times{h << ""}; print measure{ 100000.times{1}}'
0.050000 0.000000 0.050000 ( 0.045000)
$ ruby -e 'require "benchmark"; include Benchmark; h = []; 100000.times{h << ""}; print measure{ 100000.times{eval("1")}}'
1.822000 0.000000 1.822000 ( 1.845000)
$ ruby -e 'require "benchmark"; include Benchmark; print measure{ 100000.times{eval("1")}}'
0.961000 0.010000 0.971000 ( 0.976000)

Rubyの構文木ノードも GC の対象のはずだから、
読み込むソースが大きくなればなるほど一回の GC の負担もあがって
eval を使うコストはさらに大きくなる・・・はず。
0084nobodyさん2005/09/05(月) 23:16:40ID:???
もうさ、Rails を使うと決めた時点で、

 自分は実行の速さよりも、実装の速さを選んだんだす!

と自分に言い切るしか無いんさ。
0085nobodyさん2005/09/06(火) 08:12:17ID:???
いや、普通のCGIではかなり遅いけど、FastCGIを使う場合は
十分な速度で実行できるでしょ。

問題は、レンタルサーバなんかだとFastCGI対応のところは(日本には)
まずないってことで。

自前でサーバ立てる人には速度問題はほとんど関係ないはず。
0086nobodyさん2005/09/06(火) 23:36:25ID:bAY9rtcR
railsの勉強してて、XULがらみでcookbooxul_v2というのを
動かしてみようとしたのですが、
ruby_odeumというのが必要そうというとこまできて、
gem install ruby_odeum --remote
すると、nmakeがないとおこられました。
Windowsで1.8.2を使ってますが、どうすればいいのでしょう?
0087nobodyさん2005/09/07(水) 01:31:17ID:???
Railsってフレームワークの名前らしいけど、(←違ったら指摘求む。)
Ruby on Rails以外の(多言語を含めた)実装・仕様ってあるの?
0088nobodyさん2005/09/07(水) 01:48:11ID:???
>>87
>Ruby on Rails以外の(多言語を含めた)実装・仕様ってあるの?
Python・PHP・Perl・Javaなんかで実装されたRails という意味だよね?
誰も作って無いと思う。近いのはこの辺?

http://dev.catalyst.perl.org/
http://www.djangoproject.com/
https://trails.dev.java.net/

trails の Tapestry の扱いと Django のモデルの扱いに興味があるな。
Railsの本家のMLでフレームになってたけど、
俺がドキュメントを読む限りは完成度は Django > Rails だと思う。
0089nobodyさん2005/09/07(水) 03:43:25ID:???
Django は Rails より前から作られてた・使われてたらしいね。
http://www.everes.net/132/

多言語での Rails クローンがいくつか出はじめてるみたいだけど、
Rails に捕らわれず、その言語の良さを活かした設計にしてほしいと思う。
と PHP 使いが言ってみる。
特に ActiveRecord は真似しない方がいいような印象。
0090nobodyさん2005/09/07(水) 04:36:34ID:???
>>89
>Rails に捕らわれず、その言語の良さを活かした設計にしてほしいと思う。
激しく同意。

>特に ActiveRecord は真似しない方がいいような印象。
ActiveRecordも面白いけど、他のやり方もあるんじゃないかと思う。しかしそれがどんなやり方か思いつかん。
いい知恵があったらおしえてくれ!
0091nobodyさん2005/09/07(水) 07:58:03ID:???
>>89
>Rails に捕らわれず、その言語の良さを活かした設計にしてほしいと思う。
おなじく同意。

>特に ActiveRecord は真似しない方がいいような印象。
これ、具体的に教えて欲しい。
Rails は PoEAA の ActiveRecord を拡張しているけど、
その拡張部分が冗長という意味?
それとも meta programming 的な部分
(例えば validate_* なんか) を真似するとヤバイという感じ?

>>90
それこそ Django は面白い。Rails は最初に DB ありきだけど、
Django は モデルを Python で記述して、
それに合わせて DB が決定される。
で、DB へのインターフェース(Rails の CRUD 相当)が
モデルに基づいて自動生成される。
まだ試してないけど、これが面白そう。
Rails の scaffold よりもcleverに CRUD のインターフェースを記述できそうな感じ。
少し古いけど日本語なら↓を参照してみてくれ。

ttp://www.everes.net/cgi-bin/trac.cgi/wiki/DjangoTutorialTwo

generic views も面白そう。これは Rails の act_as_* 相当かな。
Django の方が色々そろっている感じ。
(Rails が Django に勝っているのは Ajax 対応と DB対応の多さかなあ?)
0092nobodyさん2005/09/07(水) 13:46:44ID:???
ttp://docs.codehaus.org/display/GROOVY/Grails
0093nobodyさん2005/09/08(木) 17:03:58ID:???
ついでにこれも

CakePHP
https://trac.cakephp.org/

Subway
http://subway.python-hosting.com/
0094nobodyさん2005/09/09(金) 12:06:20ID:???
RailsからDBのテーブル構造を変更するような操作って書ける?
SQLを直接たたくんじゃなくて。
つまり、アプリケーションのバージョンアップ時にテーブル構造が変化したら、
それをなんかのトリガーで自動的にさせたい。

あるいは、そういうのは、.sqlを用意しといて、
最初にこれ動かしてねってしとくもの?
sqliteだとSQLだけではテーブル構造の変更できないのよね。
0095nobodyさん2005/09/09(金) 12:31:51ID:???
Railsでできるかどうかは知らないけど、Railsですべきものではないだろうなぁ。
>あるいは、そういうのは、.sqlを用意しといて、
か、あらかじめもっとテーブル構造を汎化させておくか。
0096nobodyさん2005/09/09(金) 12:40:42ID:???
>>94
migration 使うと便利ですよ。
但し、現在は MySQL と PostgreSQL しかサポートしてないけど。
0097nobodyさん2005/09/09(金) 15:15:13ID:???
お、サンクス。なんかよさげ。
sqlite対応にならんかなぁ。
0098nobodyさん2005/09/09(金) 21:36:55ID:???
http://wiki.rubyonrails.com/rails/show/TutorialBasicRelational
このチュートリアルで、別テーブル(phones)の電話番号をリレーションして
/friends/show で表示してるけど、このphonesテーブルを
/friends/edit で編集し更新するやり方を誰か俺にチュートリアル
してくだちい。

0099nobodyさん2005/09/09(金) 23:35:00ID:???
person と phone は一対多なわけだけど、
どういう UI を求めてる?

/friends/show に
0100nobodyさん2005/09/09(金) 23:36:15ID:???
途中で書き込んでしまった orz

面倒がない方法は
/friends/show に person の持っている phone の一覧を表示させて、
/phones/edit へのリンクを貼る。
0101名無しさん@そうだ選挙に行こう2005/09/11(日) 00:47:53ID:???
>>99
personの登録(or編集)時にそいつのphoneを複数登録(or編集)したい
これを一画面でやりたい
Railsではムリ?
■ このスレッドは過去ログ倉庫に格納されています