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

【Ruby】Ruby on Rails Part7

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/30(木) 23:07:27ID:???
■前 Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1224838013/

■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails

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

■参考スレ(プログラム板)
Rubyについて Part 35
http://pc12.2ch.net/test/read.cgi/tech/1238194350/
Ruby 初心者スレッド Part 27
http://pc12.2ch.net/test/read.cgi/tech/1238632943/l50
0376nobodyさん2009/06/19(金) 16:24:48ID:???
その例え、全然わかんないよ
分かってるやつは理解できるのかもしれないけど
03773742009/06/19(金) 16:31:43ID:???
自己解決しました。
@record.book.title でいけました。
0378nobodyさん2009/06/19(金) 18:30:49ID:???
未だにマニュアルを見ないと svnのリポジトリをマージできません。
それなのに git だの hgだのを学ばねばならぬとは楽しみなことだ。

CVSでも、考えてみれば、マージはワーキングコピーのdiff & patchで済ましていた気がする。
0379nobodyさん2009/06/19(金) 18:45:42ID:???
ツールを追っかけて、フレームワークを追っかけて
0380nobodyさん2009/06/19(金) 19:23:06ID:???
>>378
今では面倒なことすべてやってくれるでしょ。
GUI利用して視覚的に見やすくなってるし。
0381nobodyさん2009/06/20(土) 01:21:31ID:???
>>372
>>373
俺はデスクトップぐちゃぐちゃだがsvnリポジトリのコミット担当してるし
ソースは無茶苦茶きれいに整理するし、gitだって使えるぞ
ひどい偏見だw
0382nobodyさん2009/06/20(土) 07:33:20ID:???
>>337
そもそも、JavaScriptはRails関係なく使えます。他のフレームワークでも使えるでしょう。
AJAXサポートなど、楽に使える機能も提供されてますよ。

>>342
そういう作業を「デプロイ」といいます。
退屈な作業なので、機械任せにするために、定番どころではcapistranoを使います。
cap deployで一発デプロイできるようになると快感です。

あと、Passengerならapache再起動要らないですよ。
リモートに、touch tmp/restart.txt するだけでPassengerだけ再起動してくれます。
このためのcapistranoの設定(capistrano文脈ではレシピといいます)も、
ネットで検索すればでてきます。

注意したい点は、capistranoは公式ページのドキュメントがなかなかに不親切なため、
ネットのブログに散見される設定(レシピ)を読んだり、ソースを読むかしないと挙動がイマイチわからない点があります。
ただ、Railsをやっている人にはできない作業ではないでしょう。

ぜひ、調べてみてください。
0383nobodyさん2009/06/20(土) 07:46:09ID:???
>>342
tracですが、元々はバグトラッキングシステムというくらいですので、バグ管理のものでありましたが、
今ではプロジェクト管理ツールというように広い意味で使われています。

チケット(プロジェクト管理ツールでの問題やタスクの登録単位)を登録することで、
問題やタスクを管理することができます。
複数人でのプロジェクトや他の人に問題などを公開する必要のある場合に効果を発揮するでしょう。
(私は一人プロジェクトでも使ってますが)

また、Subversion、git、Mercurialなどのバージョン管理ツールと連携して、
webでソースを閲覧したり、チケットと
バージョン管理のコミット(切りのよいソースの変更単位)を関連付けて、
お互いをリンクしたり、コミット時に自動的にチケットを終了させる、なんてこともできます。

最近では、チケット駆動開発といって、タスクのようなものをツールに登録していって、
管理ツールでプロジェクトのタスクも管理していく方法も広まってきました。


私はRails製のRedmineというツールを使っています。
Redmineは予想時間や経過時間の記録や集計、
予定日付の指定によるガントチャートの自動作成などができるため、
仕事のプロジェクトや、さらには自分のローカルにインスコしてタスク管理にも使ってます。
0384nobodyさん2009/06/20(土) 07:50:25ID:???
>>342
さて、svnとデプロイですが、(これは、gitやmercurialでも状況は同じ)
svnなどで管理しておくと、capistranoからもデプロイしやすいです。

svnの特定リビジョン(バージョン)を常に本番鯖に一発でデプロイする、とかの指定も思うがままです。

そうなると、svnを外部から参照できるように公開しておかなくてはいけないのか?という疑問がわいてきますが、
そうでなくてもcapistranoではデプロイできます。

 set :deploy_via, :copy

という設定で検索してみてください。ローカル(やローカルからアクセスできる)svnリポジトリから、
単純なコピーのような感じで、リモートにデプロイできます。
0385nobodyさん2009/06/20(土) 07:51:24ID:???
> svnの特定リビジョン(バージョン)を常に本番鯖に一発でデプロイする、とかの指定も思うがままです。
特定ブランチ、最新バージョン

といったほうがいいですね。訂正
0386nobodyさん2009/06/20(土) 11:10:15ID:???
>>384
くわしくありがとうございます。
デプロイじゃなくてソース管理の話になってしまうけど、今サーバー専用マシン(に見立てたVM)に
svnサーバーいれて、apache連携させて、windowsからTortoiseSVNで操作してみました。
これは便利ですね〜。
capistranoとの連携も試してみようと思います。

ここにいる人たちにとってはスライムレベルの話しかもしれませんが…。
0387nobodyさん2009/06/20(土) 11:13:16ID:???
客先の社内システムにrailsで提案してみる。
0388nobodyさん2009/06/20(土) 11:35:02ID:???
おれに作らせてくれ。Railsの仕事ないよ。PHPばっか
0389nobodyさん2009/06/20(土) 14:08:03ID:???
自分のところは、何で作るかは自分で決められるから今はRailsだけでやってる。
客は何で作るかには興味なくて、欲しいシステムと性能が得られれば文句はないわけなんだよね。
PHPで作れっていうお客さんってどういう感じなのかな?
0390nobodyさん2009/06/20(土) 14:36:33ID:???
純粋なユーザーならそうかもしれんが、
受注したやつを回すところもあるから。
自分とこのエンジニアが対応できる言語となると、
数としてはPHPの方がずっと優勢じゃないだろうか。
0391nobodyさん2009/06/20(土) 14:37:40ID:???
>>390
あと追加で、お客さんとこでもシステム要員を抱えてるとことか
そういう人たちは基本的には運用だけなんだけど
0392nobodyさん2009/06/20(土) 15:03:40ID:???
>>390
なるほど。そういう事情ならPHPで作って欲しいと言われるのは分かる。
0393nobodyさん2009/06/20(土) 16:37:53ID:???
ここの連中は元請という言葉を知らんのかw
0394nobodyさん2009/06/20(土) 17:43:57ID:???
JRuby on Railsって
使う言語を
RubyからJRubyに変えてあるだけで
何か特別な事って必要ないの?
0395nobodyさん2009/06/20(土) 21:07:01ID:???
>>383
redmine、インストールしてみますた。
これはわかりやすくいいですね。
svnと連携できて、感動しました(ただ、必要かはわかりませんが(笑)

うちの会社、進捗管理はエクセル、ソース管理はvssなんですよねぇ。
会社の改善会議で提案してみようかしら(=ω=)

チケットの最低単位が「日」なのがちょっと痛い。
0396nobodyさん2009/06/22(月) 21:42:29ID:ashzWp6s
質問させてください。
script/console のログをdevelopment.logに出力したいんですが、どうすればよいでしょうか??
教えていただきたく><
0397nobodyさん2009/06/22(月) 21:53:23ID:???
お断りします
0398nobodyさん2009/06/23(火) 03:26:04ID:???
>>397
知らないんでしょ?
0399nobodyさん2009/06/23(火) 10:26:24ID:???
お断りします|-`).。oO(・・・)
0400nobodyさん2009/06/23(火) 10:49:30ID:???
girl = Girl.find(美人)
girl.boy_friend = Boy.find(俺)
girl.save

これが失敗します><

girl.boy_friend = Boy.find(池面)
girl.save

これだと成功するんです!
idが俺のレコードもちゃんとあるんです!
原因がわかりません><
0401nobodyさん2009/06/23(火) 11:07:23ID:???
おまえはボーイフレンドにしたくないってことだろ
Railsすごいな
0402nobodyさん2009/06/23(火) 11:22:36ID:???
本当に困っているのかネタなのかわからんが、
マジレスすると、save じゃなくて save! にすると、失敗した場合に例外が出るから、そのスタックトレースを眺めるとか。
0403nobodyさん2009/06/23(火) 16:58:51ID:???
下記のサイトのFour Days on Rails 2.0をちょっとやってみていて気になったことなのですが、
Four Days on Rails 2.0(日本語)を公開します
http://rails.to/articles/2008/05/05/4-days-on-rails-2-0-released

http://localhost:3000/items/ から 一覧の編集アイコンより
http://localhost:3000/items/14/edit に飛んでちゃんとItemが編集できます。

Railsは通常、/Controller/Action/id のようになっていると思っていたのですが、
上記の例だとURLが/Controller/id/Action/ になっているようです。
これってどういうことなんでしょうか?

該当リンク元は以下のようになっていて、( app/views/items/_index_stripes.html.erb )
<td><%= link_to show_image('edit'), {:controller => 'items', :action => 'edit', :id => index_stripes.id} %></td>

コンロトーラーは以下のようになってます。 app/controllers/items_controller.rb
# GET /items/1/edit
def edit
@item = Item.find(params[:id])
end

config/routes.rb は、以下のような感じ。(必要なところのみ記述)
ActionController::Routing::Routes.draw do |map|
  map.resources :notes
  map.resources :items
  map.resources :categories
  map.root :controller => "items"
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

というか、ほとんど、今見たら、scaffoldしたままですね…。
環境: Rails 2.3.2, Ruby 1.8.7, Windows XP SP3
0404nobodyさん2009/06/23(火) 17:19:47ID:???
>>403

 >Railsは通常、/Controller/Action/id のようになっていると思っていたのですが、
 >上記の例だとURLが/Controller/id/Action/ になっているようです。
Rails 2.0 から RESTfull なかんじにかわったかんじ
0405nobodyさん2009/06/24(水) 10:01:54ID:???
>>400
バリデーションの問題。
ガードが固いんですよ。
0406nobodyさん2009/06/24(水) 21:02:35ID:???
mem360MBで、1日1500ユニークユーザ捌いてたけど、
passengerじゃオチまくって話にならん!
0407nobodyさん2009/06/24(水) 21:34:17ID:???
>>406
Heroku
0408nobodyさん2009/06/24(水) 22:37:00ID:???
>>406
それ、おれと同じところのVPSじゃないだろうか、
おれは180Mだが数百ユーザーで落ちまくりだった。
悲しい対処でがんばってるが、360Mでもダメか。
PassengerのMAXインスタンスはいくつにしてるの?
おれは2だけど。

なんかメモリの少ないVPSあたりだと、
Mongrelの方がいいような気がする。
Railsデプロイのアドバイスに従ってればよかった。
このスレでPassengerじゃないと古いとかいうやつがいるから、
と人のせいにしてみる。
04093492009/06/24(水) 22:50:30ID:???
>>408
それはおれのことかな?(笑)

もしそうだったとして、自分は VPS 等でなく、占有できる PC でしか動かしたことがないので、
あなたのレスは参考になるから、もっといろいろ書いてほしい
0410nobodyさん2009/06/24(水) 23:18:17ID:???
>>406
そのVPSがどこか教えてくれ。

今サーバを検討中。
0411nobodyさん2009/06/24(水) 23:46:13ID:???
>>410
linodeだよ。
mongrelで4つくらいプロセス立ち上げて、バランサで振り分ける
ようにしたら普通に動くようになった。
0412nobodyさん2009/06/24(水) 23:56:05ID:???
>>409
メモリ4Gの専用サーバーの人?
前にそういう書き込みがあったように記憶してる。
その人は安定してるってことだったから、
それくらいがっつり積んでれば安定するのかなとうらやましく思った。

Rubyも1.9.1だしPostgreSQLは8.4βだし不安定要素がありすぎて、
Passengerの問題だけではないようにも思うけど。
遊びではないけど自分だけの責任で済むから、
ちょっと野心的にやりすぎた。
>>406のRubyのバージョンが知りたいなあ。

>>410
おれはCPIだよ。
いろいろ検討したけどあそこが一番いいように思った。
バカみたいに通信が発生すると別途相談らしいけど、
基本どれだけ通信しても追加料金かからないし。

運が良かっただけかもしれないけど、
電話で問い合わせたとき担当者もいい感じだった。
04134122009/06/24(水) 23:57:43ID:???
> mongrelで4つくらいプロセス立ち上げて、バランサで振り分ける
> ようにしたら普通に動くようになった。

まじかよ・・・
0414nobodyさん2009/06/25(木) 00:10:11ID:???
>>413

マジ。5000↑ユニークでもいけた。
http://d.hatena.ne.jp/shohu33/20071121/1195650627

> mongrelで4つくらいプロセス立ち上げて、バランサで振り分ける
> ようにしたら普通に動くようになった。

↑なんか自分でやったかのような書き方してるけど、↑のURLのやり方
参考にしただけ。

HTTP部分をApacheに任せられるものすばらしい。
0415nobodyさん2009/06/25(木) 00:16:11ID:???
>>414
おお、サンクス。Apache併用方式か。
おれはモバイルだからIPで判別してPCからのリクエストをはじきたいんだよね。
Mongrelはそのへん分からなかったけど、Apacheに任せればいいか。
1.9.1はMongrel Clusterのインストールに問題があったのも躊躇した理由だが、
いろいろ試してみるよ。
04164092009/06/25(木) 01:29:57ID:???
>>412
> >>409
> メモリ4Gの専用サーバーの人?

いや、ちがいます。
Passneger を動かしているのは、職場や客先での業務イントラだけ。
もちろん専用のサーバなので、メモリも2GBとか4GBとか。
だけど同時アクセス数は少ないけどね
0417nobodyさん2009/06/25(木) 08:40:07ID:???
>>411
>>412
サンキュー、参考にします。

>>414のブログの記事ってもう一年半も前のなんだけど、
いまだにこれがベストプラクティスなの?
0418nobodyさん2009/06/25(木) 09:53:42ID:???
Ruby の Web 環境レベルが PHP に比べて低すぎる。
Ruby は言語が綺麗でも実用的じゃない。書生論。
0419nobodyさん2009/06/25(木) 13:30:58ID:???
それで実際どうしたらよくなるのって話をしているときに、
そういうもともと論から始めるのも、いかにも書生論って感じだよね。

まぁGoogle App Engineで、Pythonでも始めたら?
信頼と安心のGoogleブランド
0420nobodyさん2009/06/25(木) 14:42:40ID:???
>>417
古いけど実績はある。
枯れてるサーバーはそうそう急激な変更はしないよ。
サーバーは安定しなきゃ話にならないし、適材適所じゃないだろうか。
0421nobodyさん2009/06/25(木) 16:43:20ID:kFfq4IDX
>>369
Bazaarなら中央も分散もどちらの運用も可能ですよ!
0422nobodyさん2009/06/25(木) 22:36:23ID:???
今メモリの残り量が15Mくらい。これじゃ24時にはmysqlが落ちる・・・。
0423nobodyさん2009/06/25(木) 23:29:15ID:???
>>422
切羽詰ってるな、おぃw
0424nobodyさん2009/06/26(金) 05:06:56ID:???
バランサ必須ってのは金かかるな。やっぱりフリーで大規模は無謀か。
0425nobodyさん2009/06/26(金) 07:25:25ID:???
>>412
遅レスですが、メモリ4Gの専用サーバの人です。

1台でWebとDBの両方を動かすとメモリを食ったり、
IO周りで足を引っ張るのでmongrel、Passengerのどちらでも厳しいですね。
という事で、Webサーバ(Passenger)+DBサーバ(PostgreSQL)の2台構成で
動かしていて、1日平均50万アクセスくらい処理できてます。

今後もアクセスが増えていくと思うので、状況次第で
Webサーバは2台、3台と増やしていってDNSラウンドロビンで振り分ける予定です。
DBのほうは、今のところ余裕があるのでそのまま。

0426nobodyさん2009/06/26(金) 10:27:30ID:???
>>424
バランサーといっても、
>>414の場合はハードのロードバランサーを使うんじゃなくて、
Apacheのバランシング機能を使うだけだよ。
大規模でそれなりにお金がかかるのは間違いないと思うけど。

>>425
おお、サンクス。

専用2台って最低でも月4〜5万かかるよね。
ゆとりある組とかつかつ組のノウハウは別にためないときついね。
おれはPostgreSQLのキャッシュを10Mにして抑えてるよ。
データはためてないようにしてる。

しかし50万を2台ってやるなあ。
それだとピークタイムは20アクセス/秒以上もあり得るよね。
おれも静的コンテンツにできるものは徹底的に静的にしたりがんばってるのだが。
バッチやプチクローラー(対象は数百くらい)もあるから、メモリ360Mにあげようかな。
rsyslogとかも引きずられて落ちたりするし><
0427nobodyさん2009/06/26(金) 14:57:27ID:???
月4、5万かけるなら、EeePCにCentOSいれてサーバーにするのも手かも・・・
サーバー室はミニ冷蔵庫w
0428nobodyさん2009/06/26(金) 17:32:18ID:???
うっかり旅行もできないけどな
比較の問題だが安心と安全を金で買うようなものだ
24時間監視とか個人じゃ無理だし
0429nobodyさん2009/06/26(金) 17:47:11ID:???
PHPにすればいいのに
0430nobodyさん2009/06/26(金) 18:10:27ID:???
>>404
サンクス。RESTfullだとそんな感じのURLになるんか。RESTfullでぐぐてクルわ
あがりとう
0431nobodyさん2009/06/26(金) 18:15:21ID:???
ついでに聞きたいのですが、
サイト名やページ名のように、デフォルト値を共通に設定したり、
viewなどで使いまわしたい場合は、Railsではどうするのがよいのでしょうか?

・共通コントローラーを作って、継承させる
・ヘルパーを作る

共通コントローラーだと、全部のコントローラーをそれから派生するように決まりつくらないとあかんですよね。
手間も面倒くさい、とかいったらいかんよなあ…
0432nobodyさん2009/06/26(金) 18:42:48ID:???
>>429
何回覚えてもisset()の挙動を忘れるのでやめました
04334312009/06/26(金) 18:55:09ID:???
application_controller.rb にかけばいいのね。お誂え向けすぎる。そして、初心者過ぎる俺泣いた
0434nobodyさん2009/06/26(金) 19:04:45ID:???
それ表示だけだろ?普通viewに埋め込める共通部品を作ると思うぞ。
なんでもコントローラーでやろうとする方が初心者の考えだと思う。
どうしても変数でほしいならconfigでやるべきじゃないだろうか。
04354062009/06/27(土) 00:21:23ID:???
>>406
ちょっと無責任な書き込みしてしまったので、訂正。

メモリ360mのVPSでpassengerじゃ落ちると書いたんだけど、passengerのせいじゃなかった。
mysqlがメモリ不足で落ちるのが原因で、メモリ不足が起きる原因がapacheのチューニング不足だった。
(メモリ不足で落ちると断定したのは、mysqlがmallocに失敗してたから。確かCのメモリ確保関数だった気が…。)

今はapache + mongrel * 3 構成で50kPV/日が平気。
今は安定してるのでpassengerに戻す気は無し。

ちなみにvpsはここ。
http://www.linode.com/
0436nobodyさん2009/06/27(土) 00:31:47ID:???
>>431
俺の場合は、共有レイアウトファイルを作って、それに共通メニューとか
サイトロゴを書き込んで、コントローラの先頭にlayout "common"みたいな
感じで共通レイアウトファイルを使用するよう設定してる。

content_forつかえば、ビューのソースからレイアウトファイルへの出力も
できるから、あんまり不便だとおもったことない。

0437nobodyさん2009/06/27(土) 00:33:52ID:???
>>435

だと思った。
Passengerのメモリ管理はかなり優秀で、一定期間アクセスがないとアプリケーション
サーバ側のプロセスは消滅してメモリ占有量はほぼゼロになるとどこかで読んだ覚え
がある。

あとMySQLは少ないメモリ量で効率よく動くのが苦手で、その点ではPostgreSQLの
ほうが優れてるらしい。
それでも300MB程度でMySQLやPostgreSQLを動かすのは自殺行為だと思う。

そのメモリ容量でどうしてもDBを使いたいならFirebird一択じゃないか。
04384062009/06/27(土) 01:15:51ID:???
>>437
…FirebirdというDBを初めて知った。
ちょっと勉強してみる。
mysqlを選んだのは、phpMyAdminでGUI操作できるという動機…。
0439nobodyさん2009/06/27(土) 04:40:58ID:???
>>437
> あとMySQLは少ないメモリ量で効率よく動くのが苦手で、その点ではPostgreSQLの
> ほうが優れてるらしい。

初めて知った。
MySQL は Postgres よりも軽くて、必要なメモリも少ないものだと思っていた。

あと組み込みDBといったら sqlite とかじゃないの?
sqllite が、MySQL みたいに排他制御してくれるかどうか知らないけど
0440nobodyさん2009/06/27(土) 06:34:04ID:???
>>435
> メモリ不足が起きる原因がapacheのチューニング不足だった

kwsk!

>>437
Firefirdを勧めるやつ初めてw
もともと商用だしsqliteあたりよりいいのかもしれないけど

ちなみに300Mと言ってもOSが使う分は含まれてないと思うぞ
自殺行為というほどじゃないような
04414372009/06/27(土) 07:27:54ID:???
SQLiteはお察しの通り排他制御ができない。ファイルベースだからね。
同時にアクセスが来ると、しばらくテーブルにロックがかかってエラー
起きまくることがある。

まあ、うちのサーバで起きたんですけどね。
1日1,000アクセス程度でそういう現象が出るようになった。
0442nobodyさん2009/06/27(土) 08:18:35ID:???
>>440
DBだけ動かすんなら自殺行為じゃないかもね。
Apache+Railsアプリ+DBなら、それはやばいでしょって話で。

またRubyそのものもけっこうメモリを食う。
Enterprise Rubyにするとかなり節約できるようになるという話なので、
試してみる価値はあるんじゃないだろうか。

http://d.hatena.ne.jp/rx7/20090608/p1
0443nobodyさん2009/06/27(土) 08:52:58ID:???
DBはありったけメモり喰って速度稼いでるから専用のほうがパフォーマンス高いよ。
1鯖で、アパチもルビもDBもってのは大規模では無理が有る。
0444nobodyさん2009/06/27(土) 15:30:33ID:lkILxYvh
Apacheで動かしたいのですが,うまくいきません。
(遅いのは承知の上でcgiのみです。まずは基本からということで)
環境はOSX10.5 ruby 1.8.6 Rails 2.3.2 Apache 2.2.9で何れもプリインストールのままです。
プロジェクトは/Users/Rails/myproに配置して,scaffoldでmytestを作ってます。
パーミッションはmypro以下全て755にしてあります。
script/serverでは当然http://localhost:3000/mytestで問題なく起動してます。
でhttpd-ror.confを次のようにしてhttpd.conf内でロードしてます。

Alias /mypro /Users/Rails/mypro/public
<Directory /Users/Rails/mypro/public>
Options +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
AllowOverride all
Allow from all
Order allow,deny
RewriteEngine On
RewriteBase /mypro
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
</Directory>

http://localhost/myproではWelcome abordがきちんと表示されます。
http://localhost/mypro/505でもpublic内の505.htmlがきちんと表示されます。
ところがhttp://localhost/mypro/mytestがダメです。
Not Found:The requested URL /mypro/dispatch.cgi was not found on this server.
の表示がでるだけです。
dispatch.cgiがよくわかりません。URLのリクエストをクラスのメソッドに割り当てているはずなのですが
アドバイスをよろしくお願いします。
0445nobodyさん2009/06/27(土) 15:38:59ID:???
>>435
参考になります。

しかし、
>>437
ということは、Passengerだともっとパフォーマンスがあがるのかもね。

>>442
REEなんて初めて知ったよ。
37Signalsが使ってるならRailsは大丈夫そうだね。



PHPからRailsに乗り換えて、サービス公開しようとしてるんだけど、
作るのは手早くできても、個人レベルだと公開するのがとにかく大変だね。
なやましいなぁ。

0446nobodyさん2009/06/27(土) 16:07:32ID:???
>>444

> dispatch.cgiがよくわかりません。

RewriteRuleに自分で書いてるじゃん。振り分けを行う起点だよ。
今時のフレームワークは名前こそ違え、大抵ディスパッチャで振り分けをしてる。
基本から学びたいならフレームワークのソースから読んだ方がいいよ。
0447nobodyさん2009/06/27(土) 17:49:50ID:???
mem360MB坊だけど、rails+mysqlでも今んところ快適だYO!
メモリはOS+アプリで360MB。

月19.95$だし、たぶん1万人/日(!=pv)くらいなら耐えれそう。
あと安いサーバーのがかえってチューニングのスキルがあがる気がしたw
個人サイトで専用サーバは、俺は金がもったいないと思うな。
というか貧乏なので無理(くやしいのう!)

メモリ不足でmysqlが落ちる問題は、apacheへの接続人数とmysqlの
メモリ上限を下げたらなおった。

接続人数絞っても快適なのは、おそらく1アクセスの負荷が低いから。
今まで落ちてたのは、短短期間に偶然多くのリクエストが発生したとき
だと思う。

RailsはSQLキャッシュが有効になるように組んでるし、アクセス頻度の
高いコンテンツはページキャッシュを使ってる。
0448nobodyさん2009/06/27(土) 17:52:47ID:???
RadRails+EclipseからSVNへコミットし、Capistranoでデプロイする…。

これができる環境を1人で作り上げるだけで、1つのプロジェクトを終えたような
気分だ・・・w
0449nobodyさん2009/06/27(土) 18:06:12ID:???
サービス公開するんなら、500MBが最低ラインじゃね?
ひと月あと10ドルくらいケチケチすんな。
0450nobodyさん2009/06/27(土) 18:44:09ID:???
>>449
ちゃんと使えば安くすむところを、スキルの無さのせいで冗長化させて
対応するなんてナンセンス。
0451nobodyさん2009/06/27(土) 19:14:19ID:???
> あと安いサーバーのがかえってチューニングのスキルがあがる気がしたw

すげーわかる。

負荷を半分に減らせるとすると、
仮に大ヒットしてサーバーが10台必要になるところが5台。
個人レベルのこじんまりしてるものなら月数千円の違いだが、
いろいろ苦労して損はない気がする。
リソースをじゃぶじゃぶに使うのってキリがないしな。
0452nobodyさん2009/06/27(土) 19:40:08ID:???
>>450
「冗長化」の意味すらまともに知らない素人が他人のスキルにケチつけるとか
ちゃんちゃらおかしいわ。
10年後に出直してこい。
04534442009/06/27(土) 19:43:10ID:???
>>446
RewriteRuleの部分は理解できてます。(リクエストのパスを書き換えてるということ)
READMEのとおりにしているのですが、dispatch.cgiというファイルはプロジェクト内を探しても見当たらないし,READMEの通りなのにうまくいかない原因が分からず,よって対処法もわからないのです。
0454nobodyさん2009/06/27(土) 20:34:12ID:???
dispatch.cgiは自分でコピーするんじゃないのか?
cgiでやったことないけど、
MongrelとかPassengerはその辺を勝手にやってくれると認識してる。

今見てみたが、READMEファイルの近くにdispatchersってディレクトリがあるから、
そこからコピーするんじゃないだろうか。
04554452009/06/28(日) 11:16:18ID:???
Railsでシステムを作るときに、
絶対必要、あったら便利、個人的におすすめ、
というようなプラグインを教えてください。

環境はRuby1.9.1 Rails 2.3です。

よろしくお願いします。
0456nobodyさん2009/06/28(日) 11:43:33ID:???
>>455
プラグインじゃないけど、そういう質問をする人に対してだったら、

つ Ruby 1.8.7
0457nobodyさん2009/06/28(日) 20:27:12ID:???
一回作ってみて、不便と思った事を書いたほうが。

つ ブラウザ、テキストエディタ
04584452009/06/29(月) 10:19:49ID:???
>>456
理由は?

>>457
>>つ ブラウザ、テキストエディタ
なにそれ?
0459nobodyさん2009/06/29(月) 11:01:30ID:???
割と言い流れで参考になると思ったが、>>456-457で台無し
Mr.1.8.7はブログあたりで主張しろよ

プラグインはページャーものが定番だろうけど、
acts_as_listは便利だと思った。
DBにpositionカラムを追加すると表示順を手軽に管理できる。
deleted_atカラムを追加して論理削除を管理する、
acts_as_paranoidも便利そうだ。どれも有名だろうけど。

Railsの仕事が入ったからいろいろ試してみたい。
0460nobodyさん2009/06/29(月) 12:46:18ID:???
>>459
1.9系でrailsを動かす予定なの?
0461nobodyさん2009/06/29(月) 13:02:17ID:???
横から失礼します。
http://rubyonrails.org/download
We recommend Ruby 1.8.7 for use with Rails.
Ruby 1.8.6, 1.8.5, 1.8.4 and 1.8.2 are still usable too,
but version 1.8.3 is not.
だそうですよ。

0462nobodyさん2009/06/29(月) 13:04:44ID:???
Ruby 1.9 対応の Rails 3.0 は順調なの?
0463nobodyさん2009/06/29(月) 13:37:25ID:???
>>460
予定ではね。今でも動かしてるけど。

2.3で1.9対応はされてるし、まあまあ動く。
ActiveResourceはダメだったけど。
アプリ開発者が創り出すバグの方がよほど問題になるくらいまできてると思う。
0464nobodyさん2009/06/29(月) 14:18:08ID:???
>>459
>Mr.1.8.7はブログあたりで主張しろよ

何で?

>>455のような人には、現状の1.9.1はおすすめしない。
1.8.7の方が、参考になる本も多いので使いやすいと思う。
0465nobodyさん2009/06/29(月) 14:32:53ID:???
人とまともに会話できないやつは
「あっちに行ってください」と言われるもんだぞ
0466nobodyさん2009/06/29(月) 14:55:37ID:???
>>455が妙な質問するからこうなったんじゃないかな?

どんなアプリを作るかによってまったく違うんだし、
Ruby 1.9.1 だと動かないプラグインやライブラリもあったりするからね。
0467nobodyさん2009/06/29(月) 21:00:50ID:???
Ruby 厨が PHP5 の互換性を叩いていたことを思い出した
0468nobodyさん2009/06/29(月) 22:16:53ID:???
>>456
携帯サイトを作るならjpmobileがおすすめ。
ただし、gemで入る最新の0.0.4ではrails2.3で動かない。
githubにある開発版なら動くかもしれない。
04694682009/06/29(月) 22:17:47ID:???
アンカミス。>>455だった
04704552009/06/29(月) 22:33:03ID:???
>>459
ありがとう、みてみます。
ページャー物の定番もおすすめがあったら教えてください。

>>464
Ruby1.9はそんなに互換性に問題があるの?

>>466
どんなアプリを作るにも便利なものってあると思うから聞いたんだけどね。
妙な質問に妙なレスか。

>>468
サンキュー。
携帯対応も考えてます。
github
0471nobodyさん2009/06/29(月) 22:35:31ID:???
>>470
自己レス、途中で送ってしまいました。

>>468
サンキュー。
携帯対応も考えてます。
github使ったことないけど、読み方はギットハブでいいのかな。
とりあえずgitいれてみる。
0472nobodyさん2009/06/29(月) 22:44:38ID:???
>>471
ページングならwill_paginateがお手軽。
これもgithubに移行しちゃったから、gem install will_paginateでは最新版が入らない。
インストールする場合は、↓
gem sources -a http://gems.github.com
gem install mislav-will_paginate

でも、gem install will_paginateで入るバージョンでも特に困らなかったりする。
0473nobodyさん2009/06/29(月) 23:04:55ID:???
>>470
>>>464
>Ruby1.9はそんなに互換性に問題があるの?

「対応した」ということになってるけど、地雷が多いのでお勧めしない。
ruby-listでは1.9.2まで待て、という声もあるくらい。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45870

ということで、いまは1.8.7が無難じゃないかな。
0474nobodyさん2009/06/29(月) 23:46:52ID:???
とりあえずpartialのエンコーディングがASCII-8BITになって絶望した。>1.9
どこで指定すればいいのやら。

0475nobodyさん2009/06/29(月) 23:54:59ID:???
どうせ自分で使ってもないんだろ?
そんなのここにくるやつは大抵チェックしてるからいらんよ
■ このスレッドは過去ログ倉庫に格納されています