1 名前:nobodyさん [2010/02/19(金) 16:13:13 ID:SpWtnpr8] ■前 【Ruby】Ruby on Rails Part8 pc11.2ch.net/test/read.cgi/php/1252842574/ ■参考サイト <英語> 本家:www.rubyonrails.org API document:api.rubyonrails.com/ 開発者のblog:weblog.rubyonrails.org/ 参考wiki:wiki.rubyonrails.org/rails <日本語> Rails' wiki: wiki.fdiary.net/rails/
2 名前:nobodyさん [2010/02/19(金) 16:14:34 ID:WbFNhWFy] ■変遷 【Agile】Ruby on rails相談所【DRY】 pc8.2ch.net/test/read.cgi/php/1118663500/ 【Agile】Ruby on rails相談所 part2【DRY】 pc10.2ch.net/test/read.cgi/php/1151254378/ 【Ruby】Ruby on Rails Part3 pc11.2ch.net/test/read.cgi/php/1170760209/ ↓ム板に Ruby on Rails pc11.2ch.net/test/read.cgi/tech/1191381506/ ↓ Ruby on Rails のスレ が pc11.2ch.net/test/read.cgi/php/1207425569/ ↓ 【Ruby】Ruby on Rails Part6 pc11.2ch.net/test/read.cgi/php/1224838013/ ↓ 【Ruby】Ruby on Rails Part7 pc11.2ch.net/test/read.cgi/php/1241100447/ ↓ 【Ruby】Ruby on Rails Part8 pc11.2ch.net/test/read.cgi/php/1252842574/ (イマココ)
3 名前:nobodyさん [2010/02/19(金) 16:16:16 ID:WbFNhWFy] rails メーリングリスト www.fdiary.net/ml/rails/
4 名前:nobodyさん mailto:sage [2010/02/19(金) 18:31:41 ID:???] ブログのような日時で予約投稿する機能を作りたいと思っています。 こういった定期処理はどのように実装したもんでしょうか? 精度的には分単位が必要です。 こちらで考えたのは、毎分ごとにcronでscript/runnerをキック、もしくは javan's whenever at master - GitHub github.com/javan/whenever のようなRubyGemsを使って(といっても上記は実質cronですが) DBの該当モデルの公開フラグをオンにする、というような実装です。 ただ問題なのは、script/runnerの起動自体が重く数秒(下手すると5秒程度)CPUを占有することもあり、 こういった方法は一般的なものなのか?と思ったしだいです。
5 名前:nobodyさん [2010/02/19(金) 18:41:23 ID:WbFNhWFy] Rails で cron を使わずに cron っぽいことを行う方法 poormans_cron プラグイン everyleaf.com/blogs/2009/12/20/poormans_cron/ [Rails]Rails - crontabでバッチ処理を行う crontabからscript/runnerでmodelのメソッド呼んで上げればいい d.hatena.ne.jp/arcright/20090824/1251142139 MOONGIFT: ? RailsのCron処理に「Whenever」:オープンソースを毎日紹介 www.moongift.jp/2009/06/whenever/
6 名前:nobodyさん [2010/02/19(金) 18:48:37 ID:R+yZ5C0Y] アプリ側にdrbでアクセスできる口を用意しておいて、 cronからはそれに触るだけ、とかすれば重さは解消 できるかもな。
7 名前:nobodyさん [2010/02/19(金) 19:28:20 ID:XnDPmidp] rufus_scheduler
8 名前:nobodyさん [2010/02/19(金) 19:29:57 ID:WbFNhWFy] Amazon.co.jp: 小さなチーム、大きな仕事―37シグナルズ成功の法則 (ハヤカワ新書juice): ジェイソン・フリード, デイヴィッド・ハイネマイヤー・ハンソン, 黒沢 健二: 本 www.amazon.co.jp/gp/product/4153200115 twitter.com/dhh/status/9310086401 www.hayakawa-online.co.jp/product/books/220011.html
9 名前:nobodyさん mailto:sage [2010/02/19(金) 19:39:14 ID:???] >>8 Getting Real の邦訳?
10 名前:nobodyさん [2010/02/19(金) 20:15:00 ID:WbFNhWFy] Rails 3 Beautiful Code www.slideshare.net/GreggPollack/rails-3-beautiful-code-3219240
11 名前:nobodyさん mailto:sage [2010/02/19(金) 23:19:34 ID:???] >>4 キューから仕事引っ張り出すデーモン立ててやるのが一般的かな。 キューの実装はいろいろ。
12 名前:nobodyさん mailto:sage [2010/02/20(土) 00:16:46 ID:???] 実行する頻度が多くないのなら、script/runnerも十分実用できるけどね。1日1〜2回だけ実行するものとか。 あとは、cronで起動するバッチではコントローラのアクションをnet/httpで叩くだけにして 実際の処理はコントローラ側でやるという方法もアリだと思う。
13 名前:nobodyさん mailto:sage [2010/02/20(土) 15:01:40 ID:???] railsサーバーから別のファイルサーバーに画像をアップロードした場合、 ダウンロードは出来るんだが、画像を表示しようとすると ルーティングエラーで画像が表示できない。 ただのファイルサーバーを追加するって出来る? publicにファイルサーバーのショートカット作っても駄目だった。 railsは2.1.2、rubyは1.8.7。
14 名前:nobodyさん [2010/02/20(土) 15:05:28 ID:3Z++wair] d.hatena.ne.jp/Molokheiya/20100219/p1
15 名前:nobodyさん mailto:sage [2010/02/20(土) 15:08:17 ID:???] 何を言っているのか分からないんだが。 環境やパスについてもう少し詳しく情報出さないと分かるわけないでしょ。 普通に考えれば、ファイルサーバの画像を置くパスをWebから見れるように Apacheなどの設定をしておけば、http://ファイルサーバのホスト/画像のパス で見れるようになるはず。
16 名前:nobodyさん [2010/02/20(土) 15:12:43 ID:zWoV3Do7] >>13 public以外の場所に置いた画像をブラウザから観られるようにしたい という意味?
17 名前:nobodyさん mailto:sage [2010/02/20(土) 15:36:12 ID:???] 簡単なコンボボックスの実装を教えてください!
18 名前:13 mailto:sage [2010/02/20(土) 15:54:51 ID:???] >>16 そんな感じ。 画像の保存先を"/Volumes/gazou/upload"っていう gazouサーバーのuploadフォルダにしたとき、 formからfile_fieldでアップロードするとファイルは "/Volumes/gazou/upload"にアップされるんです。 indexでimage_tag("/Volumes/gazou/upload/test.jpg" で表示しようとすると、RoutingErrorになります。 サーバーはとりあえずlighttpd使ってます。
19 名前:nobodyさん mailto:sage [2010/02/20(土) 15:57:31 ID:???] >>18 当たり前だろ、ここはお前レベルの人間が来ていいところじゃない。 ファイルシステムから勉強し直せ。
20 名前:nobodyさん mailto:sage [2010/02/20(土) 17:07:46 ID:???] ははは
21 名前:nobodyさん mailto:sage [2010/02/20(土) 17:16:09 ID:???] >>18 そもそも、そのファイルサーバーの画像はブラウザから見られる? /Volumes/gazou/upload ←これはサーバーのローカルからアクセスできる”ファイルのパス” image_tag("/Volumes/gazou/upload/test.jpg") ←ここに指定するのは”URL” ↓ <img src="/Volumes/gazou/upload/test.jpg" /> こういうHTMLになるはずだが、 もしだよ、こんなに仮にローカルのパスがwebから全世界から簡単に見られたら、 パスワードファイルとか大事なDBのデータとかすき放題アクセスできてしまう。 だから、webサーバー、例えばapacheなどでURLとして公開するディレクトリと ローカルからアクセスできるファイルのパスを関連付けて設定しないと、webブラウザで見られない。 ・案1 ファイルサーバーの画像置き場以下をwebサーバーで公開する。 apache等使っているならやり方はググれ。スレ違い # 簡単だがこの方法の欠点としては、ログインしてない人に画像が見られるのを防ぐといったアクセス管理がちょっとしづらい。 ・案2 Railsのコントローラーでファイルサーバーからバイナリで読んで画像としてブラウザに返す やり方シランw ググれ >>19 まあまあw
22 名前:nobodyさん mailto:sage [2010/02/20(土) 17:17:31 ID:???] ダウンロードできるなら表示もできるのでは
23 名前:nobodyさん mailto:sage [2010/02/20(土) 17:18:43 ID:???] ・案3 忘れてた /Volumes/gazou/upload から RAILS_ROOT/public/upload にシンボリックリンクを貼って、 image_tag("/upload/test.jpg") でアクセスする。 こっちも簡単でいいな。
24 名前:nobodyさん mailto:sage [2010/02/20(土) 17:21:13 ID:???] Windowsかな? ダウンロードはできる、っていうのは、 多分ブラウザにファイルサーバーのパスを突っ込んだら、ファイラーとして動いて表示されてるだけ、とか? ダウンロードはできる、ってのは見逃してた。上の書き込み全然外してるかもしれんw
25 名前:13 mailto:sage [2010/02/20(土) 17:42:56 ID:???] >>24 macです。 「ローカルでしか見ない」っての付け足せば良かった。ゴメン。 ローカルでしか見ないから>>19 が言いたいアクセス関係は無視してたんだ。 案3も試してみたけど駄目だった。単にファイラーで動いてるだけなんだな。 RoutingErrorって出るからルーティング出来ればいけるかな? って思っただけなんだ。
26 名前:nobodyさん [2010/02/20(土) 18:30:50 ID:zWoV3Do7] 「ショートカット」の件 UNIXでいうシンボリックリンクはrubyやhttpdみたいな UNIXコマンドからはそのまま読めるけど、 Macでいうエイリアス(UNIXシェルのエイリアスとは意味が違う)だと、 うまく読めないはず。
27 名前:nobodyさん [2010/02/20(土) 18:40:44 ID:zWoV3Do7] MacOS X Snow Leopard にて $ rails myapp $ cd myapp/public $ ln -s /Volumes/fuga upload $ script/server とした場合、 /Volumes/fuga/hoge/gazou.png には localhost:3000/upload/hoge/gazou.png でアクセス可能。
28 名前:nobodyさん mailto:sage [2010/02/20(土) 18:49:26 ID:???] 案2ベースだと、send_fileでとりあえずできそう api.rubyonrails.org/classes/ActionController/Streaming.html
29 名前:nobodyさん mailto:sage [2010/02/20(土) 20:07:25 ID:???] こんなのにいつまで付き合うの。
30 名前:nobodyさん [2010/02/21(日) 01:44:57 ID:o+L/Pmc4] 画像もDBに格納して管理する −扱いがめんどうなLOB(ラージオブジェクト)は使わない方法も含め b.hatena.ne.jp/entry/neta.ywcafe.net/000774.html - Encode "icon.png" in Base64 as "base64.txt": -------------------------------------- File.open("base64.txt","w") do |file| file.write [open("icon.png").read].pack("m") end -------------------------------------- - Decode "base64.txt" as a PNG "new_icon.png" file: -------------------------------------- File.open('new_icon.png', 'wb') do |file| file << (IO.readlines('base64.txt').to_s.unpack('m')).first end -------------------------------------- www.ruby-forum.com/topic/200065 RubyでBase64 d.hatena.ne.jp/nacookan/20071203/1196701095
31 名前:nobodyさん mailto:sage [2010/02/21(日) 02:45:34 ID:???] >>30 BLOB型をなんでそんな嫌ってるのかが分からんね。 記事は面白かったけど前提が強引過ぎてなんとも。
32 名前:nobodyさん mailto:sage [2010/02/21(日) 10:01:17 ID:???] ×BLOBが嫌い ○rubyのバイト列の扱いが嫌い
33 名前:nobodyさん mailto:sage [2010/02/21(日) 12:44:36 ID:???] ここRailsスレだろ? 確かにSQLでLOBを扱うのは面倒かもしれんが、 RailsというかActiveRecordならLOBなんて笑っちゃうくらい簡単に扱えるのだが
34 名前:nobodyさん [2010/02/21(日) 14:32:45 ID:o+L/Pmc4] books.google.com/books?id=-7iMOLUQDqQC&pg=PA110&lpg=PA110&dq=ActiveRecord%E3%81%AA%E3%82%89LOB&source=bl&ots=NFLNj1rWKR&sig=unj3i2VegYEijfPCAc2nODAlrJE&hl=ja&ei=Z8OAS465HcXnkAWWub31BA&sa=X&oi=book_result&ct=result&resnum=5&ved=0CBcQ6AEwBA
35 名前:nobodyさん mailto:sage [2010/02/21(日) 14:35:08 ID:???] class Blog class Post belongs_to :blog と、関連を指定しているときに post.blog でアクセスできるのはわかったんですが post.blog.title でソートしたいときに Post.find(:all) で指定する :order ってどうしたらいいですか? :joins => "LEFT JOIN blogs" して "ORDER BY blogs.title" みたいな?ことを SQLっぽいことを書かずにできる方法ありますか。
36 名前:nobodyさん [2010/02/21(日) 16:25:55 ID:wFIWx53c] テーブルの結合の一部は :include で出来るけど :order は ORDER句に書くものを書くところなので 結局そこはSQLにならざるをえない。 Rails3のSQLハンドリングの裏方として採用されている Arel(Active Relations)ではこうも書けるんだろうけど、 SQLの *隠蔽* にはならんだろうね。 posts.join(blogs).on(posts[:blog_id].eq(blogs[:id])).order(blogs[:title])
37 名前:35 mailto:sage [2010/02/21(日) 16:51:21 ID:???] >> 36 ありがとうございます。すっきりしました。 POSTされたパラメータ params[:sort_index] が "updated_at"だったら そのままコントローラで :order => params[:sort_index] とできるんですが "blog[title]" のときは結合したテーブル名.カラム名に変えないといけないのが スマートじゃない気がして、他にもっといい方法があるんじゃないかと思ってました。 Rails3 も Arel も無知なので、勉強してみます。
38 名前:35 mailto:sage [2010/02/21(日) 17:08:14 ID:???] 自己レス なら、params[:sort_index]の中身が"blog.title"ってなるようにビュー側を 変えればいいのか orz なんとなくシンボルでアクセスすることが多いので params[:blog][:title] → params["blog.title"] はちょっと違和感あるけども
39 名前:nobodyさん mailto:sage [2010/02/21(日) 17:49:03 ID:???] そのパラメータに変なもん指定されて、 SQLがエラーになるよ。 カラム名丸出しもカッコ悪い。
40 名前:35 mailto:sage [2010/02/21(日) 19:27:35 ID:???] >>39 確かに、SQLインジェクションはまったく考慮してませんでした。 でも、カラム名丸出しってカッコ悪いんですか? 少なくとも初心者の自分が触れる書籍なんかのコードは大体カラム名丸出しというか、 そもそも FormBuilder がそういう HTML 吐いちゃうから当たり前なんだと思ってました。
41 名前:nobodyさん mailto:sage [2010/02/21(日) 19:45:31 ID:???] カラム名丸出しはカッコ悪くないよ。 でもそう思っちゃう人もいるってことで。
42 名前:nobodyさん mailto:sage [2010/02/21(日) 19:47:26 ID:???] >>40 :orderに入る部分はエスケープされるんだっけ。 そしたらSQLインジェクションの心配はないと思うんだけど、 カッコ悪さに関しては、URL中にSQLの一部が出てくるのがなんか気持ち悪いなあと思ったから。
43 名前:nobodyさん [2010/02/21(日) 20:00:49 ID:wFIWx53c] limitに渡る部分はいつぞや脆弱性として報告されて ( secunia.com/advisories/31875/ )、修正が入ってる。 orderについては↓でrejectされている、ようだ。 dev.rubyonrails.org/ticket/7684
44 名前:35 mailto:sage [2010/02/21(日) 21:18:26 ID:???] >>42 なるほどPOST中のデータにピリオドがついてたら、見る人が見れば SQLのテーブルを指してるかもって思われやすいってことですね。 他のみなさんのレスも勉強になります。ありがとうございます。 と、関係ない質問ですけど、名前空間付きの scaffold をしたときの話で、 scaffold my_namespace/hoge name:string としたときマイグレーションファイルは my_namespace_hoge という名前のテーブルを作るようになってますが、 モデルの MyNamespace::Hoge は hoge テーブルを参照しようとしてます。 今のところ名前空間は route とか controller の都合でやってるもの、という解釈で マイグレーションファイルの方を hoge テーブルを作るように毎回書き換えてます。 (モデルのクラスにも名前空間が適用されているんだから、MyNamespace::Hogeクラス がmy_namespace_hoge テーブルを使ってもいいんじゃないか?というかこっちのが正しくね? でもテーブル名が長くなっちゃね?ユニークさが増していいんじゃね?と悩みながら) これってどうするのが on Rails なんでしょうか? というか自分の環境(JRuby1.4 Rails 2.3.5)だけの問題だったりするんでしょうか?
45 名前:nobodyさん mailto:sage [2010/02/21(日) 22:13:12 ID:???] というか、scaffoldから卒業して自由に作るのが楽だし、楽しいんじゃない?
46 名前:nobodyさん mailto:sage [2010/02/21(日) 22:17:43 ID:???] 名前空間付きモデルやろうとしたことあるけど、 結局DBのほうは名前空間持てないのでややこしくなるだけだと思った。 なるべくconventionに従ってややこしいこと避けるならやらない方がいい。 どうしてもやるのなら migration を書き換えるか set_table_name
47 名前:nobodyさん mailto:sage [2010/02/21(日) 22:21:17 ID:???] 名前空間とテーブル名は必ずしも合ってなくていいと思うけど。 というか合わせられるとかえって困ることも。 例えばusersテーブルを考えると、ユーザーが自分で操作する画面と、 管理者が操作する画面は別に作る可能性とかある。管理者の方が内部データを操作できるとか。 テーブルと画面が必ず1:1なら、言うとおりでもいいかもしれないけど。
48 名前:35 mailto:sage [2010/02/21(日) 22:54:30 ID:???] >>45 確かにそれもわかるんですが、設定よりも規約の 規約がわからない段階だと scaffold で助かることもあります。 あくまで規約にのっとったうえでの自由が Rails 的な楽しみ方なのかな というのもありますし。 と、scaffold の件は規約にはなってない(テーブル名は任意で、どうでもいいよそんなこと) ってことなんですかね。。 覚えることがいっぱいで書籍の範疇からはずれたとたんにあたふたしてます。 >>46 , 47 名前空間はMVCで言うところのVCよりなところで分割してみたいってのが あってやってみました。なんか一階層の URL が寂しかったってのもあり。。 users テーブルの例も、複数の UI を用意することはあっても、結局触るモデルは1つ ってことですね。 テーブル名が衝突するようなこともまずなさそうですし現行のままで行ってみます。
49 名前:nobodyさん mailto:sage [2010/02/22(月) 00:21:22 ID:???] >>48 >覚えることがいっぱいで書籍の範疇からはずれたとたんにあたふたしてます。 scaffoldに頼っている限りは、そうなってしまうよ。 一通り慣れてきたら、scaffoldで自動生成せずにアプリを作るようにしてみると 自分が理解していなかった部分が浮き彫りになるし、 それで分からない事をその都度調べていくと、すごくレベルアップできるよ。
50 名前:35 mailto:sage [2010/02/22(月) 07:01:04 ID:???] >>49 > scaffoldに頼っている限りは、そうなってしまうよ。 そのせいですかね?? scaffold を使えば10分でブログができる的な謳い文句はよく見ますが 実際は、それだけで作ったブログなんて誰も使わないわけで、それぐらいの 頼りなさが、ほんとに土台なんだなって、それぐらいはわかります。 最近は、単純にMVC一括でルールに従ったファイル名のファイルを作ってもらう だけのジェネレータ的な使い方で、あたふたは単に自分の能力の問題、っていう認識です。 モデル名の複数形がテーブル名っていう規約はわかってるんですが、 今回の件のように、モデル側は名前空間を含めないテーブル(hoge)を参照しようとして マイグレーションファイル、test/unit 以下は名前空間を含めた テーブル(my_namespace_hoge)を参照しようとするコードを scaffold が吐く っていうのは、何か知らない規約がある、もしくは環境が変、とかそれなりの 理由があるのかな?と思ったわけです。 名前空間つけたときって、どういうフォルダ構成になるんじゃろって、scaffold で 気軽に知れたのまではよかったんですが、scaffold 直後の rake test:units で、 一発じゃ通らないんで、あれれ?と。
51 名前:nobodyさん mailto:sage [2010/02/22(月) 12:43:48 ID:???] 名前空間付きscaffoldってどっかにプラグインなかったけ?今も動くかわからんけど。 俺の場合、管理者用の ~~~/admin/ 以下用のコントローラー作るときは script/generate scaffold admin::hoge ってやるけど、 モデルは階層化いらんから script/destory model admin::hoge ってすぐ消してる。 もちろんコントローラーをadmin::hogeモデルからhogeモデルへの依存へ書き換えは必要
52 名前:nobodyさん mailto:sage [2010/02/22(月) 16:08:14 ID:???] cukeやRspecなどのTDDやBDDからプログラム作りはいった方がいいんじゃない?
53 名前:35 mailto:sage [2010/02/22(月) 20:19:06 ID:???] こだわるような内容じゃないってのは承知の上ですが何回もレスしてすいやせん。 scaffold に限らず、ジェネレータが吐くコード = 標準的(規約) な考えがあるので、整合性がないように「見える」と疑問がわきまして。 みなさんのレスから察するに、特に大きな理由などはなさそうなので たまたま名前空間の機能追加中に現れた現象ってことでスルーしてみます。 Rails3になったら、何事もないようになってるのかなー。 本題に対する回答ではないですが、モデルだけ消す方法から、cuke,Rspecという 知らなかったキーワードまで参考になりました。ありがとうございました。
54 名前:nobodyさん [2010/02/22(月) 20:43:45 ID:SMf+P9Hc] rubygems-update 1.3.6 Released www.ruby-forum.com/topic/204581
55 名前:nobodyさん [2010/02/23(火) 00:05:56 ID:qmMkHKt3] RORのままアーキテクチャの変更で10000%高速化したとな。 ttp://b.hatena.ne.jp/entry/highscalability.com/scaling-twitter-making-twitter-10000-percent-faster ミニブログの Twitterのstats(統計)データ。 kaworu.jpn.org/kaworu/2008-01-16-2.php - 350,000を超えるユーザ。 - 秒間600リクエスト - 平均毎秒200-300コネクション。最大時は秒間800コネクション - MySQLは秒間2,400リクエストを処理する - 180のRailsインスタンスがある。MongrelのWebサーバを使っている。 - 1つのMySQLサーバ(1つの大きな 8コアのサーバ)と1つのスレーブ。スレーブは、統計とレポートのための読み込み専用(リードオンリー)。 - 雑用処理をするための30+のプロセス - 8台のSun X4100s - Railsでのリクエストの処理時間は200 msec - データベースにかかる時間の平均は、50-100 msec - 16GBの memcached
56 名前:nobodyさん mailto:sage [2010/02/23(火) 00:40:21 ID:???] 前スレでも同じの張ってただろ いい加減飽きたんだが。
57 名前:nobodyさん [2010/02/23(火) 00:43:53 ID:qmMkHKt3] Twitter創始者が語るWeb 2.0の要諦 − @IT www.atmarkit.co.jp/news/200711/16/twitter.html Odeo内で始めた小さなプロジェクトが「Twitter」だ。 Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。
58 名前:nobodyさん mailto:sage [2010/02/23(火) 01:04:24 ID:???] 親切でやってるのかもしれないけど、 なんの言葉もなく何度もURLを貼られるとむかついてくるのだが
59 名前:nobodyさん mailto:sage [2010/02/23(火) 01:19:43 ID:???] 何かしらのコメントを付け加えないと、ただのノイズでしかないよな。
60 名前:nobodyさん [2010/02/23(火) 01:24:37 ID:24B872MQ] The Rails 3 Upgrade Handbook www.railsupgradehandbook.com/
61 名前:nobodyさん [2010/02/23(火) 17:54:54 ID:qmMkHKt3] >>30 [Rails] DBに入れた画像を表示する
62 名前:nobodyさん [2010/02/23(火) 17:56:23 ID:qmMkHKt3] >>30 [Rails] DBに入れた画像を表示する d.hatena.ne.jp/hichiriki/20100110/1263125573
63 名前:nobodyさん [2010/02/24(水) 06:06:13 ID:xyBYpSVv] www.hostingrails.com/?url_string=index www.slicehost.com/ www.linode.com/ The Best Ruby on Rails Hosting Services antoniocangiano.com/the-best-ruby-on-rails-hosting-services/
64 名前:nobodyさん mailto:sage [2010/02/24(水) 09:27:57 ID:???] >>55 ニュースは既出っぽい。だがまとめてくれてありがとう。
65 名前:nobodyさん [2010/02/24(水) 19:17:55 ID:xyBYpSVv] Unlearn Your MBA (Entire talk) ecorner.stanford.edu/authorMaterialInfo.html?mid=2351 David Heineimeier Hansson
66 名前:nobodyさん [2010/02/25(木) 02:36:33 ID:B4ZAmzpA] レンタルサーバでredmineを構築していたら dispatch.cgiを実行したところで これと同じ症状がでてしまいました。 www.redmine.org/boards/2/topics/11439 こういう場合ってredmine側の対応待ちでしょうか?
67 名前:nobodyさん mailto:sage [2010/02/25(木) 08:25:52 ID:???] マカってホント情報弱者だな。
68 名前:nobodyさん [2010/02/25(木) 09:21:23 ID:aQeZQ3fd] >>66 エスパー求むって? とりあえず、構築手順くらい書こうや。
69 名前:nobodyさん mailto:sage [2010/02/25(木) 11:35:37 ID:???] 分かる人だけ返事すればいいと思うよ
70 名前:66 [2010/02/25(木) 12:03:07 ID:B4ZAmzpA] >>68 基本的にはこれと同じ手順で構築しました。 d.hatena.ne.jp/toritori0318/20091103/1257260011 私の環境では rubygems 1.3.5 rails 2.3.5 sqlite3 を利用しています。 また、script/server -e production を利用して実行した場合には正常に動作するのですが dispatch.cgi経由で実行した場合にのみ saifis.net/?cat=13 これと同じように `__send__': undefined method `env_table' for nil:NilClass (NoMethodError) というエラーが出てしまいました RailsのCGIでの起動プロセスに問題があるように見えました
71 名前:nobodyさん [2010/02/25(木) 12:55:00 ID:WAzbGxTX] dispatch.cgiの最後は Dispatcher.dispatch だけど、 rails-2.3.5/lib/dispatcher.rb によれば、このクラスの実体はActionController::Dispatcher が代入されている。 dispatch の定義は actionpack-2.3.5/lib/action_controller/dispatcher.rb にあって、 # DEPRECATE: Remove CGI support def dispatch(cgi = nil, session_options = CgiRequest::DEFAULT_SESSION_OPTIONS, output = $stdout) new(output).dispatch_cgi(cgi, session_options) end dispatchを引数を与えずに呼ぶと cgi は nil になるわけだ。 というわけで Dispatcher.dispatch(CGI.new) あたりに直してはどうかと想像。
72 名前:nobodyさん [2010/02/25(木) 14:40:20 ID:mPH3bNCl] 質問 filter_parameter_logging :password でリクエストパラメータ中の生パスワードが ログファイルに書き込まれることは防げますが、一方で SQL文 のログとして パスワードのダイジェストやソルトなどはそのままログファイルに書き込まれますよね。 これってセキュリティ上好ましくないと思うのですが、考えすぎでしょうか? バックアップメディアも含め、ログファイルの管理をしっかりやれば問題ない?
73 名前:66 [2010/02/25(木) 14:58:59 ID:B4ZAmzpA] >>71 ありがとうございます。 さっそく試してみたところ、エラーの部分は通るようになったのですが 今度は別のところでコケてしまいました。 $ ruby public/dispatch.cgi /home/username/lib/ruby/gem/gems/actionpack-2.3.5/lib/action_controller/cgi_process.rb:29:in `update': can't convert IO into String (TypeError) cgi_process.rbと /usr/local/lib/ruby/1.8/cgi.rb を追ってみたのですが 21 def self.dispatch_cgi(app, cgi, out = $stdout) 22 env = cgi.__send__(:env_table) 23 env.delete "HTTP_CONTENT_LENGTH" 24 25 cgi.stdinput.extend ProperStream 26 27 env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/" 28 29 env.update({ 30 "rack.version" => [0,1], 31 "rack.input" => cgi.stdinput, 32 "rack.errors" => $stderr, 33 "rack.multithread" => false, 34 "rack.multiprocess" => true, 35 "rack.run_once" => false, 36 "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http" 37 }) 環境変数を上書きしているように見えるが よくわからなかったので結局断念することにしました。
74 名前:66 [2010/02/25(木) 15:00:52 ID:B4ZAmzpA] あと、少し気になったのですが action_controller/dispatcher.rbの def dispatchの上に書いてある # DEPRECATE: Remove CGI support この文言 これってRailsでのCGIサポートはしないという意味でしょうか?
75 名前:nobodyさん [2010/02/25(木) 15:08:09 ID:WAzbGxTX] >>72 運用環境のログレベルでは、実施したSQLまでは出力してないんじゃね?
76 名前:72 mailto:sage [2010/02/25(木) 15:51:31 ID:???] >>75 ありがとうございます。 調べたところ、ログファイルの SQL は DEBUGレベルで書き出されており、 production環境のデフォルトログレベルは INFO のため、ご指摘の通り運用環境の ログには SQL まで書き出されないようになっていました。 production環境で動かしたことのない初心者の早とちりでしたorz
77 名前:nobodyさん mailto:sage [2010/02/25(木) 18:36:51 ID:???] >>74 すでに非推奨になってたかと思う。 Railsアジャイル本でも「CGIいまどき何いってんのハァ?」って感じだったと思う
78 名前:nobodyさん mailto:sage [2010/02/25(木) 18:41:37 ID:???] ちょっと質問があります。 ActiveSexで複数のレコードを同時に更新するスマートな方法はないもんでしょうか? 以下は hoge が1のものだけ2にしようとしているのですが、eachでループ回すのがいいものか?と。 更新できればそれでいいのではと言えばいいのですが、もっと早い書き方があるかと思いまして。 FooBar.find(:all, :conditions => "hoge=1").each{|x| x.update_attributes(:hoge => 2) }
79 名前:nobodyさん mailto:sage [2010/02/25(木) 18:43:25 ID:???] x ActiveSex o ActiveRecord 悪い、、、缶詰すぎて頭がどうかしてるわ・・・
80 名前:nobodyさん mailto:sage [2010/02/25(木) 19:23:05 ID:???] どんな間違いじゃ ところでなぜfindをかましてループさせてるのか理由が聞きたい 特に理由がなければ、直接updateすればいい 対象レコードが数千・数万になるだけで相当遅くなると思うんだけど
81 名前:66 [2010/02/25(木) 21:42:49 ID:B4ZAmzpA] >>77 そうでしたか、遅くて評判悪いのは知ってたんですが レンサバなのでプロセス常駐させる訳にもいかず、CGI経由で動かせればと思ったのですが 仕方が無いのでちょっと他の方法を模索してみることにします。 ありがとうございました。
82 名前:nobodyさん [2010/02/25(木) 22:07:40 ID:aQeZQ3fd] update_all に条件書けるぞ。
83 名前:nobodyさん mailto:sage [2010/02/26(金) 00:41:36 ID:???] 返事がないのはぶっ倒れたんじゃないだろうな
84 名前:nobodyさん mailto:sage [2010/02/26(金) 01:21:34 ID:???] 専鯖借りれば。共有鯖で動かすのは迷惑としか。
85 名前:nobodyさん [2010/02/26(金) 21:16:52 ID:Hdg3KYgD] 初心者で悪いんですが、will_pagenateの使い方があまり分からない。 apiのドキュメントって何処にあるか、教えていただけないでしょうか。
86 名前:nobodyさん mailto:sage [2010/02/26(金) 21:32:12 ID:???] >>85 俺が見てるのはここだけど gitrdoc.com/mislav/will_paginate/tree/master/
87 名前:nobodyさん [2010/02/26(金) 21:41:19 ID:MYtnQqym] つーかさ、gem入れるときに生成オフにしてるとしても、 入れればついてくるんだから必要になったらrdocくらい生成しなよ。 面倒ならソースのコメントにまんま載ってるし。
88 名前:nobodyさん [2010/02/27(土) 00:54:37 ID:dI5jXaaO] 自作サーバカンファレンス el.jibun.atmarkit.co.jp/rakuten/2009/12/post-aae3.html ランニングコストは家賃が15万円、回線費用が5万円、電気代が20万円で、合計の月額費用は40万円。年間に換算すると480万円で、 当初の2880万円から大幅なコスト削減を実現した。 bb.watch.impress.co.jp/docs/news/20091126_331459.html
89 名前:nobodyさん [2010/02/27(土) 01:59:15 ID:dI5jXaaO] インテル初となる6コア搭載のプロセッサは、4ソケットサーバー対応で最大24コアで稼動することが可能で、 32の DIMM スロットを備えるデルの PowerEdge R900は、最大256GBのメモリを搭載できる。 japan.internet.com/webtech/20080926/5.html 最新のクアッドコア AMD Opteron プロセッサ 8360 SE(2.5GHz)を採用。「DL785 G5」は最大で8基(32コア)、「DL585 G5」は最大で4基(16コア)搭載可能。 「HP ProLiant 用16GB メモリキット」に対応することで「DL785 G5」で512GB、「DL585 G5」で256GB のメモリを搭載可能となっており、大規模なシステムの構築を可能としている。 japan.internet.com/webtech/20080731/1.html
90 名前:nobodyさん [2010/02/27(土) 02:10:20 ID:dI5jXaaO] Googleサーバの高さは、3.5インチ(約8.8cm)で、データセンター用語で言えば2Uである。 これには、2基のプロセッサと、2基のハードドライブ、そしてGIGABYTE製マザーボードに取り付けた8つのメモリスロットがある。 japan.cnet.com/special/story/0,2000056049,20390984-2,00.htm
91 名前:nobodyさん mailto:sage [2010/02/27(土) 03:40:22 ID:???] Railsアプリケーションが参照するRubyのバージョンはどこで設定されてるのでしょうか? 自分の環境にはRubyがいくつも入ってるため、アプリケーションごとに個別にRubyを指定したいのですがどこで指定すればいいのか分かりません。
92 名前:nobodyさん mailto:sage [2010/02/27(土) 03:46:08 ID:???] 逆だろ、 MOONGIFT: ≫ 複数のRubyを切り替えて使いこなす「rvm」:オープンソースを毎日紹介 www.moongift.jp/2009/09/rvm/ を使って、環境毎に切り替えるべきだろ
93 名前:nobodyさん mailto:sage [2010/02/27(土) 05:12:01 ID:???] そんなゴミサイトはどうでもいい Railsアプリケーション側で使用するRubyへのパスを指定したいと言っている。
94 名前:nobodyさん [2010/02/27(土) 05:38:26 ID:EflRYtaW] (3)PATHで指定されたフォルダにある実行ファイル(前に書かれているフォルダが優先) itpro.nikkeibp.co.jp/article/COLUMN/20080603/305834/
95 名前:nobodyさん mailto:sage [2010/02/27(土) 05:42:40 ID:???] >>93 デプロイしたら手動で環境書き換えるわけか、アフォスw
96 名前:nobodyさん mailto:sage [2010/02/27(土) 05:57:26 ID:???] >>93 Railsアプリケーションってどうやって動いてんの? Rails が Ruby を reuire してんの? ぷw
97 名前:nobodyさん mailto:sage [2010/02/27(土) 07:53:40 ID:???] >>91 rails --help
98 名前:nobodyさん mailto:sage [2010/02/27(土) 15:45:09 ID:???] >>81 一応、レンサバでCGI駆動で動かしている人はチラホラいる。ほんとに人少ないスタートアップ時のみ用だそうだが。 前スレあたりに出てたコピペ運動会の人も、最初はCGI駆動だったらしい。 やり方は詳しく知らんから、ググレとしか。ググル時は、レンサバ名も一緒に入れたほうがよいかと思われ。 有名なレンサバならトライしてる人のレポートはある。 逆に言うなら、上手く行ってないレンサバは避けるが吉。 あといきなり契約するんじゃなくて、必ずお試し期間で試してな。 まあ実際動かしても多分かなり重いんで
99 名前:78 mailto:sage [2010/02/27(土) 15:55:34 ID:???] >>80 >>82 ありがとう。 findしなくてもupdate_allてこれて条件式付きでいけるのか、本当だ引数にconditionsってあるな! 試してみるっす。 さんきゅーさんきゅー!!
100 名前:nobodyさん mailto:sage [2010/02/27(土) 15:59:37 ID:???] >>81 もし、共有レンサバで重くなったらVPSを試すよろし。 ただし、基本はunmanagedなんで自前で鯖管理しないといけない。 オススメは >>63 のlinodeとslicehostあたり。今のナウはlinodeじゃないかなー。 管理してくれるmanagedのもあったと思うがかなり割高だったとおも