【Ruby】Ruby on Rails Part9at PHP
【Ruby】Ruby on Rails Part9 - 暇つぶし2ch39:nobodyさん
10/02/21 17:49:03
そのパラメータに変なもん指定されて、
SQLがエラーになるよ。
カラム名丸出しもカッコ悪い。

40:35
10/02/21 19:27:35
>>39 確かに、SQLインジェクションはまったく考慮してませんでした。

でも、カラム名丸出しってカッコ悪いんですか?
少なくとも初心者の自分が触れる書籍なんかのコードは大体カラム名丸出しというか、
そもそも FormBuilder がそういう HTML 吐いちゃうから当たり前なんだと思ってました。



41:nobodyさん
10/02/21 19:45:31
カラム名丸出しはカッコ悪くないよ。
でもそう思っちゃう人もいるってことで。

42:nobodyさん
10/02/21 19:47:26
>>40
:orderに入る部分はエスケープされるんだっけ。
そしたらSQLインジェクションの心配はないと思うんだけど、
カッコ悪さに関しては、URL中にSQLの一部が出てくるのがなんか気持ち悪いなあと思ったから。

43:nobodyさん
10/02/21 20:00:49 wFIWx53c
limitに渡る部分はいつぞや脆弱性として報告されて
( URLリンク(secunia.com) )、修正が入ってる。

orderについては↓でrejectされている、ようだ。
URLリンク(dev.rubyonrails.org)


44:35
10/02/21 21:18:26
>>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さん
10/02/21 22:13:12
というか、scaffoldから卒業して自由に作るのが楽だし、楽しいんじゃない?



46:nobodyさん
10/02/21 22:17:43
名前空間付きモデルやろうとしたことあるけど、
結局DBのほうは名前空間持てないのでややこしくなるだけだと思った。
なるべくconventionに従ってややこしいこと避けるならやらない方がいい。
どうしてもやるのなら migration を書き換えるか set_table_name

47:nobodyさん
10/02/21 22:21:17
名前空間とテーブル名は必ずしも合ってなくていいと思うけど。
というか合わせられるとかえって困ることも。

例えばusersテーブルを考えると、ユーザーが自分で操作する画面と、
管理者が操作する画面は別に作る可能性とかある。管理者の方が内部データを操作できるとか。
テーブルと画面が必ず1:1なら、言うとおりでもいいかもしれないけど。

48:35
10/02/21 22:54:30
>>45 確かにそれもわかるんですが、設定よりも規約の
規約がわからない段階だと scaffold で助かることもあります。

あくまで規約にのっとったうえでの自由が Rails 的な楽しみ方なのかな
というのもありますし。


と、scaffold の件は規約にはなってない(テーブル名は任意で、どうでもいいよそんなこと)
ってことなんですかね。。
覚えることがいっぱいで書籍の範疇からはずれたとたんにあたふたしてます。

>>46, 47
名前空間はMVCで言うところのVCよりなところで分割してみたいってのが
あってやってみました。なんか一階層の URL が寂しかったってのもあり。。

users テーブルの例も、複数の UI を用意することはあっても、結局触るモデルは1つ
ってことですね。
テーブル名が衝突するようなこともまずなさそうですし現行のままで行ってみます。


49:nobodyさん
10/02/22 00:21:22
>>48

>覚えることがいっぱいで書籍の範疇からはずれたとたんにあたふたしてます。

scaffoldに頼っている限りは、そうなってしまうよ。
一通り慣れてきたら、scaffoldで自動生成せずにアプリを作るようにしてみると
自分が理解していなかった部分が浮き彫りになるし、
それで分からない事をその都度調べていくと、すごくレベルアップできるよ。



50:35
10/02/22 07:01:04
>>49 > scaffoldに頼っている限りは、そうなってしまうよ。

そのせいですかね??
scaffold を使えば10分でブログができる的な謳い文句はよく見ますが
実際は、それだけで作ったブログなんて誰も使わないわけで、それぐらいの
頼りなさが、ほんとに土台なんだなって、それぐらいはわかります。
最近は、単純にMVC一括でルールに従ったファイル名のファイルを作ってもらう
だけのジェネレータ的な使い方で、あたふたは単に自分の能力の問題、っていう認識です。

モデル名の複数形がテーブル名っていう規約はわかってるんですが、
今回の件のように、モデル側は名前空間を含めないテーブル(hoge)を参照しようとして
マイグレーションファイル、test/unit 以下は名前空間を含めた
テーブル(my_namespace_hoge)を参照しようとするコードを scaffold が吐く
っていうのは、何か知らない規約がある、もしくは環境が変、とかそれなりの
理由があるのかな?と思ったわけです。

名前空間つけたときって、どういうフォルダ構成になるんじゃろって、scaffold で
気軽に知れたのまではよかったんですが、scaffold 直後の rake test:units で、
一発じゃ通らないんで、あれれ?と。

51:nobodyさん
10/02/22 12:43:48
名前空間付きscaffoldってどっかにプラグインなかったけ?今も動くかわからんけど。

俺の場合、管理者用の URLリンク(~~~) 以下用のコントローラー作るときは
 script/generate scaffold admin::hoge ってやるけど、
モデルは階層化いらんから
 script/destory model admin::hoge
ってすぐ消してる。

もちろんコントローラーをadmin::hogeモデルからhogeモデルへの依存へ書き換えは必要

52:nobodyさん
10/02/22 16:08:14
cukeやRspecなどのTDDやBDDからプログラム作りはいった方がいいんじゃない?

53:35
10/02/22 20:19:06
こだわるような内容じゃないってのは承知の上ですが何回もレスしてすいやせん。

scaffold に限らず、ジェネレータが吐くコード = 標準的(規約)
な考えがあるので、整合性がないように「見える」と疑問がわきまして。
みなさんのレスから察するに、特に大きな理由などはなさそうなので
たまたま名前空間の機能追加中に現れた現象ってことでスルーしてみます。
Rails3になったら、何事もないようになってるのかなー。

本題に対する回答ではないですが、モデルだけ消す方法から、cuke,Rspecという
知らなかったキーワードまで参考になりました。ありがとうございました。

54:nobodyさん
10/02/22 20:43:45 SMf+P9Hc

rubygems-update 1.3.6 Released
URLリンク(www.ruby-forum.com)

55:nobodyさん
10/02/23 00:05:56 qmMkHKt3
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

56:nobodyさん
10/02/23 00:40:21
前スレでも同じの張ってただろ
いい加減飽きたんだが。

57:nobodyさん
10/02/23 00:43:53 qmMkHKt3

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


58:nobodyさん
10/02/23 01:04:24
親切でやってるのかもしれないけど、
なんの言葉もなく何度もURLを貼られるとむかついてくるのだが

59:nobodyさん
10/02/23 01:19:43
何かしらのコメントを付け加えないと、ただのノイズでしかないよな。


60:nobodyさん
10/02/23 01:24:37 24B872MQ

The Rails 3 Upgrade Handbook
URLリンク(www.railsupgradehandbook.com)


61:nobodyさん
10/02/23 17:54:54 qmMkHKt3

>>30
[Rails] DBに入れた画像を表示する


62:nobodyさん
10/02/23 17:56:23 qmMkHKt3

>>30
[Rails] DBに入れた画像を表示する
URLリンク(d.hatena.ne.jp)


63:nobodyさん
10/02/24 06:06:13 xyBYpSVv


URLリンク(www.hostingrails.com)
URLリンク(www.slicehost.com)
URLリンク(www.linode.com)

The Best Ruby on Rails Hosting Services
URLリンク(antoniocangiano.com)



64:nobodyさん
10/02/24 09:27:57
>>55
ニュースは既出っぽい。だがまとめてくれてありがとう。

65:nobodyさん
10/02/24 19:17:55 xyBYpSVv
Unlearn Your MBA (Entire talk)  
URLリンク(ecorner.stanford.edu)
David Heineimeier Hansson

66:nobodyさん
10/02/25 02:36:33 B4ZAmzpA
レンタルサーバでredmineを構築していたら
dispatch.cgiを実行したところで
これと同じ症状がでてしまいました。
URLリンク(www.redmine.org)

こういう場合ってredmine側の対応待ちでしょうか?

67:nobodyさん
10/02/25 08:25:52
マカってホント情報弱者だな。

68:nobodyさん
10/02/25 09:21:23 aQeZQ3fd
>>66

エスパー求むって?
とりあえず、構築手順くらい書こうや。


69:nobodyさん
10/02/25 11:35:37
分かる人だけ返事すればいいと思うよ

70:66
10/02/25 12:03:07 B4ZAmzpA
>>68
基本的にはこれと同じ手順で構築しました。
URLリンク(d.hatena.ne.jp)

私の環境では
rubygems 1.3.5
rails 2.3.5
sqlite3
を利用しています。

また、script/server -e production
を利用して実行した場合には正常に動作するのですが
dispatch.cgi経由で実行した場合にのみ
URLリンク(saifis.net)
これと同じように
`__send__': undefined method `env_table' for nil:NilClass (NoMethodError)
というエラーが出てしまいました
RailsのCGIでの起動プロセスに問題があるように見えました

71:nobodyさん
10/02/25 12:55:00 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さん
10/02/25 14:40:20 mPH3bNCl
質問

filter_parameter_logging :password でリクエストパラメータ中の生パスワードが
ログファイルに書き込まれることは防げますが、一方で SQL文 のログとして
パスワードのダイジェストやソルトなどはそのままログファイルに書き込まれますよね。

これってセキュリティ上好ましくないと思うのですが、考えすぎでしょうか?
バックアップメディアも含め、ログファイルの管理をしっかりやれば問題ない?

73:66
10/02/25 14:58:59 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
10/02/25 15:00:52 B4ZAmzpA
あと、少し気になったのですが
action_controller/dispatcher.rbの
def dispatchの上に書いてある
# DEPRECATE: Remove CGI support
この文言
これってRailsでのCGIサポートはしないという意味でしょうか?

75:nobodyさん
10/02/25 15:08:09 WAzbGxTX
>>72
運用環境のログレベルでは、実施したSQLまでは出力してないんじゃね?


76:72
10/02/25 15:51:31
>>75
ありがとうございます。
調べたところ、ログファイルの SQL は DEBUGレベルで書き出されており、
production環境のデフォルトログレベルは INFO のため、ご指摘の通り運用環境の
ログには SQL まで書き出されないようになっていました。

production環境で動かしたことのない初心者の早とちりでしたorz

77:nobodyさん
10/02/25 18:36:51
>>74
すでに非推奨になってたかと思う。
Railsアジャイル本でも「CGIいまどき何いってんのハァ?」って感じだったと思う

78:nobodyさん
10/02/25 18:41:37
ちょっと質問があります。

ActiveSexで複数のレコードを同時に更新するスマートな方法はないもんでしょうか?

以下は hoge が1のものだけ2にしようとしているのですが、eachでループ回すのがいいものか?と。
更新できればそれでいいのではと言えばいいのですが、もっと早い書き方があるかと思いまして。

FooBar.find(:all, :conditions => "hoge=1").each{|x| x.update_attributes(:hoge => 2) }

79:nobodyさん
10/02/25 18:43:25
x ActiveSex
o ActiveRecord

悪い、、、缶詰すぎて頭がどうかしてるわ・・・

80:nobodyさん
10/02/25 19:23:05
どんな間違いじゃ

ところでなぜfindをかましてループさせてるのか理由が聞きたい
特に理由がなければ、直接updateすればいい
対象レコードが数千・数万になるだけで相当遅くなると思うんだけど

81:66
10/02/25 21:42:49 B4ZAmzpA
>>77
そうでしたか、遅くて評判悪いのは知ってたんですが
レンサバなのでプロセス常駐させる訳にもいかず、CGI経由で動かせればと思ったのですが
仕方が無いのでちょっと他の方法を模索してみることにします。
ありがとうございました。

82:nobodyさん
10/02/25 22:07:40 aQeZQ3fd
update_all に条件書けるぞ。


83:nobodyさん
10/02/26 00:41:36
返事がないのはぶっ倒れたんじゃないだろうな

84:nobodyさん
10/02/26 01:21:34
専鯖借りれば。共有鯖で動かすのは迷惑としか。

85:nobodyさん
10/02/26 21:16:52 Hdg3KYgD
初心者で悪いんですが、will_pagenateの使い方があまり分からない。
apiのドキュメントって何処にあるか、教えていただけないでしょうか。

86:nobodyさん
10/02/26 21:32:12
>>85
俺が見てるのはここだけど
URLリンク(gitrdoc.com)

87:nobodyさん
10/02/26 21:41:19 MYtnQqym
つーかさ、gem入れるときに生成オフにしてるとしても、
入れればついてくるんだから必要になったらrdocくらい生成しなよ。
面倒ならソースのコメントにまんま載ってるし。


88:nobodyさん
10/02/27 00:54:37 dI5jXaaO
自作サーバカンファレンス
URLリンク(el.jibun.atmarkit.co.jp)

ランニングコストは家賃が15万円、回線費用が5万円、電気代が20万円で、合計の月額費用は40万円。年間に換算すると480万円で、
当初の2880万円から大幅なコスト削減を実現した。
URLリンク(bb.watch.impress.co.jp)

89:nobodyさん
10/02/27 01:59:15 dI5jXaaO

インテル初となる6コア搭載のプロセッサは、4ソケットサーバー対応で最大24コアで稼動することが可能で、
32の DIMM スロットを備えるデルの PowerEdge R900は、最大256GBのメモリを搭載できる。
URLリンク(japan.internet.com)

最新のクアッドコア AMD Opteron プロセッサ 8360 SE(2.5GHz)を採用。「DL785 G5」は最大で8基(32コア)、「DL585 G5」は最大で4基(16コア)搭載可能。
「HP ProLiant 用16GB メモリキット」に対応することで「DL785 G5」で512GB、「DL585 G5」で256GB のメモリを搭載可能となっており、大規模なシステムの構築を可能としている。
URLリンク(japan.internet.com)

90:nobodyさん
10/02/27 02:10:20 dI5jXaaO
Googleサーバの高さは、3.5インチ(約8.8cm)で、データセンター用語で言えば2Uである。
これには、2基のプロセッサと、2基のハードドライブ、そしてGIGABYTE製マザーボードに取り付けた8つのメモリスロットがある。
URLリンク(japan.cnet.com)

91:nobodyさん
10/02/27 03:40:22
Railsアプリケーションが参照するRubyのバージョンはどこで設定されてるのでしょうか?
自分の環境にはRubyがいくつも入ってるため、アプリケーションごとに個別にRubyを指定したいのですがどこで指定すればいいのか分かりません。

92:nobodyさん
10/02/27 03:46:08
逆だろ、
MOONGIFT: ≫ 複数のRubyを切り替えて使いこなす「rvm」:オープンソースを毎日紹介
URLリンク(www.moongift.jp)

を使って、環境毎に切り替えるべきだろ


93:nobodyさん
10/02/27 05:12:01
そんなゴミサイトはどうでもいい
Railsアプリケーション側で使用するRubyへのパスを指定したいと言っている。

94:nobodyさん
10/02/27 05:38:26 EflRYtaW
(3)PATHで指定されたフォルダにある実行ファイル(前に書かれているフォルダが優先)
URLリンク(itpro.nikkeibp.co.jp)


95:nobodyさん
10/02/27 05:42:40
>>93
デプロイしたら手動で環境書き換えるわけか、アフォスw

96:nobodyさん
10/02/27 05:57:26
>>93
Railsアプリケーションってどうやって動いてんの?
Rails が Ruby を reuire してんの?

ぷw

97:nobodyさん
10/02/27 07:53:40
>>91
rails --help

98:nobodyさん
10/02/27 15:45:09
>>81
一応、レンサバでCGI駆動で動かしている人はチラホラいる。ほんとに人少ないスタートアップ時のみ用だそうだが。
前スレあたりに出てたコピペ運動会の人も、最初はCGI駆動だったらしい。

やり方は詳しく知らんから、ググレとしか。ググル時は、レンサバ名も一緒に入れたほうがよいかと思われ。
有名なレンサバならトライしてる人のレポートはある。
逆に言うなら、上手く行ってないレンサバは避けるが吉。

あといきなり契約するんじゃなくて、必ずお試し期間で試してな。
まあ実際動かしても多分かなり重いんで

99:78
10/02/27 15:55:34
>>80 >>82
ありがとう。
findしなくてもupdate_allてこれて条件式付きでいけるのか、本当だ引数にconditionsってあるな!
試してみるっす。

さんきゅーさんきゅー!!

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
適当なディレクトリに解答してパスとおす


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


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アプリ内でトランザクションを使ってる箇所を修正すればいいのでしょうか?
曖昧な質問ですいませんがアドバイスを頂けないでしょうか。

262:nobodyさん
10/03/29 00:12:44
>>261
いくらなんでも分かるわけないだろ!

263:261
10/03/29 00:20:20
ですよねOrz
もうちょい自分で調べて頑張ってみます。
パフォーマンスとか意識するようになると途端に難しくなりますねプログラミングって。

264:nobodyさん
10/03/29 00:28:37
まず全体の解析ツールで時間を計って
どこがネックになってるか特定してから濃い。

まず数字出せ

265:nobodyさん
10/03/29 00:30:22
もちろんテスト駆動開発で開発してるんだろうな?
テストがないコードはレガシーコードだ
そんなアプリなら面倒見られん。

266:nobodyさん
10/03/29 00:37:41
正しく動くこととパフォーマンスは別の次元だよ

267:259
10/03/29 02:12:48
>>260
ありがとうございます。

Linodeとかでしょうか。おすすめがあれば具体的に知りたいです。

268:nobodyさん
10/03/29 03:28:54
>>266
んー、でもパフォーマンスの改善をしようとして正しく動かなくなっちゃったら意味がないわけで。

269:nobodyさん
10/03/29 10:42:33
テストしながらやれよ

270:nobodyさん
10/03/29 12:25:15
だからそういう意味のことを言ってる。

271:nobodyさん
10/03/29 17:05:56
Rails.vim使って開発しているのですが、erbファイルのインデントが変になります。
<%= を使うとなります。
何か設定とか必要なんでしょうか?

272:nobodyさん
10/03/29 23:43:54
>>267
今だと Linode > Slicehost > その他VPS
って感じじゃねーかな、VPSスレとか覗いてみた限り。
Linodeもそうだけど、VPSは西海岸のサーバーを借りるのがネットワーク的に近くていいらしいぞ


ダークホース(?)でherokuはどうだろうか。
有料の最安Koiプランが$15と安めのVPSに切迫してきてる。
Heroku | Pricing
URLリンク(heroku.com)


国内では(というか日本語での)heroku動作事例が少ないな。
ここの人で誰かherokuの有料プラン試して人いる人いない?

273:nobodyさん
10/03/30 00:26:47
距離を考えるなら日本でいいじゃんかよ
海外サーバーを借りることにステータスでも感じてるのか?w

274:nobodyさん
10/03/30 03:36:33
この子はなぜ
  海外→ステータス
と連想してしまうようになってしまったんだろう

275:nobodyさん
10/03/30 05:12:44
わざわざ海外紹介してるからじゃね?

276:nobodyさん
10/03/30 05:23:55
>>273
日本で安価で使えるVPSなりあるなら教えて欲しい。
なにせ事例が少ない

277:nobodyさん
10/03/30 08:17:59
国内は海外ほど安くないので値段だけで考えるなら何もおすすめできない。
でも、2000~3000円出せるなら、国内でもいくつか見つかると思う。

今、自分が使ってるのはこの2つ。
VPSStock(年契約で1980円/月)
お名前.com 2,940円/月

VPSStockはコントロールパネルはなくて、sshでつなくだけ。
コントロールパネルがない分、余計な設定がされていないのですっきりする。
GUIの管理画面がないと何も出来ないという人には無理。

お名前.comはやや値段が高いけど、メモリ1GB、HDD120GBなのでスペックは良いかも。
コントロールパネル付き。
ただし、特定のポートしか外部に公開できない仕様となっている点に注意。
URLリンク(www.onamae-server.com)

他にも国内VPSでググると見つかるけど、使った事ないのでなんとも言えない。


278:nobodyさん
10/03/30 12:17:53
>>274
顔が真っ赤だぞ

279:nobodyさん
10/03/30 14:52:31 EMtnV6bg
Ruby Enterprise Editionインストールで性能改善 - 中国でRuby on Rails

URLリンク(d.hatena.ne.jp)

結論から言いますと、49.3% もメモリ使用率を削減できました!!

280:nobodyさん
10/03/31 05:47:02
なんかror案件からjavaに移行の理由が分かる気がする。ノウハウ無さ過ぎw

281:nobodyさん
10/03/31 08:28:16
環境によるでしょ。
うちの会社では、Javaの案件は全くなくてPHPか、Railsの仕事だけだよ。



282:nobodyさん
10/03/31 08:33:40
Railsなんか仕事で使うんだ・・・

何作るんだ?

283:nobodyさん
10/03/31 11:16:59
うちもweb案件は、phpとRailsだな

284:nobodyさん
10/03/31 23:47:11
自分でノウハウ作れず検索しかできないやつとかw

285:nobodyさん
10/04/01 00:16:28
自社サービスが4つ動いてるけど全部Railsだよ
4つ合わせても広告収入月15万程度だけどな

286:nobodyさん
10/04/01 08:36:16
しょっぱい案件だなw
人独りも喰えないじゃんw

287:nobodyさん
10/04/01 09:54:23
↓↓↓ ここで上場会社のクックパッド役員登場 ↓↓↓

288:nobodyさん
10/04/01 11:13:13 bv2ugYeY
checkboxがチェックされている間だけ一定周期で処理をしたいのですが、
JAVAScriptで定義した変数の内容をRJSなどで変更できません。
どのようにすればよいでしょうか?

index.html
<head>
中略
//<![CDATA[
autoupdate = 0;
//]]>
</script>
</head>
<body>
<div id="timer">
<%= periodically_call_remote(:url => {:action => :add_proc} ,
:condition => "autoupdate == 1", :frequency => 60)
</div id="timer">
<%= check_box(:ctrl_area, :auto_update,
{:onclick => remote_function(:submit => :ctrl_area,
:url => { :action => :change_auto } %>

controller
def change_auto
ここで JavaScriptの変数 autoupdateの値を変更したい。
end

289:nobodyさん
10/04/02 00:53:20 nzxzkACb
スレ違いで申し訳ないんだが
URLリンク(d.hatena.ne.jp)
この記事の下の方にに出てくる

---------------------------------------------
3330 16.6 MB 0.4 MB /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/apache2/ApplicationPoolServerExecutable 0 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/bin/passenger-spawn-server /usr/local/bin/ruby /tmp/passenger.31799
3331 44.5 MB 12.6 MB Passenger spawn server
3368 186.2 MB 22.2 MB Passenger ApplicationSpawner: /var/www/location/html/current
3397 186.3 MB 22.3 MB Rails: /var/www/location/html/current
-------------------------------------------------

みたいのってどうやったら見れるんだ??
なんかコマンドがあるのかな。

290:nobodyさん
10/04/02 01:23:44
caches_pageでキャッシュした画像がどうやっても消けません。
expire_cacheに指定するのはパラメータ等も含めた完全なURLにする必要があるのでしょうか?
アクションまでは指定できるのですが、その後にリクエストごとに変わるパラメータが付いてるために
リクエスト時の完全なるURLを復元するのが難しいのです。

具体的には
URLリンク(hoge)
のようなアクセスで、hogeコントローラのmyactionで作成される画像をcaches_pageしてますが、
expire_cache :controller => hoge, :action => myaction
だけではキャッシュを失効できません。
解決方法は無いでしょうか。

291:nobodyさん
10/04/02 01:42:00
>>289
passengerが正常に動いていて、htpasswdコマンドなどへのパスがちゃんと通っていることが前提だけど。
passenger-statusかpassenger-memory-statsをrootで実行すれば見れるはず。


292:nobodyさん
10/04/02 02:29:00
>>290

filecache なら、expire_fragment にパスにマッチする正規表現を与えると
消せたと思う。
使ってるキャッシュストアによってはキャッシュを取り出すキーを
取得してマッチさせることおが出来ないため、この方法は使えない
(memcacheとか)


293:nobodyさん
10/04/02 07:23:20 HiisjUqr
Rails 3.0 beta 2 is out: URLリンク(bit.ly) -- now is the time to jump in, the water is fine!
31分前 Tweetieから
URLリンク(twitter.com)
dhh

294:288
10/04/02 17:33:28 uh9HgEyf
自己解決しました
<div id="timer">
<%= render :partial => 'timer' %>
</div id="timer">
<%= periodically_call_remote(:url => {:action => :add_proc} ,
:condition => "autoupdate == 1", :frequency => 60)

として、_timer.rhtml を下記のようにして、
<% if ( 1 == @auto_checked ) %>
<script type="text/javascript">
//<![CDATA[
autoupdate = 1;
//]]>
</script>
<% else %>
<script type="text/javascript">
//<![CDATA[
autoupdate = 0;
//]]>
</script>
<% end %>

controller で
@auto_checked = チェックなら1 OFFなら0を設定

RJSでチェックされる度に更新する
page[:timer].replace_html :partial => 'timer'

295:nobodyさん
10/04/03 06:40:15 zhJ0AwW4
>>268
TDD の進め方と原則
URLリンク(jp.rubyist.net)
URLリンク(jp.rubyist.net)
TDD の進め方はいたって簡単です。TDD は以下の 3 つのステップから構成されます。
1プロダクトコードを書く前にテストコードを書き、それが失敗することを確認する (レッド)
2テストに成功するようにプロダクトコードを書く (グリーン)
3プログラムの振る舞いを変えないように、プロダクトコードの重複などを整理する (リファクタリング)
4(最初に戻る)


デイリービルドとリグレッションテスト
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)

296:nobodyさん
10/04/03 06:42:19 zhJ0AwW4
RSpec の概要と、RSpec on Rails
TDD に関連する技法には様々なものがありますが、TDD の原則は次の 3 つにまとめられます。
テストに失敗しない限り、プロダクトコードを書いてはいけない。
プロダクトコードはテストを通るように書く
テストは少しずつ書き進めていく
URLリンク(jp.rubyist.net)

297:nobodyさん
10/04/03 20:32:12
railsのテストって余計に時間がかかる印象。
テストってアプリケーションごとに色々違うから規約に従うのは無理。

298:nobodyさん
10/04/03 21:59:50
RMagickを入れるために以下のコマンドを実行しました。
$sudo gem install rmagick

すると以下のエラーが出てしまいます。
Can't install RMagick 2.12.2. Can't find Magick-config in /usr/bin:/bin

ImageMagickはインスコ済みでMagick-configは/usr/local/binにあるのですが、それを探してくれません。
ググって見てみると一般的には/usr/local/binも見てくれてるようなのですが自分の環境では/usr/binと/binしか探してくれないようです。
この探索パスは何に依存してるのですか?

299:nobodyさん
10/04/03 22:25:24
PATHに /usr/local/bin は入っているの?
うちは問題なくインストールできてるんだけど、
ためしにrmagickをアンインストールしてから、
PATHからMagick-configの入っているディレクトリを抜いて
gem install rmagick
してみたら
checking for Magick-config... no
と言われた。


300:298
10/04/03 22:40:07
>>299
わざわざ試して頂いてありがとうございます。

自分の環境でecho $PATHで見てみたところ、
root、一般ユーザともにPATHに/usr/local/binが入っていました。
もしかしたらPATHを上書きするような何かの探索パスを見てるのかもしれないですね

301:nobodyさん
10/04/03 23:09:04
変なパスを引き継いでしまうのを回避するために、
sudo がPATHを置換えていると思う。
(sudo ls として/tmp/ls とかが実行されると怖いことになるので。)

正攻法はsudoしたときのPATHに/usr/local/binに入るようにすること。
やりかたは、たぶんman visudoに書いてあるはず。

あとは、sudo su (マテ とか


302:nobodyさん
10/04/04 02:38:46
ln -s /usr/local/bin/Magick-config /usr/bin/Magick-config && echo 'de okok wwwww'

303:nobodyさん
10/04/04 19:25:13
時々インストール先がわからなくって
見つからないよーって警告してくるときがあるけど
対処方法わからないから再インストールでやり直してるな、
自分でhome下にディレクトリつくってパス指定指定すると
99%失敗する。

すっきりインストールするには、何らかのインストール用のツールつかわないとだめかもな


304:nobodyさん
10/04/07 04:14:28
正直そのレベルでror遣るのは無謀過ぎる。

305:nobodyさん
10/04/08 23:09:31 PYMnoiLL


プロジェクト協力者募集: サーバサイドRuby開発 - Google携帯★三国志(GoogleAndroid) - SourceForge.JP
URLリンク(sourceforge.jp)


306:289
10/04/09 10:19:10 TIvOx/xs
>>291
アリガトー

307:nobodyさん
10/04/09 13:16:00
ActiveRecord での質問です。
ユーザが入力する形式と、実際にSQLで使う形式が違う場合に、モデルクラスに同指定したらいいのかわかりません。
たとえば、ある日付を表すカラムがあったとして、その値を入力するのは
テキストフィールドで「2000/01/01」のように入力する仕様だったとします。
こういうとき、モデルクラスにどのように書けば、「2000/01/01」という文字列が自動的にdate型に変換されるのでしょうか。

ヒントだけでもいいのでよろしくお願いします。

308:nobodyさん
10/04/09 14:27:23
属性への代入時にStringから変換してくれる。



309:nobodyさん
10/04/09 22:10:06 IYwfrtqZ

プログラマーのメモ。要チャックや! : winでrails全自動テスト ZenTest Snarl ファイル保存でテスト結果がメッセージアラートで通知される!
URLリンク(blog.livedoor.jp)
Day by day - Railsのテスト環境を改めて- Windows / RSpec / ZenTest / Snarl
URLリンク(www.edit.ne.jp)
RSpec を autotest で使う - gan2 の Ruby 勉強日記
URLリンク(d.hatena.ne.jp)
Windows環境のrailsでautotestを使う - SF山本の日記
URLリンク(d.hatena.ne.jp)
autotestを使ってみる - プログラマ憧れプログラマ日記
URLリンク(d.hatena.ne.jp)





310:nobodyさん
10/04/09 22:18:32 IYwfrtqZ
multirubyは、各バージョンのRubyに対して自動的にテストを実行してくれる。
Rubyのライブラリを書いていて、1.8.xの全部でテスト動かすのめんどくせー!っていう時に便利。
URLリンク(route477.net)

311:nobodyさん
10/04/10 14:36:30
1994年生まれの人集まれ!★3
スレリンク(nendai板)

312:login:Penguin
10/04/10 20:38:14
黒田努、山本不二也著の「かんたんRuby on RailsでWeb制作」で
Ruby on Railsに挑戦しているが、この本、なんで、そのような
コードになるかという説明がほとんどなくて、読みづらいね。
ここの住人って、どの本を読んでRoRを使えるようになったの?


313:nobodyさん
10/04/10 20:44:07
AWDwR

314:312
10/04/10 20:52:32
>>313
邦訳だと、「RailsによるアジャイルWebアプリケーション開発」ですか。
情報ありがとうございます。




315:nobodyさん
10/04/10 23:34:22
URLリンク(www.amazon.co.jp)

316:312
10/04/11 09:46:24
>>315
Amazonでの書評によると
> 「行間を読者が推測する」という作業をほとんどしなくてすむ
とあるから、よさそうですね。
参考にしてみます。ありがとうございます。


317:nobodyさん
10/04/11 14:36:14
>>315
よくもわるくもRailsの本であってRubyの本ではないんだよね
まあとりあえずRoRが使えるようになるっていう点は同意

>>316
読み終わったら感想聞かせてください ^ ^

318:nobodyさん
10/04/11 16:01:01
>317
Ruby言語自体はハンドブック的な本とテクニック集的な本があれば充分だと思う。
けど、Railsはやればやるほど奥深く感じて際限がない。
Rubyという言語を媒体として、よくここまで複雑な事が出来るなぁ、と。
どこの誰が言ったか忘れたけど、Ruby on Rails というより Rails on Ruby な感じ。

319:nobodyさん
10/04/11 16:18:44 N67fIyjS
祝 Ruby on Rails 3.0 beta2 リリース
URLリンク(www.oiax.jp)



InfoQ: Ruby on Rails 2.1のリリース
URLリンク(www.infoq.com)
Rails 2.1は、2.0以来過去半年にわたっておこなってきたすべての機能や修正を伴って、一般消費向けに利用可能である。これを実現へと導こうとした、さまざまな人々による努力によって、リリースに至った。
過去半年以上かけて、パッチを作成したり、それらを入念に検査したりした
1400名にのぼる協力者がいた。
最終的には、1600以上のパッチになった。
本当に驚異的な数である。そして、その多くがこのリリースに関与した。


320:nobodyさん
10/04/11 16:37:18
3.0b2のリリースに2.1リリースの記事を併記する神経がわからん。
ボット?


321:nobodyさん
10/04/11 17:05:46
ボットでも手動でもいいけど、あまり有益な情報ではないからやめてほしい。


322:nobodyさん
10/04/11 20:49:11 ur6aCnY7
Ubuntu9.10
Ruby1.8.7
RoR2.3.5

上記の環境で

railsでアプリケーション作成
rake db:createでデータベース作成
ruby script/server scaffoldでscaffold作成
rake db:migrateでテーブル作成

以上の順序で雛形を作成しブラウザでアクセスすると

ActionController::RoutingError (No route matches "/books/" with {:method=>:get}):

のようなエラーが出ます。
2.0.2を使ってたときはちゃんと動いてくれたんですが何が悪いんでしょうか?

323:nobodyさん
10/04/11 21:02:39
ruby script/generate scaffold book の間違いだとして…
config/routes.rb に map.resources :books の記述が
追加されていないってこと?


324:nobodyさん
10/04/11 21:07:47
>>323
ほんとだ・・・
今最初からやり直して見たら config/routes.rb に
map.resources :books がないっす・・・

仕様が変わったんでしょうか


325:nobodyさん
10/04/11 21:11:19 o+7g4KAN

URLリンク(www.youtube.com)

326:nobodyさん
10/04/11 21:11:39
いや
そうじゃなくて

327:nobodyさん
10/04/11 21:14:47
>>324
ないというのは変だな。
scaffoldじゃなくてmodelだけ作っちゃったとか。


328:nobodyさん
10/04/11 21:41:37 ur6aCnY7
>>327
全部削除して最初から scaffold やり直したけど
config/routes.rb には map.resources :books がやっぱりないっす・・・
自分で追記してやると、今度は NameError になりました
わけわかめ

329:nobodyさん
10/04/11 21:43:08
Ubuntu9.10
Ruby1.8.7
RoR2.3.5


330:nobodyさん
10/04/11 22:57:14
script/about の出力と作成手順をまとめてどっかにうp


331:nobodyさん
10/04/12 01:01:35
わけわかめってコントローラーがないか、中身が空とかじゃないだろうな
2.0.2と2.3.5じゃscaffoldの生成方法からしてかなり違うんだが
2.3系の勉強しないと2.0系の知識だけじゃ通用しないぞ

332:nobodyさん
10/04/12 01:16:27
$ ruby -v
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
$ rails -v
Rails 2.3.5
$ rails sampleapp
$ cd sampleapp
$ ./script/generate scaffold book title:string
$ cat config/routes.rb
ActionController::Routing::Routes.draw do |map|
map.resources :books
<snip>
$ rake db:migrate
$ ./script/server

で普通に見えたけど。
mongrel入ってるのは関係あるだろうか。


333:nobodyさん
10/04/12 08:02:55
本人はちゃんとやってるつもりだけど、どこか手順が間違っているんだろうな。


334:nobodyさん
10/04/12 16:55:29
以下のようなことをしたいのですが、どうすればいいでしょうか?

x = "abc"
y[x] = 123
# ↓のようにしたい
y[abc] = 123


335:nobodyさん
10/04/12 17:12:41
eval

336:nobodyさん
10/04/12 17:15:00
>>335
ありがとうございます
PHPだとしたみたいな感じで簡単にできるのですが、RUBYだとeval使わないとそういったことはできないということですか?

$x = "abc";
$y[$x] = 123;

説明が下手で申し訳ないのですがご教示お願いいたします。


337:nobodyさん
10/04/12 17:36:15
>>336
その話のどこがRailsに関係あるんだ。

338:nobodyさん
10/04/12 17:53:38
y['abc']ではなくy[abc] という扱いにしたい(abcという変数が指す値を使いたい)のなら
evalみたいなことが必要。


339:nobodyさん
10/04/12 18:07:23
>>337
すみませんm(_ _)m
Railsには関係ない初歩的な質問です
weblogにrubyスレッドがここくらいしかなく、ここで聞いてしまいました。

すれ違いとは思いますが、ご教示いただければと思います。

>>338
y['abc']の値として123をいれたいということでした。
いろいろ試してみたところ、
y[*x] = 123
でいけましたが下のような文はエラーになりました。
y[*x][*x] = 123
ググろうにもうまいワードが思いつきませんのでお教えいただければと思います。

340:nobodyさん
10/04/12 19:19:09
irb
> y = { 'abc' => 'hello' }
=> {"abc"=>"hello"}
> x='abc'
=> "abc"
> y[x] = 123
=> 123
> y
=> {"abc"=>123}


341:nobodyさん
10/04/12 20:44:13
ほっとけ

342:322
10/04/12 22:40:45 prv77747
$ ruby -v
ruby 1.8.7 (2009-06-08 patchlevel 174) [i486-linux]
$ rails -v
Rails 2.3.5
$ rails sampleapp --datebase=mysql
$ cd sampleapp
$ rake db:create
$ ruby /script/generate scaffold book title:string
$ rake db:migrate
$ ruby /script/server

これで作り直してみましたがやっぱり routes.rb に map.resources :books がないっす
MySQL使ってるからでしょうか・・・

343:nobodyさん
10/04/12 22:50:53
rake routesにも当然出てこないよねぇ。

そういえば、 >>328 に手で追加してもNameError となるとあるが、
ルーティングが未定義(と認識されている)の場合はRoutingErrorになるはず。
ルーティング以前の問題がありそうだ。


344:322
10/04/12 23:00:17 prv77747
インストール手順も何か手がかりになれば

Rubyその他はパッケージから
$ sudo aptitude install ruby ruby1.8-dev rake

RubyGemsは1.3.6をダウンロードして
$ /usr/bin/ruby1.8 setup.rb install

Railsはgemで
$ sudo gem install rails

あとは mysql-server をパッケージから、mysqlドライバを gem でインストールしました
 

345:322
10/04/12 23:50:58 prv77747
あー、もしかしてと思ってSQLite3で同じことやったら見事に動きました・・・
やっぱMySQL関係で躓いてる見たいです
今日は気力が尽きたので明日からまた調べてみます

346:nobodyさん
10/04/13 00:00:37
database.ymlに指定したユーザーに対してgrantしてない→
DBにアクセスできないのでテーブルスキーマを参照できない→
ので、実はscaffold作成が不完全に終わっている
とかそういう感じかね。


347:nobodyさん
10/04/13 00:20:15
もはや RoR 関係ないということで終了

348:322
10/04/13 00:45:52
>>346
rootユーザーですが一応GRANTで全権限付与してみましたが関係なさそうです
scaffoldが何らかの理由で不完全に終わっているようなのでもうちょっと調べてみます。

349:nobodyさん
10/04/13 05:09:33
そのままサイト乗っ取られそうだw

350:nobodyさん
10/04/13 14:54:30
>>339
スレリンク(tech板)
スレリンク(tech板)

351:nobodyさん
10/04/13 19:48:06
form_forタグの中でユーザに画像をアップロードさせたいのですが、
DBに変なデータが入ってしまいます。

新規作成画面はこんな感じです。
<% form_for(:book, :url => {:controller => 'books', :action => 'create'}, :html => {:multipart => true}) do |f| %>
<p>
<%= f.label :image %><br />
<%= f.file_field :image %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>

データを受け取るコントローラ側はこんな感じです。
@book = Book.new(params[:book])
@book.save

画像を選択してformの送信ボタンを押すと、以下のようなパラメータが送信されて
{"commit"=>"Create",
"book"=>{"image"=>#<File:/tmp/CGI20100413-2396-5jhla9k-0>}}

DBのimageカラムには以下のようなデータが入ります。
--- !ruby/object:File {}

正常に画像データを入れるにはどうすればいいでしょうか。

352:nobodyさん
10/04/13 19:58:04
入れた後、取り出すにはどうすればいいでしょうかとか言ってきそうだな

353:322
10/04/13 20:53:20
お騒がせしております。

MySQLを5.1から5.0へダウングレードしアプリケーションを作成したところ
無事に動作しました。
原因は分かりませんがMySQL関連のトラブルでも無いような気がしてます。
ありがとうございました。

354:nobodyさん
10/04/14 13:02:35
次のようなroutingを定義したいです。

GET /videos/:id(.:format) {:action=>"show", :controller=>"videos"}

routes.rb に次のように書いたのですが、

map.connect '/videos/:id.:format', :controller=>"videos", :action=>"show", :conditions=>{:method=>:get}

rake routes | grep videos とすると、こんな出力になります。

GET /videos(/:id(.:format)) {:action=>"show", :controller=>"videos"}

つまり、「/videos/:id(.format)」にならず「/videos(/:id(.:format)」になってしまいます。
どうしてでしょうか。また正しい書き方を教えてください。


355:nobodyさん
10/04/14 15:04:38
2.3.5で作り立てのアプリに >>354 のmap.connectを追加したら
GET /videos/:id(.:format) {:controller=>"videos", :action=>"show"}
になった。

で、同じことを 3.0.0.beta3 でやったら
GET /videos(/:id(.:format)) {:controller=>"videos", :action=>"show"}
になった。

あ、'/videos/:id(.:format)' だと
GET /videos/:id((.:format)) {:controller=>"videos", :action=>"show"}
になるな。括弧が二重に出るのが気になるけど…

Rails3式のオススメは
match 'videos/:id(.:format)' => 'videos#show', :via => :get

GET /videos/:id(.:format) {:controller=>"videos", :action=>"show"}



356:nobodyさん
10/04/14 16:42:41 3rT4Ng9m
    ヘ⌒ヽフ
   ( ・ω・) ㌧㌧
   / ~つと)

357:nobodyさん
10/04/14 17:08:05
>>355
おーそのとおり、Rails3でチャレンジしてました。
match をつかったらばっちりでした。さんくすです。

358:nobodyさん
10/04/14 21:22:20 25BSt7Kc
Rails 3 beta 3 is out: URLリンク(bit.ly) -- Yes, Dorothy, we're getting close to home now!
約17時間前 Tweetieから

dhh
URLリンク(twitter.com)

359:nobodyさん
10/04/14 21:31:38
>>358
3レスくらい前見とけ。


360:nobodyさん
10/04/14 21:47:42 25BSt7Kc
Rails 3.0: Third beta release

Posted by David April 13, 2010 @ 07:35 PM
URLリンク(weblog.rubyonrails.org)



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