【Ruby】Ruby on Rails Part9 at PHP
[2ch|▼Menu]
[前50を表示]
100:nobodyさん
10/02/27 15:59:37
>>81
もし、共有レンサバで重くなったらVPSを試すよろし。
ただし、基本はunmanagedなんで自前で鯖管理しないといけない。
オススメは >>63 のlinodeとslicehostあたり。今のナウはlinodeじゃないかなー。

管理してくれるmanagedのもあったと思うがかなり割高だったとおも

101:nobodyさん
10/02/28 01:27:37 QJDB24//

XREAで、RAILSをfastcgiで動かす。2.3.5
URLリンク(playtoto.blog55.fc2.com)
xreaでrailsをfastcgiで動かしてみた。
URLリンク(www.open-force.info)

102:nobodyさん
10/02/28 01:58:15
CGIはやめておくべきだろうなぁ。
やはり、他人へ迷惑をかけないで、安価でちゃんと動かすには自宅サーバかVPSで運用すべきじゃないかね。


103:nobodyさん
10/02/28 03:28:25
to_json で { string : value } の string をダブルクオテーションでかこっちゃうのを
やめさせられない?
いや、かこっちゃうほうが正しいとは思うんだけど、クライアント側がなくても
解釈してくれるなら、ちょっとでもトラフィックを減らしたいと思って。

104:nobodyさん
10/02/28 08:46:59 JOVD2NU2
lactive_support/json/encoders/hash.rb の to_json を再定義すれば
とりあえずは目的を達成できるのでは?
(今知ったけど、コメントの例がすげーな……)

RFC791を源とする
be conservative in its sending behavior,
and liberal in its receiving behavior
というフレーズもあるように、相手が解釈してくれると期待して規格から
外れるようなことをするようになると、いつかカオスを招くと思う。


105:nobodyさん
10/02/28 09:26:30
Railsにあわせた方がいいのに、
自分の好きなようにいじりたい馬鹿w

後で泣くのは自分だろうな

106:nobodyさん
10/02/28 10:07:26
103が同僚なら俺は全力でその暴挙を阻止する。

107:nobodyさん
10/02/28 10:48:33
俺も全力で止めるな。
あほな事言ってんじゃねーよってね。。

再定義してもいいが、JSONのフォーマットについて100%理解して、
そのテストを書けと。
テスト漏れ、バグがあったらただじゃおかねーぞ、カスが!
くらいは言わせてもらう。

だいたい、トラフィック減らす目的ならgzipで圧縮する事を考えるのが正常な思考だろ。



108:103
10/02/28 10:49:06
>105 ご心配ありがとう。
不特定多数じゃなくて特定少数&寿命短めアプリだから多分泣かないw
Rails もクライアントあっての Rails なわけで、Rails にあわせてれば、すべてが
無問題ってわけでもないっしょ。

>104のとこのソースを見て alias_method_chain でとりあえず目的は達成できやした。
ありがとー。

相手が解釈しないときのフォローもいれておけばカオスは招かないかな。
クライアントで例外をキャッチしたらサーバに通知、それ以降は without な方で
送るようにするとか。
てか、今のJavaScriptエンジンがこのフォーマットを受け付けなくなることってまずなさそうだし、
あっても、その頃にはアプリも寿命を終えてるだろうし、そこまではしないけど

>106
今のところ、「だってあいつ(JavaScript)も RFC に沿ってないんじゃないの?いいじゃん別に」的な
ダメスタンスでいるので理由しだいでは止めますw ご教授ください。

109:nobodyさん
10/02/28 10:50:45
もちろん、仕事ではなくあくまでもただの趣味。
絶対に他人には迷惑をかけないという状況なら、再定義しても文句は言わないよ。


110:103
10/02/28 10:58:45
>>107
レス書いてる途中で見逃しちゃった。

ベンチもはかってないし、ボトルネックにもなってないと思うんだけど。
DBのちっちゃいレコード何万件を送ると、ダブルクオテーションだけで何十KBなのか
と思ったら、消せたらいいのにって思っちゃったわけ。

ちゃんとしたお仕事じゃなくて、ほぼ趣味の話なので、テストもおれだけ。
なんだか、怒られっぱなし(理由もわかるけど)だったので、>109 のレスがなんだかうれしい。

111:nobodyさん
10/02/28 11:00:48
fileコントローラの機能テストを書いたら、302が返ってきて認証してないって怒られました。

fileコントローラのテストで、loginコントローラを操作する方法ってありますか?
それか、テストでbefoerフィルタを上書きしたら出来るのかな?
そもそも機能テストではできない?

何か良い方法がありましたら教えてくださいm(_ _)m



112:103
10/02/28 11:00:56
ならJSONで返すなってご意見もあると思いますが、
そうするとよく知らない JavaScript のライブラリを書き換えないといけないのがいやで。
わがままでごめんなさい。

113:nobodyさん
10/02/28 11:11:35
>>111
ログイン中という状況というのは、プログラムから見れば
クッキーまたはDBにログインフラグが格納されている事であって
ログインコントローラを操作する必要はないよね。

114:nobodyさん
10/02/28 11:20:28
>>ちょっとでもトラフィックを減らしたいと思って。

極小ウェブアプリで心配する必要ねぇ-よ
逆にアジャイルがうしなわれるだろw

115:nobodyさん
10/02/28 11:21:32
>>113
そうかー。ログイン状態のクッキーを再現できれば良さそうですね!!!
盲点。失礼しました。
そしてありがとうござます。助かりました。

116:nobodyさん
10/02/28 12:00:54
>>103
やるのはもちろん勝手だけど、まぁ激しく頭悪いなとは思う。

117:111
10/02/28 12:03:58
だめだー。
毎回クッキーの値が変わってるので、
やはりloginコントローラを操作しないといけない見たい。

皆さんはどんな感じで認証ありの機能テストを実装しているんですか?


118:103
10/02/28 12:30:40
トラフィックが本当に心配というよりはカウボーイコーディング中にふと思ったことをやってみたくなった、
のほうが近いかも。

JavaScirpt にそのままくってもらいたいデータの量をすげーちょっとだけ削れる、
という意味では「あり」な方法なんじゃないかと思うけど。。
少なくとも、ハッシュのキーは常にシンボル、文字エンコーディングは UTF8 としてれば、
だいたいのJavaScriptエンジンで動くんでなかろーか。

iモード.net とかのサービスもこんな感じのJSON返してたような記憶があって、
Rails で何か方法があるのかなーと思ったけどないっぽいので、結果オーバーライド。
Firebug でダブルクオテーションがなくなったのを確認、動いてる jqGrid を見てちょっと満足な
趣味のお話です。


119:nobodyさん
10/02/28 12:46:20
>>117
認証にプラグイン使ってるなら、プラグインのテストを参考に

120:103
10/02/28 12:48:26
って、こんなことも知らなかったのって話ですが、
JSONってJavaScriptのリテラルオブジェクトの表記法のサブセットなのね。

じゃあ、ダブルクオテーションでくくらない今の方法も、言うほど頭悪くないんじゃない?
とか思うのは、おれがおめでたいだけ?
未だに「いいじゃん別に」的なスタンスでいるわりに、「後悔するよ」的なレスの背景が気になる。
具体的に、「前そういう風にしてたら、こんな困ったことがあったよ」って感じの事例が
あったら教えてくらはい。


121:nobodyさん
10/02/28 12:57:51
値に"}"が入ったりとか

122:103
10/02/28 13:05:28
>>121
オーバライドしたメソッド中で
key.instance_of?(Symbol) でハッシュのキーがシンボルのときだけ
ダブルクオテーションでくくらないようにする、ぐらいの配慮はしてまつ。

それだけ?

123:111
10/02/28 13:14:47
>>119
アドバイスありがとう。
loginコントローラのみの機能テストは通っています。
でも、機能テストでfileコントローラからloginコントローラを呼び出せないので、
あきらめました。テスト対象のコントローラ以外のコントローラは呼び出せないのかな?

とりあえず、統合テストで実現できたのでそちらでテストを進めていきます。
お騒がせしました。ありがとうございました。



124:nobodyさん
10/02/28 13:15:07
>>120
趣味でやっているなら、気にしなくていいんだよ。
まぁJSONの件だけを言っているわけじゃなくて、どちらかというと発想というか思考の流れが良くないという感じ。

ついつい身近な人間の事を当てはめて考えてしまうんだよね。
入社3ヶ月目の新人ならまだ許せるが、1年過ぎたらこの発想はないわ、みたいな。
この思考でいけば、いつか必ずこいつのせいで周りが苦労する事になるという気持ちになった、
または実際にそういう目にあったという人は多いだろう。



125:103
10/02/28 14:17:10
>>124
マ板ならわかるけど、まさかRailsスレでそういう次元の話でレスされるとは。。

身近な人間にあてはめちゃったら、10年やって、この発想はないわ、
この先輩のウンコな仕様のせいでみんな苦労してる、思考停止して苦労してることにさえ気づいてない人さえいる、
とか私情だけのかみあわない話もありますけど、Rails でも JSON の話でもなくなりますね。

ということで、技術的にここがダメってのがあったらアドバイスくらはい。
JSONはウンコじゃないと思うけど、JavaScript間とのやりとりで許容される仕様内なら、すっきりした気分になれるな的な。
こういう Rails プラグインで代用できるとかでもいいですけど。

126:nobodyさん
10/02/28 14:19:28
>>125
つまり、トラフィックを減らしたいならJSONのフォーマットを変更するのではなく、
そのJSON文字列をgzip圧縮して送信するべきなんじゃないの?
という話です。


127:103
10/02/28 14:27:30
>>126
ええと、ほんとにトラフィックに困ってるわけでもなく、ベンチもはかってなくて。
このケースで、 gzip 圧縮の前の段階でこういう削り方したらどいういう問題が
ありますか?という話です。

128:nobodyさん
10/02/28 14:33:16
たぶん、それ単体では問題となるケースはないんじゃないかな。

今までのレスというのは、あくまでも>>103
>いや、かこっちゃうほうが正しいとは思うんだけど、クライアント側がなくても
>解釈してくれるなら、ちょっとでもトラフィックを減らしたいと思って。
という書き込みがある事を前提とした批判なのでね。

でもだんだん前提が変わってきて、
・とりあえずJSONの形式を自由に変更したい
・他人とはまったく関わりがない趣味の範囲
という感じになってるんで、どのようにしてもいいと思う。




129:103
10/02/28 15:19:03
>>128
説明を付け足してるつもりではいたんですが、前提変わってすいやせん。

> ・とりあえずJSONの形式を自由に変更したい

そう、誰もつっこまなかったけど、この JSON で返したいってのがそもそもの間違い?
名前をダブルクオテーションで囲まなければ JSON でないのであれば、
それは JavaScript のハッシュオブジェクトってこと?
レスポンスは JSON じゃなくて、JavaScript のオブジェクトを返すサービス、
っていう位置づけなら、後々は他サービスとの連携も可ってことかな。

この場合は to_json じゃなくて Hash クラスに to_javascript ってメソッドの方が
Rails(Ruby)っぽい気がしてきた。

130:nobodyさん
10/02/28 15:32:24
JSONを返す事自体は悪くないよ。
JSONはJavaScriptの一部ではなく完全に独立したテキストベースのデータファーマットの1つ。
だからto_jsonという名前は正しい。


131:nobodyさん
10/02/28 15:33:58
あ、タイプミス。データフォーマットだった。


132:nobodyさん
10/02/28 15:39:47
既存のWebAPIもJSONかXMLで返すものがほとんどだし、JSONはかなりメジャーな形式だと思うよ

133:103
10/02/28 15:51:28
今回の名前をダブルクオテーションで囲っちゃうウソJSON 化は
to_json メソッドをオーバーライドしちゃってたんですが、それだとおいおい
ホント JSON を返したいときに to_json_without_hoge メソッドを
呼ばなければならず。

んで、ウソ JSON の正体は JavaScript のハッシュオブジェクトではないかという
衝撃、というかなんで最初っからわからなかったんだろう的なことに気づき
to_javascript というメソッド名でHashクラスに追加としたほうが適切かなと。


134:nobodyさん
10/02/28 16:34:45
うざい

135:nobodyさん
10/02/28 18:53:34
どっちもJSONだよカス

136:nobodyさん
10/02/28 19:26:29
だからわざわざrailsから外れようとするなら
rubyで自作しろって話ですよ。

極小プログラムに挑戦したら?

137:103
10/02/28 19:37:32
うざくてすまん。
今となっては、
「それじゃあ、JSONじゃなくてJavaScriptのオブジェクトだよ」ってつっこみがあれば
早々に立ち去ってたと思うけど。

>> 135
あーごめん。>133は書き間違えだ。囲っちゃわないウソJSONですね。

RFC4627 に"A name is a string."とあるので、やっぱりJSONにはなれない。
あくまでJavaScript。

138:nobodyさん
10/02/28 21:22:34 jks5LGKS
小さなチーム、大きな仕事―37シグナルズ成功の法則
週4日勤務で20時間しか働かない
URLリンク(d.hatena.ne.jp)

139:nobodyさん
10/02/28 21:26:24 jks5LGKS
Ruby on Railsの作者より:高まった生産性を仕事を余計にこなすためではなく自分の将来に向けて使おう
URLリンク(d.hatena.ne.jp)
37signalsでは最近週4日制をはじめた

140:nobodyさん
10/03/01 02:47:50 2KPHCIx/

東京Ruby会議03 の USTリンク集
URLリンク(d.hatena.ne.jp)

141:nobodyさん
10/03/01 04:28:56 2KPHCIx/
demo.redmine.orgはHerokuで動いているらしい
URLリンク(d.hatena.ne.jp)

URLリンク(demo.redmine.org)


142:nobodyさん
10/03/01 09:06:09 FyIKgpnq
東京Ruby会議03は、RailsではなくRubyネタが多かった。
メインのセッションは全部Rails無関係、ワークショップが13並行して
走ったが、その1/3くらいがRailsだっただけかな。

143:nobodyさん
10/03/03 14:43:44
>>127
> ええと、ほんとにトラフィックに困ってるわけでもなく、ベンチもはかってなくて。

ここに誰かつっこめよ。

144:nobodyさん
10/03/03 15:02:44 5KPriEMV
asahi.com(朝日新聞社):Rubyのソースコードを暗号化する「RubyEncoder」を3月8日より販売開始 - 企業リリース - ビジネス・経済
 URLリンク(www.asahi.com)

145:nobodyさん
10/03/04 00:05:48
Ruby会議のセッション酷過ぎ。
昔からだけど。
もう少し人を選べよ

146:nobodyさん
10/03/04 01:23:55 k95Ywz0Z
>>145
?? どのRubyKaigi ??


147:nobodyさん
10/03/04 02:42:26 gHPB2b8/
URLリンク(jp.rubyist.net)
URLリンク(d.hatena.ne.jp)


148:nobodyさん
10/03/04 09:22:29
>>145
具体性がなさすぎるからさっぱり分からない
完全なる荒らしレベルだぞ

149:nobodyさん
10/03/04 09:40:53 gHPB2b8/
リンク?
URLリンク(twitter.com)

150:nobodyさん
10/03/05 06:24:36 Dpsy2gGp
高価な広告枠、営業部隊、オフィス、いや、会議も事業計画もいらない。
昼間の仕事をしながら、初めは週末の数時間を費やすだけで十分だ。
小さな所帯で、シンプルに、迅速に、臨機応変に―それで僕らは成功している。
二つの大陸に散らばった十数人のメンバーだけで数百万人のクライアントを抱えるソフトウェア会社37シグナルズ
URLリンク(www.amazon.co.jp)

151:nobodyさん
10/03/05 07:27:19
十数人のメンバーで数百人のクライアントって全然普通じゃね?

152:nobodyさん
10/03/05 07:28:18
×数百人
○数百万人
だった。

それとも昼間違う仕事をしてるのに成功してる、ってことかな?

153:nobodyさん
10/03/05 07:28:40
cookpadみたいな高負荷サイトって
mongrel_clusterとapacheのProxy balancerで動かしてるの?

教えて! エロイ人

154:nobodyさん
10/03/05 13:29:40
>>150-152
今これ読んでる。

Rails使ってるような人で、起業家(という表現はもううんざりだこの本にはあったがw)になりたいような人にオススメじゃないかな。

基本的には、こんなやり方では無理だいうようなことやって成功した企業というようなはじめ方で
37signals流の小規模な会社の運営の仕方、立ち上げ方を説明している感じかな。

155:nobodyさん
10/03/05 13:33:37
>>153
ちょっとはググレw
いろいろでてきたぞ、該当するのをひとつだけはっとく

「巨大サイトでも普通にRailsで動いてますけど!」クックパッド&カカクコム共催・勉強会の亀レポート - OneRingToFind by 榊祐介
URLリンク(d.hatena.ne.jp)

> Apache2.2、Rails2.0、mongrel_cluster、 mod_proxy_balancer、MySQL 5.0、Tritonn、VMWare ESXi
> この構成で、月間の2億5000万PV、450万人のユニークユーザをさばいています。
> Railsはパフォーマンスが悪いという話をよくに耳にしますが、それでも、この規模のシステムを運用できるという証明にもなりますね。
> 現在、クックパッドは世界のRailsサイト中alexaのランキングで7位になっています。
> また、上位6位までのサイトのPVと比較すると、実はクックパッドよりPVの多いサイトは二つだけになっています。
> (2008年9月21日時点)(比較1・比較2)

156:153
10/03/05 13:55:29
>>155
おお! すごいですね。
昨日、fcgiもlighttpdも上手くいかなくて、
結局、mongrel_cluster、 mod_proxy_balancerになったので
少し不安だったのです。

157:nobodyさん
10/03/05 14:03:12
なんで、今時fcgi?w
とりあえず動かすならPassengerだと思うが、高負荷サイトで実績あるものを知りたいから聞いたんだよなあ

あと、>>155でググったキーワードは「Cookpad Rails」だからなw ググるくせつけろ
それとGoogleなら過去1年間のものだけ、とか表示できるから新しめの情報も入れといた方がいいよ

158:nobodyさん
10/03/05 21:36:31
エンジンエックス使ってるとこないのか?

159:nobodyさん
10/03/06 00:13:44
foursquare URLリンク(foursquare.com) はレスポンスヘッダが nginx だな。
Railsかどうかは知らない(じゃないと思う)
URLリンク(builtwith.com)

160:nobodyさん
10/03/06 02:28:23
railsで大規模サイトってアフォだなw
エンジニア雇う人件費が無駄だろう。

161:nobodyさん
10/03/06 03:30:19 FfMYKyxh
URLリンク(route477.net)

162:nobodyさん
10/03/06 17:29:00
最近個人ではじめたばかりですが、いきなり詰まりました。
プロジェクトに restful_authentication プラグインを追加しようと
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication と入力したのですが、
Plugin not found と言われて追加出来ません。
(無用にリンク張られないように、URLを一部全角に変えてます)
プラグインのURLをブラウザで参照はできます。

カレントディレクトリはプロジェクトのトップ、バージョンは
OS: Win2kSP4
Ruby:1.9.1p378
gem: 1.3.6
Rails: 2.3.5
DB: PostgreSQL 8.4
です。

コレじゃなきゃ困る訳じゃないけど認証機能は必要ですので、
とにかく認証機能を組み込める方法を教えてください。

目的は、認証ユーザと一般ユーザに分け、コンテンツ登録を認証ユーザのみに許可します。
例えば /enter 以下をコンテンツ登録領域としてログインを必要とし、
それ以外の階層を一般領域として閲覧専用で運用するつもりです。

163:nobodyさん
10/03/06 17:47:04 /jqKUDPk
とりあえず script/plugin -v install を付けてインストールしてみる。
HTTPレベルでのエラーならこれでステータスコードが分かるはず。


164:nobodyさん
10/03/06 17:58:58
>>162
そのリポジトリのアドレスは一体どこから来たんだ?

↓検索したらgithubのが公式の最新っぽいが
URLリンク(github.com)
つまり、
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
だな。

gitは必要だと思うが。

165:nobodyさん
10/03/06 18:02:15 FfMYKyxh
URLリンク(msysgit.googlecode.com) 
URLリンク(code.google.com)

166:nobodyさん
10/03/06 18:06:51
rubyは1.8に戻したらいい

167:nobodyさん
10/03/06 20:31:17
>163-165
トン
pluginからだと No such file or directory になってしまうようだ。
ネット参照できてない?
gemからならサクサク参照できるんだけどなぁ。

という訳で、一旦pluginのインストールは断念して、
gemでインストール出来るSaltedHashLoginGeneratorを試してみようと思う。
まだ3つほどのモデルをscaffoldしただけで中身は全然書いてないから、
今のうちなら何でも気軽に試せるし。

168:nobodyさん
10/03/06 20:53:58 /jqKUDPk
HTTPダウンロードしようとして存在しない場合は
#<OpenURI::HTTPError: 404 Not Found>
が出るはずなんだけど、No such file or directory ってことは
ローカルファイルしか見てないのかな。



169:nobodyさん
10/03/06 21:35:58
馬鹿にはrailsは無理。

170:166
10/03/07 01:14:10
せっかくアドバイスしても無視されたわ( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

171:nobodyさん
10/03/07 02:16:04
理解できる知識がなかったんだろう
残念だが、仕方ない。

172:nobodyさん
10/03/07 02:25:05
いろいろ試したけど1.8.7くらいが無難という感じ。


173:nobodyさん
10/03/07 05:31:37
>>172
なんで、
URLリンク(rubyonrails.org)
に書いてあるオススメバージョンを素直に使わない?

174:nobodyさん
10/03/07 06:51:35
pluginの問題なのか、その他の問題なのか切り分けたほうがいいと思うが。
gemなくてpluginでしか入れられないものもあるし。苦労するぞ

175:nobodyさん
10/03/07 06:53:18
そもそもsvnがない、ってことはないよなあ

176:nobodyさん
10/03/07 07:34:47 o/VDIvMP
Git Bash
URLリンク(msysgit.googlecode.com) 
URLリンク(code.google.com)

URLリンク(github.com)
git clone git://github.com/technoweenie/restful-authentication.git restful_authentication

Windows から Git を使う方法
URLリンク(d.hatena.ne.jp)


177:nobodyさん
10/03/07 12:08:34
integrationテストで、600Kbyteのwavファイルをアップロードするテストを書こうとしてるんだけど、
postする前のtempファイルでは600Kbyteあるんだけど、コントローラで受け取ったら41Kbyteになってしまう現象が発生しています。

50MをUPすると180Kになってる。1KはOK。ファイルの頭は一緒で、後ろが丸々消えている。

ここを参考にやってみたが現象変わらず。。
URLリンク(d.hatena.ne.jp)
integration_test_file_upload_deep.rb

実際にブラウザから動かしてみるとちゃんと動くんだけどなー。何かコツがあるんでしょうか??

テスト側
uploaded_data = fixture_file_upload("/files/" + @filename + ".wav", "audio/x-wav", :binary)
p uploaded_data
p uploaded_data.size
multipart_post "mastering/upload", { "uploaded_file" => {"file"=> uploaded_data} }

出力
#<ActionController::TestUploadedFile:0x49c7a30 @content_type="au
dio/x-wav", @original_filename="sample.wav", @tempfile=#<File:C:/DOCUME~1/ADMINI
~1/LOCALS~1/Temp/sample.wav.3096.1>>
622736

コントローラ側
file = params[:uploaded_file]['file']
p file
p file.size

出力
#<File:C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/CGI.3096.1>
41077

178:nobodyさん
10/03/07 12:40:47 bTh3OUFm
>>177

URLリンク(dev.rubyonrails.org) …… 1.xの時代からずっと
バグったままなのか。

チケット最下部にあるプラグイン
URLリンク(projects.jkraemer.net)
いや、今はgithubにあるな。
URLリンク(github.com)
これか。試してみた?

URLリンク(rails.lighthouseapp.com)
ここにあるパッチも↑に関係しているらしい…
ちょ、当たってないのにresolvedかよ。


179:nobodyさん
10/03/07 19:22:58 o/VDIvMP

URLリンク(docs.heroku.com)
URLリンク(docs.heroku.com)

180:nobodyさん
10/03/07 20:15:50 o/VDIvMP

>>91
gem env

181:177
10/03/07 23:45:12
>>178さん

情報ありがとうございます。
とりあえず、動くようになりました。

助かりました!!!

182:nobodyさん
10/03/08 16:59:14
プラグインが不要になった場合
削除するようなコマンドってありますか?

183:nobodyさん
10/03/08 17:13:33 uzrQieSR
./scirpt/plugin --help すれば一発で分かる。



184:nobodyさん
10/03/09 18:23:10 +mVhS0Hu
>>5 のpoormans_cron使ってみてるんですが、プラグインの質問と言うか、
こんなもんなの?という疑問があり質問させてください。

poormans_cronではアクセスごとにThread.start で別スレッド立てて、
登録してある情報をもとに定期ジョブをこなす仕組みなのですが、
登録してあるジョブ内で、トランザクションのブロック中でActiveRecordを使うと、
ジョブは走るものの、ActiveRecordでのupdateが全然反映されないため、
ログを見ると、データの更新直後に
 Mysql::Error: MySQL server has gone away: ROLLBACK
などとあり、ロールバックされているようなのです。

ちなみにトランザクションを使わないと、データを複数更新する際にも最初の1つしか更新されなかったりと
途中で処理が終わったかのようになります。

つまりロールバックも処理が完了しなかったため起きたように見えます。

これもしかして、Thread.start 内でDBつかってもメインスレッドが終了したら、
poormans_cronで新規に立てられたスレッドも終了してしまうとか、そういうことってありますか?

環境はRails 2.3.5, Ruby 1.8.7です

185:184
10/03/09 20:43:47 +mVhS0Hu
ごめん、もしかしたら、自分の書いたActiveRecordでの更新するコードが例外はいてて、
ロールバックされてるだけかもしれない orz

186:nobodyさん
10/03/10 06:38:08 xwhj4Cyb
Profile New Doc
p0t
ガチ鬱プログラマー日記
>>5
URLリンク(docs.komagata.org)
cron - rubygems
% crontab -l
30 17 * * 2,5 GEM_HOME=/opt/local/lib/ruby/gems/1.8 /Users/hogehoge/bin/ticket_alert.rb
cronで実行するときはGEM_HOMEを指定するのがコツみたい。

187:nobodyさん
10/03/11 09:00:40
なんでそうなるねん

188:nobodyさん
10/03/11 18:59:49
>>186
GEM_HOME の前に PATH の問題だろう。

189:184
10/03/11 23:52:00
poormans_cronプラグインの方でエラー出たらログるようになってたのでROLLBACKされる原因を調べたんですが、
 A copy of (自作モジュール) has been removed from the module tree but is still active!
自作のコード部分で上記のエラーが出てました。

developmentモードだけで起こるようで、config/environments/development.rb にて
 config.cache_classes = true
すると一応はエラーでないみたいなんですが、設定通り開発しにくくなります。(ファイル編集後に自動で読み込んでくれないため)

script/consoleやコントローラーから呼ぶと普通に動くんでお手上げ状態。
Railsの多分キャッシュの挙動回りの問題だとは思うんですが、
時間なくてこれ以上原因を追い切れないのですが一応報告まで。

190:nobodyさん
10/03/11 23:56:08
WindowsXP sp3
ruby-1.9.1-p378-i386-mswin32
を使ってRailsやろうとおもったのだが
ruby script/server
をやると「msvcrt-ruby18.dllが見つからない」というエラーが出る
msvcrt-ruby18.dllってRuby1.8系のDLLだよな?
なんで、こんなもん参照してるんだろ?

エラーメッセージは出るけどRails動いてるっぽい・・・
なんか、すげー気持ち悪いんだけど、この環境でOKなのか?
そんなわけないよな・・・・

191:nobodyさん
10/03/12 00:01:44 yvt/nZcG
なんか1.8向けの拡張ライブラリのバイナリ入れてるんじゃないの?
DBまわりとか。


192:nobodyさん
10/03/12 00:16:13 i6uxubwz
>>191
いちおうインストールの手順書いておく

@
URLリンク(www.garbagecollect.jp)
からruby-1.9.1-p378-i386-mswin32.zipをDL
適当なディレクトリに解答してパスとおす

A
gem update --system
したら、各種DLLがないといわれたので
適当にDLしてつっこむ(どこからDLしたか忘れたのがいたい)
gem update --system完了
gem install rails
ついでに
gem install mongrel

B
rails test
したらIconv.dllがないといわれたので
URLリンク(free.pjc.co.jp)
からWindows 版 日本語文字追加+Gvim文字処理追加プログラム(iconv.dll)をDL
rails test完了
ruby script/server で現在に至る




193:nobodyさん
10/03/12 04:33:52
Railsは1.8.7で動かしませう

194:nobodyさん
10/03/12 06:34:25
>>190
何故あなたが、1.9.1を選んだか理由はそれらのレスからだけではわからないが、
もしRuby初心者だとしたらまずはRuby1.8.7を選んでおきましょう。

あと、RubyGems 1.3.6ではRails 2.3.5がエラーがでるとかの情報もチラホラ見かける


(1.9.1にすすめるのはRails3安定してからでも遅くないよね)

195:nobodyさん
10/03/12 07:33:40
初心者スレでやれ

196:nobodyさん
10/03/12 16:17:25
馬鹿にはrailsは無理。

197:nobodyさん
10/03/13 03:02:40
はまってしまって、しかしどこに聞けばよいかわからないので、ここに書き込んでみます。

active_scaffold のアプリのテストを rspec の autotest しようとしていま
すが、spork経由(--drb)で実行したときにエラーになってしまいます。
sporkを通さず直接実行した時は大丈夫なのです。

rails-2.3.5
spork-0.8.1
rspec-1.3.0
activescaffold git-trunk f99b89d67aec5b8d7cb6e739b43b97569d29c54e

再現手順は以下のようになりました。
================================
# 必要gemのインストール
gem install rails rspec rspec-rails spork

================================
(続く)

198:197
10/03/13 03:04:21
(続き)
# サンプルアプリ
rails test
cd test
./script/plugin install git://github.com/activescaffold/active_scaffold.git
./script/generate rspec
spork --bootstrap

./script/generate model person name:string
rake db:migrate
rake db:test:clone_structure

cat - > app/controllers/people_controller.rb <<EOF
class PeopleController < ApplicationController
active_scaffold :person
end
EOF

mkdir spec/controllers
cat - > spec/controllers/people_controller_spec.rb <<EOF
require 'spec_helper'

describe PeopleController do
it "should be success" do
get :index
response.should be_success
end
end
EOF
(続く)


199:197
10/03/13 03:06:20
(続き)
# sporkデーモン起動
spork&

================================
# sporkなしの実行 => SUCCESS
$ spec spec
.

Finished in 0.237325 seconds

1 example, 0 failures
================================
(続く)

200:197
10/03/13 03:08:01
(続き)
# sporkで実行 => FAIL
$ spec spec --drb
F

1)
NoMethodError in 'PeopleController should be success'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
/tmp/test/vendor/plugins/active_scaffold/lib/extensions/generic_view_paths.rb:11:in `find_template'
/tmp/test/vendor/plugins/active_scaffold/lib/extensions/action_controller_rendering.rb:13:in `render'
/tmp/test/vendor/plugins/active_scaffold/lib/active_scaffold/actions/list.rb:30:in `list_respond_to_html'
/tmp/test/vendor/plugins/active_scaffold/lib/active_scaffold/actions/core.rb:130:in `send'
/tmp/test/vendor/plugins/active_scaffold/lib/active_scaffold/actions/core.rb:130:in `respond_to_action'
/tmp/test/vendor/plugins/active_scaffold/lib/active_scaffold/actions/core.rb:128:in `respond_to_action'
/tmp/test/vendor/plugins/active_scaffold/lib/active_scaffold/actions/list.rb:25:in `list'
/tmp/test/vendor/plugins/active_scaffold/lib/active_scaffold/actions/list.rb:8:in `index'
/tmp/test/spec/controllers/people_controller_spec.rb:6:

Finished in 0.038601 seconds

1 example, 1 failure

================================
(続く)

201:197
10/03/13 03:10:59
(続き)
いろいろ調査して
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_view/paths.rb
の50行目の
load_path["#{template_path}.#{format}"]

あたりでsporkで実行した場合のみエラーが発生してるらしいことがわかりま
したが、どうすればいいのかわかりません。

何か原因などわかる方いらっしゃらないでしょうか?
よろしくお願いします。

202:nobodyさん
10/03/13 11:32:22 FKL7tzBa
___ On Cloud - A StormBrew Project
URLリンク(oncloud.org)

Heroku
URLリンク(heroku.com)


203:nobodyさん
10/03/13 16:50:13
>>197

再現したけど原因がわからない。
なぜか find_template が2回呼ばれてるのは分かった。

1回め:
pathset(self) が [ "app/views" ]
template_path が "people/list"

2回め:
pathset が [ "vendor/plugins/active_scaffold/frontends/default/views" ]
template_path が "list"




204:nobodyさん
10/03/13 20:20:28
>>202
On Cloudてちょっとしたデモ公開用に使えるホスティングサービスみたいなものか。

On Cloudで使っているCloudBridgeつーRubyGemsが気になるがなんだこれ
stormbrew's cloudbridge at master - GitHub
URLリンク(github.com)

205:nobodyさん
10/03/14 13:58:40 Wv8eUzH+
つくば国際会議場
URLリンク(www.epochal.or.jp)

学術総合センター
URLリンク(jigyou.zam.go.jp)

国立オリンピック記念青少年総合センター
URLリンク(nyc.niye.go.jp)

206:nobodyさん
10/03/14 23:18:23 Wv8eUzH+
ZFは疎結合なフレームワーク
URLリンク(rhiz.jp)

207:nobodyさん
10/03/15 00:06:59
関連リンクを貼ってくださるのは結構なのですが、
Railsとほぼ関係ないのを張られても困ります。

もしかして自動投稿botみたいなの常駐してる?

208:197
10/03/15 01:13:52
推奨されていないようですが、古い spec_server を使えばとりあえず対象の
テストはうまくできるようなので、当面はこちらを使ってみようかと思います。

URLリンク(github.com)


209:197
10/03/15 02:07:42
>>208
完全に勘違いで、きちんと実行できていませんでした。
spec_serverの件は参考にしないでください。
どうもすみません...


210:nobodyさん
10/03/16 13:43:54
>>209
結局、原因はなんだったんですか?
参考までに聞きたい

211:nobodyさん
10/03/16 15:38:43 U7nOeaqC
you also have a choice of Ruby VM between Ruby REE 1.8.7 and Ruby MRI 1.9.1. And yes, you can run Rails 3 too!

URLリンク(blog.heroku.com)
URLリンク(docs.heroku.com)
URLリンク(docs.heroku.com)


212:197
10/03/16 16:57:34
>>210
失礼しました。まだ解決していません。
今回のテストではsporkを利用するのをあきらめています。
そのうち時間ができたら、sporkプロジェクトにissueとして問い合わせて
みたいと思っています。

213:nobodyさん
10/03/16 19:02:04
sporkってなんだろう?

214:nobodyさん
10/03/16 19:35:19
初心者質問ですいませんが、どなたか教えてください。

erbで以下のようにやってて、

var data = [
<% @histories.each do |history| %>
['<%=h history.ym %>', <%=h history.balance %>],
<% end %> ];

意図としては、このように出力したいです。

var data = [
['2010/01/01', 10000],
['2010/02/01', 13000],
['2010/03/01', 16000],
['2010/04/01', 21000]];

で、これをjqplotに食わせてグラフを表示しようとしています。

問題は、最後の要素にカンマが付いてしまうことで、

var data = [
['2010/01/01', 10000],
['2010/02/01', 13000],
['2010/03/01', 16000],
['2010/04/01', 21000],];

最後だけカンマを付けないようにするって、うまいやり方はないでしょうか?

railsなら何か綺麗なやり方があるのではないかと思いました。


215:nobodyさん
10/03/16 19:46:00
Railsと関係ないやん。強引に結びつけるなよ

216:nobodyさん
10/03/16 20:35:07
Railsをこれから学ぼうと思った人のための本とサイトを紹介してくれ
Rails1系の情報があまり役に立たなかったり
Rails2系の情報が少なかったりでかなり、混乱中。

入門書かってきてRails1系の情報を元に書いてあると
>ruby script/generate scaffold foge
の段階で躓くんだよな、listとか無いし
下手すると、
>rails foge
の段階で、DBの設定なんか変とかで、躓くかもな

217:nobodyさん
10/03/16 20:55:43 U7nOeaqC
URLリンク(tobysoft.net)

218:nobodyさん
10/03/16 21:02:10 R5bAJghP
Rails 2.0.2 は 5 行でアプリ雛形作成/起動ができる!
URLリンク(youichi-kato.cocolog-nifty.com)
$ rails todo
$ cd todo
$ ruby script\generate scaffold Todo title:string body:text done:boolean due:datetime
$ rake db:migrate
$ ruby script\server

219:nobodyさん
10/03/16 21:05:37 R5bAJghP
InstantRails で 簡単 Ruby on Rails 体験
URLリンク(omakase.ninpou.jp)


220:nobodyさん
10/03/16 21:15:23 U7nOeaqC
Rails 2.0についての概要
URLリンク(www.shoeisha.com)


221:nobodyさん
10/03/16 21:51:30 U7nOeaqC
[Ruby]40秒で作るRailsアプリ
URLリンク(d.hatena.ne.jp)


222:nobodyさん
10/03/16 21:59:22
>>217-220
ありがと、ざっと見ただけども、いくつか解らなかったところが理解できたよ。

Railsは変化(進歩?)が早すぎて、ついていくのが大変そうだなぁ
gem使って普通にインストールできるのが最新版の2.3.5ってことは
これからはじめる人間は2系でがんばれってことでいいんだよね

Rails3の話もちらちらと見かけるようになったけど
なんか、また大きく変わりそうだね(-_-)

223:nobodyさん
10/03/16 22:55:48
>>214
A: 数を覚えておいて
<%- size = @histories.size -%>
ループ内の区切りのコンマの出力判定に使う。

B: Rubyレベルで出力を組み立ててjoin(',') したものをERBに吐く。

くらいじゃね?


224:nobodyさん
10/03/17 08:03:27
>>223

ありがとうございます。


225:nobodyさん
10/03/17 08:31:26
>>216
現時点での初心者向け書籍のオススメは以下ではないかと。Ruby初心者スレみたいにテンプレに入れとけよ、もう

↓まずこれ(Rails 2.3対応)
Head First Rails ―頭とからだで覚えるRailsの基本
URLリンク(www.amazon.co.jp)

↓次点でこれ
・RailsによるアジャイルWebアプリケーション開発 第3版版 (1版2版買うと対応バージョンが古いので注意)
URLリンク(www.amazon.co.jp)


あとは、逆引き系も実際に開発では使える(古くなりつつあるがまだ使える)

・Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応
URLリンク(www.amazon.co.jp)

・Railsレシピブック 183の技
URLリンク(www.amazon.co.jp)


webサイトだと公式のガイドは便利。ちょっとしたわからんことはまずこれ見たら大体すむ
Ruby on Rails guides
URLリンク(guides.rubyonrails.org)

もしRuby初心者の場合は、初心者スレのテンプレもよんでください。参考書籍とかあります。

Ruby 初心者スレッド Part 35
スレリンク(tech板:2-3番)

ただ、もしRuby初心者ならいきなりRailsはキツイだろうなあ・・・

226:nobodyさん
10/03/17 10:39:05
英語知らない人が、英文字のクロスワードするようなもんだからな。


227:nobodyさん
10/03/17 19:41:40
個人的に必携だと思うのはRailsではなくRuby言語のハンドブック関係。
>223の技なんかも配列操作見ればすぐに思いつく。

228:nobodyさん
10/03/17 20:17:53
>>214

いまさら思い出したが、
var data = [
<%= render
:partial => 'history',
:collection => @history,
:spacer_template => 'comma' %>
]
なんてことが出来た気がする。

_history.html.erb なんかの中身はご想像通り。


229:nobodyさん
10/03/17 20:19:04
@history じゃなくて @histories か。


230:nobodyさん
10/03/18 17:26:49 0aHKQY+F
Full Book Now Available For Free!
URLリンク(blog.rubybestpractices.com)

URLリンク(sandal.github.com)


231:nobodyさん
10/03/22 09:03:51 6b5ODXHJ

Oh!Happy.ORG Blog ? VMWareFusion3の Ubuntu9にRuby on Railsをインストール
URLリンク(ohhappy.org)
VMWareFusion3.02にインストールした Ubuntu9.10にRuby on Railsをインストールしました。
Ruby on Railsのインストールは、システム管理から「Synaptic パッケージマネージャ」で

「rails」と「sqlite3」を検索してインストールするだけで簡単に出来てしまいました。


232:nobodyさん
10/03/22 11:06:55
Rails 2.2.3……


233:nobodyさん
10/03/22 11:10:13
よく見たらMacか。
Ubuntu入れて2.2.3使うくらいなら標準で入ってる2.2.2でもいいような。


234:nobodyさん
10/03/22 15:00:27
Ubuntu9.10は2.3.5がはいっている。
9.04とかんちがいしてんな

235:nobodyさん
10/03/22 16:50:03
てゆうかgemで入れろ。

236:nobodyさん
10/03/22 18:09:20
マカってホント情報弱者だな。

237:nobodyさん
10/03/22 20:57:53 6b5ODXHJ
URLリンク(www.ustream.tv)

238:nobodyさん
10/03/22 20:59:34 6b5ODXHJ

URLリンク(www.ustream.tv)


239:nobodyさん
10/03/22 23:10:51 6b5ODXHJ
syntax highlight
URLリンク(coderay.rubychan.de)
URLリンク(agilewebdevelopment.com)
URLリンク(agilewebdevelopment.com)

240:nobodyさん
10/03/23 02:24:01 JNKCb4ce

syntax highlight
gem install coderay
URLリンク(coderay.rubychan.de)
URLリンク(coderay.rubychan.de)


241:nobodyさん
10/03/23 22:53:01 7ayedmoS
Ruby on Rails で2つのテーブル間に複数の外部キーがあった場合って参照先の
設定は一つしかできないですか?
例えばEmployeesテーブルとManagementsテーブルがあって、
Managementテーブルにjoshiとbukaって項目が欲しいとします。
これは両方ともEmployeeテーブルのidを外部キーとしたいんですが、1つだったら
涙をのんでManagementテーブルをemployee_idとbukaって項目にして
Managementsにbelong_to、Employeesにhas_manyすれば良いけど、両方を
関連づける事ってのは出来ないんでしょうか?

242:nobodyさん
10/03/23 23:14:09
普通にできると思うけどできなかったのか?
一人の労働者には一人の上司しかいないというルールがあるなら
自己結合でいいと思うけど。

243:nobodyさん
10/03/24 14:03:17
その上司の上司も普通は上司だけどね。
課長の下で働いてる従業員から見れば、部長も本部長も常務も社長も上司な訳で。

244:nobodyさん
10/03/24 22:18:51
>>243
いや、その考え方は普通じゃないから・・・
少なくとも開発者としては

245:nobodyさん
10/03/25 00:20:25
バーカwww

246:nobodyさん
10/03/25 03:03:08
なるほど、言い返せなくなった敗北宣言か

247:nobodyさん
10/03/25 13:26:07
全社員の直属の上司の関係を網羅すればいいじゃないのw
めちゃくちゃ大変かもだがw

零細なら10行ぐらいで描けるだろw

248:nobodyさん
10/03/25 14:35:36
再帰も知らんとか、話がかみ合わなくて当然だな

249:nobodyさん
10/03/26 00:44:32 RghVkUd3
Migrating to Rails 3 for Heroku Bamboo | #nofail

URLリンク(blog.nofail.de)

250:nobodyさん
10/03/26 02:38:07
再起追いかけてるうちにループしまくってメモリリークしてるわな。

つ 正規化

251:nobodyさん
10/03/27 01:01:40
親IDを持つとか正規化の初級くらいだよ

252:nobodyさん
10/03/27 19:41:46
このスレにいるルビ厨のアホを引取りに来いよw
スレリンク(php板:447番)

253:nobodyさん
10/03/28 00:08:19 OyiQMZaw

37signalsのBasecampはXeon 2.4GHz dual,メモリー2Gのサーバー2台で40万リクエスト/日を処理している。他にも43Things.comでも20万リクエスト/日の処理をこなせている
URLリンク(itpro.nikkeibp.co.jp)

254:nobodyさん
10/03/28 02:00:40
普通大規模って100万pvぐらいだろう。
鯖100台とかrorで運用してる命知らず居ないの?

255:nobodyさん
10/03/28 02:22:32
100万PVで100台ってどういう計算だ?

256:nobodyさん
10/03/28 02:32:09 OyiQMZaw
RORのままアーキテクチャの変更で10000%高速化したとな。
URLリンク(b.hatena.ne.jp)

ミニブログの Twitterのstats(統計)データ。
URLリンク(kaworu.jpn.org)
- 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

Twitter創始者が語るWeb 2.0の要諦 − @IT
URLリンク(www.atmarkit.co.jp)
Odeo内で始めた小さなプロジェクトが「Twitter」だ。
Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。

257:nobodyさん
10/03/28 13:41:25
何回それ貼れば気が済むんだい?

258:nobodyさん
10/03/28 14:42:17
キャッシュくらいしろ
もうスパムじゃんかよ。自分のブログでも作ってやれ

259:nobodyさん
10/03/28 22:02:44
railsやるならcoreserverとsakuraどっちがおすすめ?

260:nobodyさん
10/03/28 23:07:41
>>259
どっちも駄目

海外のVPSサーバをおすすめする

261:nobodyさん
10/03/29 00:07:14
railsを使った会社のWebサービスのパフォーマンスが悪くなり、改善を任されました。
症状としては、サイト内のリンクをクリックするとすぐにレスポンスが返るときと長時間待たされる時があります。
ネットで調べてみるとテーブルロックが怪しい、というところまでは分かったのですが改善方法がわかりません。
railsアプリ内でトランザクションを使ってる箇所を修正すればいいのでしょうか?
曖昧な質問ですいませんがアドバイスを頂けないでしょうか。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4901日前に更新/201 KB
担当:undef