【Ruby】Ruby on Rails Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/30(木) 23:07:27ID:???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
0337nobodyさん
2009/06/18(木) 10:58:31ID:???WEBアプリケーションの開発を楽にしてくれるだけで
基本的にRubyなんですか?
rubyに出来ないことはRailsにも出来ないということでしょうか?
Railsはjavascriptとかajaxとか
ウェブアプリを開発する上で
rubyとほかの言語も一緒に書くように出来るプラットフォームみたいな物なのでしょうか?
rubyという言語がjavascriptとかの言語も一緒に使える物なのか?
それとも
railsがほかの言語も使えるようにプラットフォームが整備されている物なのか
どうなんでしょうか?
0338nobodyさん
2009/06/18(木) 11:02:06ID:???0339nobodyさん
2009/06/18(木) 11:23:55ID:???0340nobodyさん
2009/06/18(木) 14:48:28ID:???関連するモデルが存在する場合に、モデルの削除を禁止したのですが何か方法はありますか?
例えば、自分のモデルのデータを削除したい時、関連相手が自分に対してbelongs_toしている場合は
削除できないようにしたいのです。
0341nobodyさん
2009/06/18(木) 14:53:02ID:???DBの制約でいいならDBMSを追記・・・というかDBスレへ
アプリの制御なら普通にIFじゃダメなのか?
0342nobodyさん
2009/06/18(木) 17:02:39ID:ZZEBh1ddシステムを更新するたびに、面倒くさい思いをするんだけど、みんなどう更新してるの?
俺は今FTPサーバを構築して、サーバのファイルをそのまま上書きuploadしてるw
そしてapache再起動(passengerです。)
tracとかsvn使ったことないんだけど、ブラウザ上でソース変更して、保存してapache再起動したら
OK!みたいなことできるんだろうか。
0344nobodyさん
2009/06/18(木) 17:18:35ID:???ActiveRecordの機能としてあるかどうか知りたかったんです。
削除対象のオブジェクトに関連しているモデルの存在チェックを行ってから
何も無ければ削除するようにしたいんです。
0345nobodyさん
2009/06/18(木) 17:27:31ID:???ffmpegを使いたいのですが、ffmpegのパスを定数として
MyFfmpeg::BIN = '/usr/local/bin/ffmpeg'
このように設定したいのです。
これをどのファイルに書けばいいのですか。
initializers の下に ffmpeg_helper.rb を作ってそこに書いてみたのですが
test のときはいいのですが development ではロードされませんでした。
0346nobodyさん
2009/06/18(木) 17:32:31ID:???ググってみた。
Railsアプリケーションをデプロイしようとするとさまざまな問題が生じるため、
Railsアプリケーションの開発は好きだけれどもデプロイは嫌いという技術者は少なくありません。
本書はアプリケーションのデプロイ時に技術者が直面するさまざまな問題の解決策を体系的にまとめた
Railsデプロイガイドです。
本書ではまずRailsアプリケーションのデプロイを家探しにたとえて解説します。
そして、一連のデプロイ処理の中で、Railsアプリケーションのホスティング方式の選択、デプロイの自動化、
サーバ管理、クラスタリング手法といった高度なトピックについて詳しく解説します。
3000円。
欲しいな〜これ。でもデプロイに1冊の本はやや大げさなきもするなぁ。
0347nobodyさん
2009/06/18(木) 18:14:38ID:???その行の id を取得するにはどうしたらいいでしょうか?
0348nobodyさん
2009/06/18(木) 18:28:09ID:???has_many と belongs_to が適切に設定されていれば、
categories(1) - items(N)だとすると
category.itemsでモデルの配列を取得できるはずだけど
itemsがあまりにも膨大なレコードの場合は気をつけてね
has_many の before_removeと組み合わせるといいのかも
と思ったら、has_many に :dependent => restrict っていつの間にか増えてるな
これでできるんじゃないだろうか
教えたのだからもし試すのなら報告を義務としたい
そうすることでスレが良くなるから
>>346
おれはそれ買ってデプロイしてるよ。
薄い本だけど3000円は安いと思う。
Subversionなんて古いというやつは少し価値が落ちるかもしれんが。
あとMongrelが中心な感じかな。
0350nobodyさん
2009/06/18(木) 19:31:33ID:???0351nobodyさん
2009/06/18(木) 22:26:17ID:???デプロイ面倒なら
クラウドコンピューターでもつかえよ
googleとかaptenaとかamazonとか
アップロード先の設定をしなくてもいいクラウド技術があるだろ
0352nobodyさん
2009/06/18(木) 22:44:49ID:???言ってる意味がわからん。
クラウドって、WebAPIでシステム間を繋ぐような、そんなイメージなんだが・・・。
0353nobodyさん
2009/06/18(木) 23:21:25ID:???ちょっと違う。
Web API でシステムをまたいで、ひとつの大きなシステムをかんがえたときに、
たとえば、システムA とシステムB とシステムC を、SOAP なりの web API で連携するが、
すべて社内の自鯖の場合(社内じゃなくてもいいけど):
→これは、web API でつないでいるけど、クラウドとは言わないよね。
クラウドとは、
・自分で作ったプログラムを、自鯖じゃないところで運用できる
→駅前探検倶楽部の API とか楽天の API を呼び出すのは、クラウドとは言えないの?
→この場合、自分で作ってリリースしたプログラムを呼び出しているのではなく、
他の人が作ったサービスを呼び出しているだけなので、
Web 2.0 的とは言ってよいが、クラウドとは言えない
・運用をホストしているところが、特にこちらがなにもしてくれなくてもスケールしてくれる。
→レン鯖を借りて、そこでプログラムを動かすのとは違うの?
→レン鯖を借りて、自分が作ったプログラムをリリースして動かせるが、
そのプログラムの負荷が大きくなっても、基本的にレン鯖業者は台数を増やしてくれないし、
お金を払って増やしてくれたとしても、それを活かすにはこちらがプログラム改修が必要。
→クラウドコンピューティングの場合、データストアが Bigtable など、もともとサーバが増えたら
自動的にスケールしてくれるような仕組みがある。
0354nobodyさん
2009/06/18(木) 23:41:49ID:???Subversionはあると便利だよ。
1. 開発環境でテストを十分にやってからコミット。
2. 本番環境でsvn up→touch tmp/restart.txt
個人でやる分にはこれで十分な気がする。
サーバの台数も少ないだろうし。
0355nobodyさん
2009/06/19(金) 01:37:02ID:???オプションはないんだろうか。
数字のIDは味気ないからユーザアカウント名にしたいんです。
パスは/users/:nameで、
link_to(h(@user.name), @user)
としたときに
link_to(h(@user.name), :name=>@user.name)
と同じ結果になるイメージです。
/users/newはどうするんだって問題があるのか・・・
0356nobodyさん
2009/06/19(金) 02:06:18ID:???class User < AR::Base
alias to_param name
end
でどうだろう。
0357nobodyさん
2009/06/19(金) 06:54:41ID:???GitかMeなんとかを覚えた方がいい
0358nobodyさん
2009/06/19(金) 09:45:43ID:???0359nobodyさん
2009/06/19(金) 09:49:12ID:???実用的な理由でsubversionではとても不便な何かが改善されてるのか?
流行始めてるのはわかるが、流行で飛びつくのってもううんざりだし。
0360nobodyさん
2009/06/19(金) 10:07:37ID:???取得元に反映せずに済む。
# svk終了しちゃったしな。
0362nobodyさん
2009/06/19(金) 10:14:00ID:???う〜ん、おれとしては特に魅力を感じないなあ
結局なんだかんだCSVがSubversionに置き換えられたように、
gitだのマーシャル?だのになるんだろうが今はいいや
0363nobodyさん
2009/06/19(金) 10:18:15ID:???Mercurialのことなら、「マーキュリアル」(mercuryの形容詞形の名詞的用法)
でも普通は hg って表記する。
0364nobodyさん
2009/06/19(金) 10:50:03ID:???は
T.create data
と書けますが、PostgreSQL 8 からの
insert into t(c1, c2, c3) values('b', 'a', 'r') RETURNING id;
はどう書けばいいでしょうか。
( RETURNING id は、insert した id を返してくれます )
execute で SQL を書けば可能ですが、
Rails 風に短縮して書けると嬉しいです。
0366nobodyさん
2009/06/19(金) 12:31:56ID:???ttp://blog.tkmr.org/tatsuya/show/247-rails-37signals-url
これで妥協かも。
/users/123-tomo
って感じで「数字-名前」になる。
数字だけよりだいぶましです。
0367nobodyさん
2009/06/19(金) 12:36:44ID:???ttp://d.hatena.ne.jp/chyk/20090211/1234362408
これでビンゴっぽい。
to_paramでnameを返すようにしておいて、
コントローラでは
User.find(params[:id])
のところを
User.find_by_name(params[:id])
で良さそう。
試してないけど。
>356 ありがとう。
0368nobodyさん
2009/06/19(金) 13:26:06ID:???ようわからんが、
model = TModel.new
model.c1 = 'b'
model.c2 = 'a'
model.c3 = 'r'
foo = model.create!
で、foo に insert した時のオブジェクトが入るから、
foo.id で取り出せばいいんじゃないの?
0369nobodyさん
2009/06/19(金) 13:31:36ID:???Subversion と Gitなどの分散バージョン管理システムの話が出ているが、
くわしくはム板の該当スレのほうが詳しいが、
別に Git/Mercurial は、Subversion の置き換えではない。
中央集中型のほうが便利なときもあれば、分散型のほうが便利なときもある。
個人で使うのだったら、Git の方が速いなどのという理由や、web 上でも取り上げられることが多くなってきたので
移行している人も多いけど、
大規模プロジェクトで、スキルレベルの低い人もいるような場合は、Subversion のほうがいい。
そんなひとが hg push とか hg pull とか絶対覚えてくれない。
だから要所要所で使っていけばよい。
0371nobodyさん
2009/06/19(金) 13:46:42ID:???結局、専任で必死にマージしてバージョン管理する人間が居たほうがうまく逝く罠。
二人以上がお互いに自分のソースの記述をマージし合って停滞したりもするし。
0372nobodyさん
2009/06/19(金) 14:08:46ID:???バージョン管理の場合はスキルレベルじゃなくて物事を整理する能力だと思う
それをスキルと言ってしまえばスキルなんだが
おれはPCのデスクトップがごちゃごちゃのやつに
バージョン管理システムはいじらせたくない
0373nobodyさん
2009/06/19(金) 14:20:03ID:???VCS を使わせて整理の大切さを教える派
0374nobodyさん
2009/06/19(金) 15:25:38ID:???■ books テーブル
id|title
--+-----
10|foo
11|bar
■ records テーブル
id|books_id|comment
--+--------+-------
20| 10|good!!
21| 11|bad...
model/record.rb に「belongs_to :book」を追加しました。
view/records/show.html.erb に
<%=h @memo[:title] %> とした場合は空欄だし、
<%=h book[:titl] %> やm
<%=h record[:title] %>
としてもタイトルが取得できず、
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.title
と出ます。DB を見てもデータは入っています。
どうすれば title が引けるでしょうか。
0375nobodyさん
2009/06/19(金) 16:07:00ID:???3*3は何ですかと質問して
Subversionは3が3つだから3+3+3=9と答えて
Git/Mercurialは3*3=9と九九を暗記している
0376nobodyさん
2009/06/19(金) 16:24:48ID:???分かってるやつは理解できるのかもしれないけど
0377374
2009/06/19(金) 16:31:43ID:???@record.book.title でいけました。
0378nobodyさん
2009/06/19(金) 18:30:49ID:???それなのに git だの hgだのを学ばねばならぬとは楽しみなことだ。
CVSでも、考えてみれば、マージはワーキングコピーのdiff & patchで済ましていた気がする。
0379nobodyさん
2009/06/19(金) 18:45:42ID:???0381nobodyさん
2009/06/20(土) 01:21:31ID:???>>373
俺はデスクトップぐちゃぐちゃだがsvnリポジトリのコミット担当してるし
ソースは無茶苦茶きれいに整理するし、gitだって使えるぞ
ひどい偏見だw
0382nobodyさん
2009/06/20(土) 07:33:20ID:???そもそも、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:???tracですが、元々はバグトラッキングシステムというくらいですので、バグ管理のものでありましたが、
今ではプロジェクト管理ツールというように広い意味で使われています。
チケット(プロジェクト管理ツールでの問題やタスクの登録単位)を登録することで、
問題やタスクを管理することができます。
複数人でのプロジェクトや他の人に問題などを公開する必要のある場合に効果を発揮するでしょう。
(私は一人プロジェクトでも使ってますが)
また、Subversion、git、Mercurialなどのバージョン管理ツールと連携して、
webでソースを閲覧したり、チケットと
バージョン管理のコミット(切りのよいソースの変更単位)を関連付けて、
お互いをリンクしたり、コミット時に自動的にチケットを終了させる、なんてこともできます。
最近では、チケット駆動開発といって、タスクのようなものをツールに登録していって、
管理ツールでプロジェクトのタスクも管理していく方法も広まってきました。
私はRails製のRedmineというツールを使っています。
Redmineは予想時間や経過時間の記録や集計、
予定日付の指定によるガントチャートの自動作成などができるため、
仕事のプロジェクトや、さらには自分のローカルにインスコしてタスク管理にも使ってます。
0384nobodyさん
2009/06/20(土) 07:50:25ID:???さて、svnとデプロイですが、(これは、gitやmercurialでも状況は同じ)
svnなどで管理しておくと、capistranoからもデプロイしやすいです。
svnの特定リビジョン(バージョン)を常に本番鯖に一発でデプロイする、とかの指定も思うがままです。
そうなると、svnを外部から参照できるように公開しておかなくてはいけないのか?という疑問がわいてきますが、
そうでなくてもcapistranoではデプロイできます。
set :deploy_via, :copy
という設定で検索してみてください。ローカル(やローカルからアクセスできる)svnリポジトリから、
単純なコピーのような感じで、リモートにデプロイできます。
0385nobodyさん
2009/06/20(土) 07:51:24ID:???特定ブランチ、最新バージョン
といったほうがいいですね。訂正
0386nobodyさん
2009/06/20(土) 11:10:15ID:???くわしくありがとうございます。
デプロイじゃなくてソース管理の話になってしまうけど、今サーバー専用マシン(に見立てたVM)に
svnサーバーいれて、apache連携させて、windowsからTortoiseSVNで操作してみました。
これは便利ですね〜。
capistranoとの連携も試してみようと思います。
ここにいる人たちにとってはスライムレベルの話しかもしれませんが…。
0387nobodyさん
2009/06/20(土) 11:13:16ID:???0388nobodyさん
2009/06/20(土) 11:35:02ID:???0389nobodyさん
2009/06/20(土) 14:08:03ID:???客は何で作るかには興味なくて、欲しいシステムと性能が得られれば文句はないわけなんだよね。
PHPで作れっていうお客さんってどういう感じなのかな?
0390nobodyさん
2009/06/20(土) 14:36:33ID:???受注したやつを回すところもあるから。
自分とこのエンジニアが対応できる言語となると、
数としてはPHPの方がずっと優勢じゃないだろうか。
0393nobodyさん
2009/06/20(土) 16:37:53ID:???0394nobodyさん
2009/06/20(土) 17:43:57ID:???使う言語を
RubyからJRubyに変えてあるだけで
何か特別な事って必要ないの?
0395nobodyさん
2009/06/20(土) 21:07:01ID:???redmine、インストールしてみますた。
これはわかりやすくいいですね。
svnと連携できて、感動しました(ただ、必要かはわかりませんが(笑)
うちの会社、進捗管理はエクセル、ソース管理はvssなんですよねぇ。
会社の改善会議で提案してみようかしら(=ω=)
チケットの最低単位が「日」なのがちょっと痛い。
0396nobodyさん
2009/06/22(月) 21:42:29ID:ashzWp6sscript/console のログをdevelopment.logに出力したいんですが、どうすればよいでしょうか??
教えていただきたく><
0397nobodyさん
2009/06/22(月) 21:53:23ID:???0399nobodyさん
2009/06/23(火) 10:26:24ID:???0400nobodyさん
2009/06/23(火) 10:49:30ID:???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(日本語)を公開します
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:???>Railsは通常、/Controller/Action/id のようになっていると思っていたのですが、
>上記の例だとURLが/Controller/id/Action/ になっているようです。
Rails 2.0 から RESTfull なかんじにかわったかんじ
0406nobodyさん
2009/06/24(水) 21:02:35ID:???passengerじゃオチまくって話にならん!
0408nobodyさん
2009/06/24(水) 22:37:00ID:???それ、おれと同じところのVPSじゃないだろうか、
おれは180Mだが数百ユーザーで落ちまくりだった。
悲しい対処でがんばってるが、360Mでもダメか。
PassengerのMAXインスタンスはいくつにしてるの?
おれは2だけど。
なんかメモリの少ないVPSあたりだと、
Mongrelの方がいいような気がする。
Railsデプロイのアドバイスに従ってればよかった。
このスレでPassengerじゃないと古いとかいうやつがいるから、
と人のせいにしてみる。
0409349
2009/06/24(水) 22:50:30ID:???それはおれのことかな?(笑)
もしそうだったとして、自分は VPS 等でなく、占有できる PC でしか動かしたことがないので、
あなたのレスは参考になるから、もっといろいろ書いてほしい
0411nobodyさん
2009/06/24(水) 23:46:13ID:???linodeだよ。
mongrelで4つくらいプロセス立ち上げて、バランサで振り分ける
ようにしたら普通に動くようになった。
0412nobodyさん
2009/06/24(水) 23:56:05ID:???メモリ4Gの専用サーバーの人?
前にそういう書き込みがあったように記憶してる。
その人は安定してるってことだったから、
それくらいがっつり積んでれば安定するのかなとうらやましく思った。
Rubyも1.9.1だしPostgreSQLは8.4βだし不安定要素がありすぎて、
Passengerの問題だけではないようにも思うけど。
遊びではないけど自分だけの責任で済むから、
ちょっと野心的にやりすぎた。
>>406のRubyのバージョンが知りたいなあ。
>>410
おれはCPIだよ。
いろいろ検討したけどあそこが一番いいように思った。
バカみたいに通信が発生すると別途相談らしいけど、
基本どれだけ通信しても追加料金かからないし。
運が良かっただけかもしれないけど、
電話で問い合わせたとき担当者もいい感じだった。
0413412
2009/06/24(水) 23:57:43ID:???> ようにしたら普通に動くようになった。
まじかよ・・・
0414nobodyさん
2009/06/25(木) 00:10:11ID:???マジ。5000↑ユニークでもいけた。
http://d.hatena.ne.jp/shohu33/20071121/1195650627
> mongrelで4つくらいプロセス立ち上げて、バランサで振り分ける
> ようにしたら普通に動くようになった。
↑なんか自分でやったかのような書き方してるけど、↑のURLのやり方
参考にしただけ。
HTTP部分をApacheに任せられるものすばらしい。
0415nobodyさん
2009/06/25(木) 00:16:11ID:???おお、サンクス。Apache併用方式か。
おれはモバイルだからIPで判別してPCからのリクエストをはじきたいんだよね。
Mongrelはそのへん分からなかったけど、Apacheに任せればいいか。
1.9.1はMongrel Clusterのインストールに問題があったのも躊躇した理由だが、
いろいろ試してみるよ。
0416409
2009/06/25(木) 01:29:57ID:???> >>409
> メモリ4Gの専用サーバーの人?
いや、ちがいます。
Passneger を動かしているのは、職場や客先での業務イントラだけ。
もちろん専用のサーバなので、メモリも2GBとか4GBとか。
だけど同時アクセス数は少ないけどね
0417nobodyさん
2009/06/25(木) 08:40:07ID:???>>412
サンキュー、参考にします。
>>414のブログの記事ってもう一年半も前のなんだけど、
いまだにこれがベストプラクティスなの?
0418nobodyさん
2009/06/25(木) 09:53:42ID:???Ruby は言語が綺麗でも実用的じゃない。書生論。
0419nobodyさん
2009/06/25(木) 13:30:58ID:???そういうもともと論から始めるのも、いかにも書生論って感じだよね。
まぁGoogle App Engineで、Pythonでも始めたら?
信頼と安心のGoogleブランド
0420nobodyさん
2009/06/25(木) 14:42:40ID:???古いけど実績はある。
枯れてるサーバーはそうそう急激な変更はしないよ。
サーバーは安定しなきゃ話にならないし、適材適所じゃないだろうか。
0421nobodyさん
2009/06/25(木) 16:43:20ID:kFfq4IDXBazaarなら中央も分散もどちらの運用も可能ですよ!
0422nobodyさん
2009/06/25(木) 22:36:23ID:???0424nobodyさん
2009/06/26(金) 05:06:56ID:???0425nobodyさん
2009/06/26(金) 07:25:25ID:???遅レスですが、メモリ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:???バランサーといっても、
>>414の場合はハードのロードバランサーを使うんじゃなくて、
Apacheのバランシング機能を使うだけだよ。
大規模でそれなりにお金がかかるのは間違いないと思うけど。
>>425
おお、サンクス。
専用2台って最低でも月4〜5万かかるよね。
ゆとりある組とかつかつ組のノウハウは別にためないときついね。
おれはPostgreSQLのキャッシュを10Mにして抑えてるよ。
データはためてないようにしてる。
しかし50万を2台ってやるなあ。
それだとピークタイムは20アクセス/秒以上もあり得るよね。
おれも静的コンテンツにできるものは徹底的に静的にしたりがんばってるのだが。
バッチやプチクローラー(対象は数百くらい)もあるから、メモリ360Mにあげようかな。
rsyslogとかも引きずられて落ちたりするし><
0427nobodyさん
2009/06/26(金) 14:57:27ID:???サーバー室はミニ冷蔵庫w
0428nobodyさん
2009/06/26(金) 17:32:18ID:???比較の問題だが安心と安全を金で買うようなものだ
24時間監視とか個人じゃ無理だし
0429nobodyさん
2009/06/26(金) 17:47:11ID:???0431nobodyさん
2009/06/26(金) 18:15:21ID:???サイト名やページ名のように、デフォルト値を共通に設定したり、
viewなどで使いまわしたい場合は、Railsではどうするのがよいのでしょうか?
・共通コントローラーを作って、継承させる
・ヘルパーを作る
共通コントローラーだと、全部のコントローラーをそれから派生するように決まりつくらないとあかんですよね。
手間も面倒くさい、とかいったらいかんよなあ…
0433431
2009/06/26(金) 18:55:09ID:???0434nobodyさん
2009/06/26(金) 19:04:45ID:???なんでもコントローラーでやろうとする方が初心者の考えだと思う。
どうしても変数でほしいならconfigでやるべきじゃないだろうか。
0435406
2009/06/27(土) 00:21:23ID:???ちょっと無責任な書き込みしてしまったので、訂正。
メモリ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:???俺の場合は、共有レイアウトファイルを作って、それに共通メニューとか
サイトロゴを書き込んで、コントローラの先頭にlayout "common"みたいな
感じで共通レイアウトファイルを使用するよう設定してる。
content_forつかえば、ビューのソースからレイアウトファイルへの出力も
できるから、あんまり不便だとおもったことない。
■ このスレッドは過去ログ倉庫に格納されています