トップページ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
0567nobodyさん2006/03/04(土) 23:06:14ID:???
>>566
イテレータを使っていればRubyらしいということもあるまい。ERBのように <% %>
があると、<% @product.each{|product| %> ってすごく醜くないか?それにforのほうが
速いはず。ちなみにeachだと順序が保障されないなんてことはない。
0568nobodyさん2006/03/04(土) 23:16:04ID:???
<% @products.each do |product| %>と書けば醜くないと思うけど
http://www.notwork.org/~gotoken/mag/cmagazine/gokudo/8th/
ここ見たらforとeachで結構差があるみたいね
0569nobodyさん2006/03/05(日) 00:25:32ID:???
なるほど、速度差って問題がありましたか。
たしかにERbで each{とやると見にくいのはあるかも。

あとサンプルできになったのは、#{name}でもないのに
link_to の所が "ああ" か 'ああ'と統一感がない所。
埋め込み以外で、使い分ける利点ってありましたっけ?
0570nobodyさん2006/03/05(日) 06:53:23ID:5JBubhth
'' でくくってるときが早い(くらいしか思いつかない)
0571nobodyさん2006/03/05(日) 10:21:13ID:AqRzfnq0
>>564

>gem list --remote
*** REMOTE GEMS ***
Updating Gem source index for: http://gems.rubyforge.org

このまま反応なし、となります。netstat -an で見ると当該サーバ
へのコネクションはESTABLISHEDとなっています。
0572nobodyさん2006/03/05(日) 13:04:56ID:a//2UTbK
>>5
wwwwしょうがねぇなロリコンはwwwww
ググッてやったぞ。http://www.freepe.com/ii.cgi?school21
とりあえず日本じゃ一番安いのはここしかねーなwww
すげーサイトしょぼいけどwwww 幼女ハァハァ
まぁ買ったらwinnyにでも流してくれやノシ
0573nobodyさん2006/03/05(日) 13:24:41ID:???
解読たのむ
0574nobodyさん2006/03/05(日) 13:38:00ID:???
>>573
業者の宣伝
0575nobodyさん2006/03/05(日) 15:15:03ID:???
>>574
サンクス
#「Rails によるアジャイル Web アプリケーションの開発」買ってきたとこ。今から読む。
0576初心者2006/03/05(日) 15:20:07ID:9eCGisQf
初めて質問します。よろしくお願いします。
userエンジンを使ってbefore_fileter で認証することにしたのですが、
function testでログインができません。
(userエンジンは動いているのは確認しました。)
function テストは特定のコントローラー以外にはpost出来ないのでしょうか?
post :login, :controller=>"user", :usr => ....
とやってみても外部コントローラ(この場合はユーザエンジンのusrコントローラに
ポストできません。
外部コントローラにポストする方法とか、ログイン状態にする方法は
ないのでしょうか?


0577nobodyさん2006/03/05(日) 16:39:16ID:???
>>576
http://d.hatena.ne.jp/zorio/20060227/1141052640
0578nobodyさん2006/03/05(日) 18:03:33ID:???
Ruby on Railsの陳腐化の宿命(Java、C#)
http://d.hatena.ne.jp/fromdusktildawn/20060216/1140064918
0579nobodyさん2006/03/05(日) 18:38:24ID:???
>>578
他の言語でも可能なことくらい、みんな分かってるだろw
Ruby の使い易さが RoR のメリットとして生きていると言われてるのをスルーしてるし。
まぁ、これは個人的な嗜好によるだろうけど。
個人的には Java はアレであまり使いたくないし、C# は簡単だけど過去に遺産を結構無駄に引き摺ってるし。
しかも、プラットフォームが正常進化すればすぐに陳腐化するってw んなもん、何でもそーだろw
そんなこと言ったら、世の中の多くのものが無駄で無意味になる罠。

要するに、何でこんなこと威張って吼えてんだ? この人。
0580nobodyさん2006/03/05(日) 18:48:07ID:???
warata www

作者自身、
「最初は Perlで作っていた。けどrubyでやったら楽しくて切り替えた」
といってたの知らないんだろうね、この人。
0581nobodyさん2006/03/05(日) 21:22:11ID:???
DHHがrubyの前に使っていたのはPHPじゃなかったか?
0582nobodyさん2006/03/05(日) 21:30:22ID:???
もうなんでもいいから、使いたいやつだけ使え。使いたくないやつは使わんでいい。

世間で使われているのが良いのなら、そいつはそれを使え。



自分が使いやすいのを選ぶ。人が何選ぼうが気にしない。
それでええやろ。
0583初心者2006/03/05(日) 21:32:14ID:9eCGisQf
>>577さん、ありがとう。
0584nobodyさん2006/03/05(日) 21:52:00ID:???
本人が中二病って言ってるんだから、そんな解りきった反論じゃ意味がないよ。
もっと具体的に、ほかでもなく“Ruby“on Railsであるメリットを挙げなくちゃ。
0585nobodyさん2006/03/05(日) 22:04:19ID:???
で、それが分かったからってどうだっていうのかね?
0586nobodyさん2006/03/05(日) 22:37:27ID:???
>>580
> 作者自身、「最初は Perlで作っていた。けどrubyでやったら楽しくて切り替えた」といってた

どこで言ってたの?
0587nobodyさん2006/03/05(日) 22:37:48ID:???
メリットつうか、要は”コロンブスの卵”を”誰でもできる”と批判してることが陳腐だと言われているだけで…
0588nobodyさん2006/03/05(日) 22:58:10ID:???
>>586
ちょっと前の作者インタビューの記事ででてた。
ソースは忘れたが、
0589nobodyさん2006/03/05(日) 22:59:05ID:???
途中で送信してしまった。
ruby on rails インタビューで見つかると思う
0590nobodyさん2006/03/05(日) 23:03:13ID:???
>>581さんが正解。PHPですた
0591nobodyさん2006/03/05(日) 23:59:19ID:???
確かに偉そうだな。いわゆる「アーキテクチャ宇宙飛行士」つうのかね?

>Ruby on Railsにしても、同じ話で、それが、どんなに洗練された
>アーキテクチャであろうとも、そんなものは、そもそも必要ないかもしれんのですよ。

いつ手に入るんだよ。RoRを必要無くするものが。
0592nobodyさん2006/03/06(月) 00:12:05ID:???
> いつ手に入るんだよ。RoRを必要無くするものが。

来世紀
0593nobodyさん2006/03/06(月) 07:12:31ID:up36ke1Y
来世紀は大げさにしても、来年にはなんかでてるもんだろうな。
それこそ、MSがC#で開発環境込みで出してもおかしくないよな。
Accessっぽい画面でテーブルとリレーション作ると、フォームがずばっとできあがっちゃうようなの。
0594nobodyさん2006/03/06(月) 10:21:35ID:???
遅ればせながらSoftwareDesign 12月号のRails記事を読みました。
なんか間違いだらけ、特にRuby再入門のあたりが酷いのですが、
正誤表って出ていますか?

もっとまともなライターに書かせろよって気がしますが。
0595nobodyさん2006/03/06(月) 11:13:27ID:???
>>593
C#だとどうしてもそうなるけど、そーじゃなくて
言語ベースで実現しちゃったらやばいね
開発環境込みだと盛り上がらないだろーな
0596nobodyさん2006/03/06(月) 13:25:45ID:???
Capistranoってどういう意味?
読み方も良くわからんし。
0597nobodyさん2006/03/06(月) 15:43:04ID:etL1XtQr
>>524
画像表示されました。ありがとうございます。

それとは別に、今P.130まで進んで止まっています。
ttp://localhost:3000/login/add_user/
にアクセスしても、ユーザ登録画面が出ないで、
ttp://localhost:3000/login/login/
の画面が出て、
Please log in
Login#login
Find me in app/views/login/login.rhtml
と表示されてしまいます。
読み返してみましたが、手順に間違えはないと思います。
なんででしょうか。
0598nobodyさん2006/03/06(月) 16:57:23ID:???
> なんででしょうか。

小学校はここでつか?
0599nobodyさん2006/03/06(月) 18:02:27ID:???
>>571

> このまま反応なし、となります

なんでだろうね。手元で試してみると、10秒ぐらいでリストが表示されるけどな。
0600nobodyさん2006/03/06(月) 21:20:56ID:???
>>597
> Find me in app/view/login/login.rhtml

も読めないくせにRoRですか、そうですか。
app/view/login/login.rhtmlを読んでみての発言だよな?
0601nobodyさん2006/03/06(月) 23:15:21ID:???
>>597
まずRoRよりrubyとかフレームワークの概念とかの
勉強が先じゃまいか?
0602nobodyさん2006/03/06(月) 23:56:45ID:???
漏れは最近、RoRも勉強しつつRoRを使わずにものすごく小さいwebアプリを作ったりもしてる。
0603nobodyさん2006/03/06(月) 23:57:19ID:???
>>596
カピストラーノ
0604nobodyさん2006/03/07(火) 07:02:53ID:v7ePobZl
>>602
ActiveRecordだけ使うとかあるなあ。
っていうかActiveSupportはruby標準にとりこまれてもいいんじゃないかと
思うくらい便利
0605nobodyさん2006/03/07(火) 18:06:11ID:???
>っていうかActiveSupportはruby標準にとりこまれてもいいんじゃないかと

同意
0606nobodyさん2006/03/07(火) 18:09:24ID:???
そこで最初の関門は「名前」だろうな。
そして最後の関門は「名前」だろうな。
0607nobodyさん2006/03/07(火) 19:48:57ID:???
macでRoRやってるんだけど、
Eclipseのredrailsはフォントのアンチエイリアスが切れなくて萎えて、
Textmateは2バイト文字つかえねとかで萎えた。

やっぱWindowsの方が環境そろってたりする?
0608nobodyさん2006/03/07(火) 20:49:10ID:???
>606
>606
何で二回言うの!
何で二回言うの!
0609nobodyさん2006/03/07(火) 20:58:30ID:v7ePobZl
>>608
素で見間違えてんのかな・・・

>>607
Emacs使うってのはナシ?

WindowsでもつかってるけどOSXでつかってるときのがラクだなあ
radrailsのconsoleとかじゃなくて単にiTermなりなんなりを使えるからってのが大きい。
Windowsだとそのヘンがめんどいから・・・(弱)
0610nobodyさん2006/03/08(水) 09:01:40ID:???
>>607
そりゃエディタの問題であって、環境とはいわんだろ。
エディタはWindowsのほうが揃ってるのは同意(それ以外はMacのほうが上)。
MacならmiとかCotEditorとかJeditとか。
TextMateはC-hでヘルプが出てくるので萎えた。C-hをBSにする方法がわからんかった。

つかWindows+coLinux最強。今ならWindows+VMWare無償版かな?
0611nobodyさん2006/03/08(水) 12:52:44ID:LaE+eeWw
リクエストがきたときに作られるコントローラーって、一つなの??

なんで、こんなこと聞くかって言うと、
今、自前でユーザの認証(Login)部分を作ろうと思ってるんだけど、
1.Moduleとして作って、ユーザ認証行いたいコントローラーにincludeされるのがいいのか
2.コントローラーとして作って、ユーザ認証行いたいコントローラーから、うまくコントローラー間で通信(?)させる。
のがいいのかどっちでしょうか?

2番みたいなのが可能なのか自体、よくわからないんだけど誰か教えてください。
0612nobodyさん2006/03/08(水) 14:55:39ID:???
>>611
3. コントローラに実装して、ユーザ認証行いたいコントローラーに継承させる
っていう方法もあるね。 Rails本のチュートリアルは ApplicationController に実装してる。

どれがいいかは(あるいはどれでもいいか)、要求や方針によるかと。
0613nobodyさん2006/03/08(水) 15:40:29ID:ThVc3iGg
今Rails入門中なのだが認証だと以下が参考になりそうな。
ttp://funk.exblog.jp/m2005-03-01/

login_generatorちゅうのを使ってる記事。
キモは
> require_dependency "login_system"
> class ApplicationController < ActionController::Base
> include LoginSystem
> model :user
> end

> profiles_controller.rb に before_filer 句を挿入し、ログインシステムをアクティブにします(ここでは、index以外を要ログインにします):
> class ProfilesController < ApplicationController
> before_filter :login_required, :except => [:index]

あとttp://d.hatena.ne.jp/drawnboy/20050821/1124637530のへん。
0614nobodyさん2006/03/08(水) 16:26:58ID:???
いまどきlogin_generatorなんか使わんでしょ。
LoginEngineくらいがいいんじゃない?
0615nobodyさん2006/03/08(水) 16:37:09ID:ThVc3iGg
>>141
遅レスだけど、personの複数形はpeople。
さっきはまったので。というかFAQか。

irb(main):009:0> require 'ubygems'
irb(main):010:0> require 'active_support/inflector'
irb(main):011:0> Inflector.singularize("people")
=> "person"
irb(main):012:0> Inflector.pluralize("person")
=> "people"

普通に便利だなこれ。
でもまだいつ単数形が使われていつ複数形が使われるかわかんね。
0616nobodyさん2006/03/08(水) 18:12:20ID:???
>>615
ちなみにperpleの複数形はpeoplesな。
0617nobodyさん2006/03/08(水) 18:19:30ID:???
もしかして: purple
06185972006/03/09(木) 12:11:03ID:HNgeIL2K
本のとおりにならない原因がわかりました。
ダウンロードしたコード例の
depot18/app/models/user.rb
を無編集で該当フォルダにぶち込んだためでした。
本に合うように、余分なコードをコメントアウトしたらできました。
0619nobodyさん2006/03/09(木) 16:55:01ID:???
そんな中学生以上には明白なこと報告してくれなくてもいいんだが。。。
0620nobodyさん2006/03/09(木) 22:42:13ID:???
phpのsafe mode+apacheモジュールみたいに、共用鯖でも高速に実行できる環境って
Railsだとどうやったらいいですか?
0621nobodyさん2006/03/10(金) 05:39:56ID:???
>>620
共用サーバだと無理。
専有サーバならlighttpd + FastCGIという組み合わせがおすすめらしい。
つーか、共用サーバならPHPでもCGIじゃないっけ?モジュールでも問題ないんだろうか。
0622nobodyさん2006/03/10(金) 07:03:55ID:???
> 共用サーバだと無理。
> 専有サーバならlighttpd + FastCGIという組み合わせがおすすめらしい。

シェルが使えるなら、勝手に使えるポートで lighttpd + FastCGI でよいのでは?
0623nobodyさん2006/03/10(金) 10:42:07ID:LVJDzaFF
そこまでしたいならルータでポート80開けてポート転送してDynDNSとか使えばいいのではないか。
0624nobodyさん2006/03/10(金) 11:41:16ID:???
まあ要するに、快適に使いたいなら1人1サーバーということだ。
0625nobodyさん2006/03/10(金) 12:59:23ID:???
>>622
共用サーバで、ユーザが勝手にデーモンのような常駐プロセスを立ち上げっぱなしに
することを許しているところはないだろう。

でもcgiにしたら余計に鯖に負荷がかかるのにな。そろそろFastCGI使わせてくれる
共用鯖屋が出てきても良いのに。
0626nobodyさん2006/03/10(金) 13:31:39ID:???
>>625
textdrive.com はポート番号の割当申請さえすれば lighttpd も tracd も
動かせるよ。
0627nobodyさん2006/03/10(金) 13:47:24ID:???
>>625
負荷は CPU とメモリのバランスの問題になるのかな。
でもやはり常駐プロセスを許すのはリスクも運用コストも高いんじゃないかな。
メモリを定常的に占有することになるし、
常駐プロセスがメモリリークや暴走されたら目も当てられないし。
0628nobodyさん2006/03/10(金) 13:49:39ID:???
と思ったが、最近は Jail とかその手の仕組みを使って問題ないのかな。
06296282006/03/10(金) 13:51:02ID:???
s/使って問題ない/使ってるからそういう問題はない/
0630nobodyさん2006/03/10(金) 16:52:22ID:???
>>621
PHPでCGIなんてやってる共用鯖はウンチですよ。
0631nobodyさん2006/03/10(金) 17:22:01ID:3ZJmIVdu
ActiveHeartのソースはどこかに転がっていませんか?
http://svn.rails2u.com/public/plugins/trunk/active_heart/
からは消えちゃったようなんですが…。
0632nobodyさん2006/03/10(金) 17:29:22ID:???
>>626
日本国内の鯖がいいんですが。
06336312006/03/10(金) 17:37:36ID:3ZJmIVdu
すいません、ありました・・・
0634nobodyさん2006/03/10(金) 17:38:55ID:???
贅沢は素敵だ
0635nobodyさん2006/03/10(金) 20:12:46ID:???
PerlでCGIなんてやってる人間もウンチですよ。メモリに常駐してもらわんと。
0636nobodyさん2006/03/10(金) 23:15:53ID:???
>>635
メモリ常駐しかないPerlって時点でウンチですね。
0637nobodyさん2006/03/11(土) 00:03:48ID:8VcTdjXU
Perl自体(ry
0638nobodyさん2006/03/11(土) 01:39:05ID:???
>>614
Login Generatorを使うのは古いのか、、、
0639nobodyさん2006/03/11(土) 04:38:17ID:???
>>636
> メモリ常駐しかないPerlって時点でウンチですね。

だいにのじんせいたんのいるかいしゃがうんちであると。
0640nobodyさん2006/03/11(土) 10:51:41ID:???
ああ、そうだろ。
0641nobodyさん2006/03/11(土) 12:05:15ID:???
>>629
parse error, unexpected $
0642nobodyさん2006/03/12(日) 12:00:40ID:+EMYOyV8
belongs_toで関連付けられたテーブルを参照しようとすると

SELECT * FROM hoges WHERE hoges.id = 1 LIMIT 1
SELECT * FROM hoges WHERE hoges.id = 2 LIMIT 1
SELECT * FROM hoges WHERE hoges.id = 3 LIMIT 1
SELECT * FROM hoges WHERE hoges.id = 4 LIMIT 1
SELECT * FROM hoges WHERE hoges.id = 5 LIMIT 1

みたいにSQLが発行されるんですが、そんなもんなんですか?

SELECT * FROM hoges WHERE hoges.id in (1,2,3,4,5)

ってな具合にまとめてくれるとうれしいんだけど。
自分のやり方が間違ってんのかな
0643nobodyさん2006/03/12(日) 12:41:18ID:E/y3qIwX
便乗belongs_to質問です

外部キーなしのリレーションって設定できそうだけど、AWDWR本よんでもわかりませんでした。
Uriage { --売り上げ
id int,
corp_id1 varchar,
corp_id2 varchar,
amount int
}

CorpName { --会社名
corp_id1 varchar,
corp_id2 varchar,
name varchar
}
みたいなテーブルで corp_id1,2がそれぞれのキーになってるんですけど
CorpName.name入りの売り上げデータをつくるときは、find_by_sqlで
ゴリゴリやってます。まちがいではないにしろ、キレイじゃないので
いい書き方おしえてください
0644nobodyさん2006/03/12(日) 17:00:19ID:jfpRLnWZ
>>643
ttp://wota.jp/ac/?date=20060120
かなり下の方

そもそもテーブル構造がいけてない希ガス。
0645nobodyさん2006/03/12(日) 17:15:28ID:E/y3qIwX
>>644
最初の表で、「メンバー:スキモノ」と読んでニヤリとして、
自分が間違えてることに気付いて、一人で悶絶してしまいましたが
ありがとう。まさにハマってた内容と合致してます;_;)

構造がいけてないのは、そんなSIもあるんだとおもって笑って下さい。
既存のシステムをrailsで置き換えようとするのは、それなりに難しいってことでしょうか?
0646nobodyさん2006/03/12(日) 18:12:53ID:???
>>645
うん。
Railsは規約に則れば楽に開発できるけど、そうでなければおすすめしない。
レガシーマイグレーションとかぜったい無理。
0647nobodyさん2006/03/12(日) 21:27:55ID:???
まあhttpdから実行権移される仕組みが有る以上は、スマートな実装は無いね。
共用鯖前提のhttpdでも出て来ないと無理。
0648nobodyさん2006/03/12(日) 21:37:33ID:8xRhlycJ
アプリケーションの設定を外のファイルに出したいと思っています。
YAMLってのを使うべきなのかなと思って調べているのですが
どこかに参考になるページなど、ありませんでしょうか?
0649nobodyさん2006/03/12(日) 21:49:44ID:???
>>648
http://jp.rubyist.net/magazine/?0009-YAML
0650nobodyさん2006/03/13(月) 01:54:33ID:???
RoRっつーと、DBと組み合わせて初めて真価が分かるという感じなんだが、
id:secondlifeさんの
http://lab.rails2u.com/bgmaker/
はどういうあれでRoRを使ったんだろう。

わからない俺は逝ってよすいですかね?
0651nobodyさん2006/03/13(月) 02:37:46ID:???
だいにのじんせいたんのにっきのこめんとらんでしつもんしてみるといいよ!
0652nobodyさん2006/03/13(月) 05:38:04ID:???
>>642
そんなもの。
多分、間違ってる。

find の :include オプションを使いたいのだと推測。
0653nobodyさん2006/03/13(月) 07:40:13ID:???
>>652
render :partial=>"hoge", :layout=>false, :collection=>@hoge_collection
ってやっる所で同じようになった。
その前にfind :includeで一度読み込んでるレコードなのに。

:collectionが悪さするのかな。
0654nobodyさん2006/03/13(月) 10:27:34ID:J9DLLXKB
>>652

うわぁ、ほんとだ。:includeってhas_many専用じゃなかったんだ。
変な思い込みしてました。
:includeで解決できました。ってことで、652さんサンクス
0655nobodyさん2006/03/13(月) 10:28:20ID:???
>>650
単に慣れている、そしてRoRだとscript.aculo.usが使いやすいってだけじゃないかと。
0656nobodyさん2006/03/13(月) 19:41:06ID:???
RoRにしても、結局はmod_rubyや、fastcgiでrubyプロセスいっぱいで楽しくないなあ。
JavaはJ2EEでスマートにやってるのに。orz

とはいえ、動けばいいじゃん的な用途には最高なのは認める。
0657nobodyさん2006/03/14(火) 01:24:34ID:???
Java って起動が糞遅いやん。
0658nobodyさん2006/03/14(火) 02:16:51ID:???
起動が一回で済んでいいなという話だと思うんだが。
0659nobodyさん2006/03/14(火) 06:30:02ID:U9tLpv8P
この場合webrick相当のものが、安定して動けばいいんだろうなって返しが正しいのかな
でも、そこが問題だ
0660nobodyさん2006/03/14(火) 09:48:56ID:???
Ruby がスレッドセーフだったらもっとマシになってたかなあ。
0661nobodyさん2006/03/14(火) 10:31:16ID:???
Windows捨てればいいんだろうなぁ
0662nobodyさん2006/03/14(火) 10:38:58ID:???
スレッドを扱うには、RubyやPythonよりもPerlの方がいい?
0663nobodyさん2006/03/14(火) 10:57:35ID:???
webrick + apacheのコネクタとかは
0664nobodyさん2006/03/14(火) 11:54:02ID:???
今時 apache じゃなくて lighttpd なんじゃないの?
0665nobodyさん2006/03/14(火) 11:54:49ID:???
場合による。
0666nobodyさん2006/03/14(火) 11:56:04ID:???
> 場合による。

さて、どんな場合だろう。
■ このスレッドは過去ログ倉庫に格納されています