トップページ⇒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
0136nobodyさん2009/05/25(月) 13:45:02ID:???
redmineの質問なのですが、Rails製なのでここでもよいですよね?

Windowsで動かしてみているのですが、redmine.batに以下を書いて、

 ruby script/server -e production -p 2900

batを起動すると、DOS窓?が開いた状態になってしまうのですが、
これを開かないで実行しておくことはできないのでしょうか?

 rubyw script/server -e production -p 2900

だと、タスクマネージャで見ているとrubywがすぐに終了してしまいます…

Portable化したいので、サービス化以外の方法で行いたいのですが…
01371362009/05/25(月) 14:21:47ID:???
>>136 ですが、
Railsスレの過去ログ見てたら解決策がありました。

バッチファイル化しなければよかったんですね…。
例えば、ショートカットを作って、
 ruby script/server -e production -p 2900
を割り当てて、作業ディレクトリをredmineのものにしたら、窓ひらかずに起動できました。

ありがとうございました。

追加でお聞きしたいものなのですが、
このようにして起動した場合、タスクマネージャではプロセスruby.exeが載ってしまって、
他のRubyプロセスと区別がつかないのですが、区別を付くようにする方法ってないものでしょうか?
重いrubyアプリなどを動かした時に、redmineの方を間違って落としてしまわないかと心配です。

Ruby初心者スレの方で聞いたほうがいいのかな…。
0138nobodyさん2009/05/25(月) 14:57:47ID:???
>>137
ruby.exe を hoge.exe に別名でコピーして、
ruby script/server の代わりに、
hoge script/server とやる。

なんかダサイけど、これが一番手っ取り早い。

あるいは、Linux 版で mongrel 使っていると、
$RAILS_ROOT/log に mongrel.pid というファイルが出来るので、
その pid を kill すればいいけど、Windows でもそうなっていませんか?
01391362009/05/25(月) 15:46:00ID:???
>>138
ありがとうございます。
おお、ruby.exeは名前変えても動くんですね!

findしてみましたけど、mongrel.pidは見つかりませんでした。logにもなかた。windowsのせいかな…

exeの名前を変えると言われて気づいたのですが、タスクマネージャのメニューから「表示」「列の選択」から、
「コマンドライン」をチェックすると、プロセス起動時に渡した引数を見ることができました。
これで見分けがつきます!
これはVistaの機能だと思うのですが、Windows XPなら Process Explorerとかを使えば同じことができるはずです。

ありがとうございます。助かりました。

て今気づいたけど、
>>136-137が実は解決していませんでした orz
窓がやはり出てしまいます。ショートカットのオプションで最小化していただけでした。
裏で動かすには、サービス化以外で何がいいんだろ…。
0140nobodyさん2009/05/25(月) 15:48:11ID:OXJaCHfT
railsを初めて触って動作を確かめています。

scaffoldでモデル(member)とビューを自動で作ったのですが、
気になる点があるので質問させてください。

以下のどちらのURLでもメンバーID=1番の情報を表示できるのですが、
これはどこで定義されているのでしょうか?(showが省略できる)

http://localhost:3000/members/show/1
http://localhost:3000/members/1

members_controller.rbもroutes.rbにも見当たりませんでした。

indexとshowは特殊なアクションでrails内部で既に定義されているという
ことなのでしょうか?

(railsのバージョンは2.3.2です。)
0141nobodyさん2009/05/25(月) 15:53:56ID:???
routes.rbの中にmap.resourcesってやつがあると思う。
そいつが指定されるとそうなる。
0142nobodyさん2009/05/25(月) 15:58:47ID:OXJaCHfT
>>141
すばやい返事ありがとうございます。
ちょっとmap.resourcesについて調べてみます。
0143nobodyさん2009/05/25(月) 16:00:39ID:???
>>138
NTFSならハードリンクでもいける
01441382009/05/25(月) 16:14:38ID:???
>>143
Rails ではなく Windows の話になるけど、
hoge.exe を ruby.exe のハードリンクとした場合、
hoge.exe を消すと ruby.exe も消されてしまわない?(WinXP)
http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html

いまやってみたら、消そうとしたら「アクセスが拒否されました」と言われて、そもそも
ハードリンクで作った hoge.exe が消せなくなった。
(再起動したら消せるかも知れないが、めんどくさくてやってない)

>>139
バッチファイルに、以下じゃダメかな?
start ruby scrit/server
01451362009/05/25(月) 16:30:14ID:???
>>139

> バッチファイルに、以下じゃダメかな?
> start ruby scrit/server

実は、
 start /B ruby scrit/server
とか
 cmd.exe /k start /B ruby scrit/server
とか色々試したのですが、うまくいかず、結局、wshのjscriptを使って起動させることにしました。

----------redmine_start.js-----------
shell = WScript.CreateObject("WScript.Shell");
shell.Run("ruby.exe script/server -e production -p 3500", 0);
----------------------------------
Runに 0 を指定するとウインドウを非表示で起動してくれるみたいです。

参考:
Run メソッド
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
Windows Script Programming: バッチファイル、コンソールアプリなどを非表示で実行する。
http://scripting.cocolog-nifty.com/blog/2006/10/post_c77d.html


無事解決した模様です。ありがとうございました。
01461382009/05/25(月) 16:33:13ID:???
>>145
こちらこそ参考になりました。どうもありがとう
0147nobodyさん2009/05/25(月) 18:08:00ID:???
>>126
レスありがとう。まさにそんな感じだった。
バイナリデータが、一部がごそっと欠損するわけじゃなくて、
途中途中のデータが消えてスカスカになる感じ。
まさに、バイナリデータを文字として開いているような・・・。

結局、指摘の方法をやってみたけどもだめで、素直にlinuxでやることにした。
(やりかたが間違ってたら申し訳ない。)


しかし新たな問題が発生。。。

今error_message_forを使ってエラーメッセージをだしているのだけども、
attachment-fuのvalidates_as_attachmentをつかって検証すると、
添付ファイルが無いときに

Content type can't be blank
Size can't be blank
Size is not included in the list
Filename can't be blank

と上記のような、ユーザーには関係ない内部的なエラーが表示される…。
今は、controllerの添付ファイルアップロード用メソッドに、
添付ファイルがpostされなかったら@モデル名.erros.addに「添付ファイルが無い」旨の
エラーメッセージを詰めて、処理を中断するようにしてるけど・・・

このプラグイン使っている人は、ファイルが選択されずにpostされたときは 、
どこで検証して、メッセージを表示してるんだ?
0148nobodyさん2009/05/25(月) 18:21:59ID:???
>>144
> hoge.exe を消すと ruby.exe も消されてしまわない?(WinXP)
> http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html
Explorerにそういうバグがあるの?
リンク先にもそんな記述はないようだけど。

> いまやってみたら、消そうとしたら「アクセスが拒否されました」と言われて、そもそも
> ハードリンクで作った hoge.exe が消せなくなった。
そりゃhoge.exeが動いてるんじゃね?
01491382009/05/25(月) 18:53:30ID:???
>>148
>> hoge.exe を消すと ruby.exe も消されてしまわない?(WinXP)
>> http://www.atmarkit.co.jp/fwin2k/win2ktips/982hardlink/hardlink.html
>Explorerにそういうバグがあるの?
>リンク先にもそんな記述はないようだけど。

失礼、ジャクションと勘違いしていた。

>> いまやってみたら、消そうとしたら「アクセスが拒否されました」と言われて、そもそも
>> ハードリンクで作った hoge.exe が消せなくなった。
>そりゃhoge.exeが動いてるんじゃね?

こっちについては、hoge.exe は動いていなかったが、なぜかはわからん。
Who Lock Me で調べても出てこなかったが、ファイルサイズも小さいし気にしないことにする。

0150nobodyさん2009/05/25(月) 23:46:56ID:???
Drupalと連携できないのRoRは糞だダメだカスだ
0151nobodyさん2009/05/26(火) 00:16:03ID:???
>>126
報告ですが、linuxだとできますた。
自分は最近やっとこさVMとかlinuxとか動かせるようになったひよっこだが、
オープン系の人ってwindows嫌いなんだろうかw
0152nobodyさん2009/05/26(火) 00:43:30ID:???
オープンソースとオープン系は別物。

「オープン系」はメインフレームの一社でのまるごとシステム提供に
対してUNIXやWIndowsでいろいろなメーカーのを使うことを指す用語。

嫌いというか、 Windowsに興味がない人は多い。
UNIX畑の人が優勢な世界だしね。
MacはOSXになってUNIX寄り(定義上はUNIXそのもの)になったから
まだましだが。
0153nobodyさん2009/05/26(火) 01:01:38ID:???
Windows使う奴はゆとりかマジ基地の2択
0154nobodyさん2009/05/26(火) 01:21:20ID:???
職場じゃWindowsしか使わせてもらえないんですけど
「Windowsしか使えない奴」なら同意してあげる
0155nobodyさん2009/05/26(火) 04:50:28ID:???
>>151
Windows嫌いというより、テキストモードが負の遺産というのはガチ
0156nobodyさん2009/05/26(火) 07:31:40ID:???
マクはUNIX系とは言いがたい。
sshで全部の設定が出来る訳じゃないし、鯖用途で使われてるのは、ほぼ皆無。
まだLinuxのほうがUNIXに操作方法が近い。

CUIとrubyみたいなスクリプト系の相性の良さは異常だしな。
GUIのためにスクリプトの手間が増えるのは萎える。
0157nobodyさん2009/05/26(火) 08:41:50ID:???
>>156
そのへんをふまえて「定義上は」と書いてある。
0158nobodyさん2009/05/26(火) 11:29:07ID:2daPE8kx
既存のテーブルbook, itemがあります。
主キーとしてそれぞれbookid, itemidが設定されています。
それぞれのモデルに
set_table_name "book"
set_primari_key "bookid"
has_many :items

set_table_name "item"
set_primari_key "itemid"
belongs_to :book
を設定しています。

script/consoleを使用して以下のようにしています。
b = Book.find(1)
b.items
ですが、b.itemsの行で以下のようなエラーが出ます。
ActiveRecord::StatementInvalid: PGError: ERROR: column item.book_id does not exist
itemテーブルのbook_idを探しているようなのですが、itemテーブルの外部キーはbookidなので
エラーが出ているようです。
railsがbookidでitemテーブルを検索するようにするためにはどうしたらよいのでしょうか?
0159nobodyさん2009/05/26(火) 15:11:42ID:???
Railsをfastcgi等を使用してapacheで走らせたときに
スクリプトへの変更はすぐに反映されますか?それともサーバの再起動が必要?
0160nobodyさん2009/05/26(火) 17:41:24ID:???
試してごらん
01611592009/05/26(火) 19:04:33ID:???
出来ないということですね
ありがとうございます
0162nobodyさん2009/05/26(火) 20:00:03ID:???
railsは自動的に色々ソースを補助してくれているようだけど。
もし自分がはまったとき、
みんなソースをどうやって追いかけているの?
全部見ていく訳じゃないんでしょう?
0163nobodyさん2009/05/26(火) 20:06:28ID:???
言葉の勉強をしよう
0164nobodyさん2009/05/26(火) 20:25:56ID:???
PassengerならApache再起動なしでいけるけどな
0165nobodyさん2009/05/26(火) 22:04:58ID:???
>>158
foreign_keyオプションについて調べるんだ。
0166nobodyさん2009/05/26(火) 22:07:08ID:???
>>162
定義箇所をgrepで探す。
Railsはとくに動的に定義されるメソッドが多いからそれだけじゃ
どうにもならなくなるんだが。
その場合、method_missingあたりから追うことになるな。

エラーなら、とりあえずログに出てくるバックトレースを見る。
0167nobodyさん2009/05/26(火) 22:41:14ID:nc85Zu/k
Rails のアプリケーションは、http://myhost/foo/ みたいに、ディレクトリを一段下げた状態で運用できますか?

たとえば /usr/local/foo 以下が RAILS_ROOT だとして、RAILS_ROOT で mongrel 等を使って
ruby script/server で起動すると、アプリの URL は
http://myhost/ 直下になりますよね。
開発環境では、これで開発しています。

本番環境が、Passenger を使って http://myhost/foo/ 以下で運用することになりました。
Passenger 等を使うと、/*** はいくらでも httpd.conf で自由に定義できると思いますが、
アプリの view で image_tag("icon.png") とすると、
<img src="/images/icon.png">
とレンダリングされてしまい、/image ディレクトリは web サーバのトップにあることが前提となってしまいます。

Passenger 等で、http://myhost/foo/ にアプリケーションを展開した場合、
image_tag("icon.png") は、
<img src="/foo/images/icon.png"> となってくれるのでしょうか?

※Java Servlet の HttpServletRequest#getContextPath() みたいなのを内部でやってくれるのかどうか
0168nobodyさん2009/05/26(火) 22:44:39ID:???
最近のPassengerはそこバグってるはず。
config/environments/production.rb
config.action_controller.relative_url_root = '/foo'
とかやったらどうなる?
01691672009/05/26(火) 22:46:23ID:???
>>168
早速レスどうもありがとうございます。
実はこれから Passenger をビルドしようとしているので、
まだ Passenger で動かしたことない。

というか image_tag() が出力する HTML タグは、
Passenger か mongrel/webrick かで、出力結果が変わるのですか?
01701582009/05/26(火) 22:52:37ID:2daPE8kx
set_table_name "book"
set_primari_key "bookid"
has_many :items, :foreign_key => :itemid

set_table_name "item"
set_primari_key "itemid"
belongs_to :book, :foreign_key => bookid

とすることでうまく動作するようになりました。
>>165さんありがとうございました。
0171nobodyさん2009/05/26(火) 22:57:13ID:???
>>169
image_tagなんかの出力は actionpackのasset_tag_helperで定義
されているが、ActionController::Base.relative_url_root の値が
頭に付く。この値は環境変数でデフォルト値を変えられるので、
呼び出すプロセスが変更すればその影響を受ける。

Passengerがそこをどうしてるかは知らないけど。

0172nobodyさん2009/05/26(火) 23:29:44ID:???
サイトに時計を
「10時15分」
とか数字で表示させたい場合
どんな手法がいいですか?
あと、一緒にカウントダウン表示も行いたいのですが。
0173nobodyさん2009/05/27(水) 00:13:56ID:???
基本的にJavaScriptかFlash
要件によるが
というかRails関係ない
0174nobodyさん2009/05/27(水) 00:37:31ID:???
>>156,157
どのへんがsshで設定できないの?
01751272009/05/27(水) 02:11:16ID:jIlGcikV
>>128
むーんやはりそんな感じですか・・
ありがとうございましたm(_ _)m
01761672009/05/27(水) 03:42:10ID:???
>>168 >>171 レスどうもありがとうございます。
>>171 さんのそういう情報も聞きたかったでした!!

こちらの環境:
・CentOS 5.1
・Apache 2.2.3(httpd-2.2.3-22.el5.centos)
・ruby 1.8.5 (2006-08-25) [i386-linux]

# gem list

actionmailer (2.1.1)
actionpack (2.1.1)
activerecord (2.1.1)
activeresource (2.1.1)
activesupport (2.1.1)
cgi_multipart_eof_fix (2.5.0)
composite_primary_keys (1.0.10)
daemons (1.0.10)
dcov (0.2.2)
fastthread (1.0.7)
gem_plugin (0.2.3)
haml (2.0.9)
mongrel (1.1.5)
mysql (2.7)
passenger (2.2.2)
rack (0.9.1)
rails (2.1.1)
rake (0.8.4)
rcov (0.8.1.2.0)
rspec (1.1.12)
rspec-rails (1.1.12)
01771672009/05/27(水) 03:43:18ID:???
まず gem で Passenger をインストールし(上記のように、2.2.2 が入った)
http://redmine.jp/tech_note/apache-passenger/ にあるように
VirtualHost 形式でやってみたところ、Passenger で Rails アプリは動いた。
これは問題なし。

つぎに http://rubyist.g.hatena.ne.jp/Ubuntu/20080729/1217336403 のように、
VirtualHost を使わず、

# ln -s /usr/local/foo/public /var/www/html/foo
として、httpd.conf に以下を追記した方式で、

RailsBaseURI /foo

Rails アプリを http://myhost/foo/ でやってみた。結果としてうまく動いた。

アプリの view の中で image_tag("icon.png") とすると、
<img src="/foo/images/icon.png">
というように /foo が付加された。
また <%= @controller.request.relative_url_root %> とすると、
/foo が出力された。(*1)

ということで問題ないようです。
ちなみに >>168 にあるように、 config/environments/production.rb に
config.action_controller.relative_url_root = '/foo'
は書いていません。

production.rb をいじらなくても目的は達成できたけど、以下を追試した。
01781672009/05/27(水) 03:43:45ID:???
○追試1:
production.rb に >>168 を書いて Apache を再起動し、http://myhost/foo にアクセスすると、
Rails アプリが立ち上がらない。Passenger の HTML が出て、

Ruby on Rails application could not be started
Error message:
  undefined method `relative_url_root=' for ActionController::Base:Class

というのが出る。
もし書くとしたら、どう書くのが正しいのだろうか?

○追試2( >>171 を見て):
(*1) の時、view で <%= @controller.request.relative_url_root %> の代わりに以下のように書くと、
<%= ActionController::Base.request.relative_url_root %>
以下のようなエラーになった。

ActionView::TemplateError (undefined method `request' for ActionController::Base:Class) on line #?? of index/index.html.erb:

これも同じ問題かな?
0179nobodyさん2009/05/27(水) 14:03:41ID:???
ちょいとFour Days on Railsなど読んでRailsを始めているものなのですが、
素朴な疑問なのですが、
通常データベースの最初の作成って、どんな風におこなっているもんなんでしょうか?

rake db:create だと mysqlのroot ユーザみたいなあらかじめ権限あるユーザでないと作れないし、
というかdevelopmentとかtestはrootでも別にいいかって感じなんですけど(と、Railsによるアジャイル本P26にあった)、
productionの場合、さすがに root まんまってのも変だし…

結局、mysql コマンドでroot で
 create database 'my_project_production' default character set utf-8;
 grant all privileges on my_project_production.* to my_project@localhost identified by (パスワード)
みたいにDB作ってユーザー作成ってことをするのも、他の開発者とか、テスト環境とかで
毎回やってたらあれなんで、テキストに書いて、
 myslq -u root -p < create_db.sql
みたいにやってもらう、ってことになるかと思うのですが、
その辺、スマートな方法ってないもんでしょうか?
0180nobodyさん2009/05/27(水) 17:58:08ID:???
unixの勉強してちゃんと権限設定すれば良いだけ。
0181nobodyさん2009/05/27(水) 18:25:31ID:???
は?
0182nobodyさん2009/05/27(水) 19:04:52ID:???
レンタルサーバーだから権限無い、どうしたらいいのって質問でしょw
0183nobodyさん2009/05/27(水) 19:11:52ID:???
いや違うだろw
なぜunixの権限設定の話になるの?データベースユーザの話でしょ?

ちなみにおれはマイグレーション機能を使っていない、
が元レスに対する回答かなあ
0184nobodyさん2009/05/27(水) 19:27:27ID:???
パッセンジャー2.2.1って不安定だな。バージョンあげれば安定するだろうか。
バージョンあげてもっとひどい目に遭いたくないから躊躇してしまう。
0185nobodyさん2009/05/27(水) 20:07:31ID:???
>>179
create database は、MySQL にログインして実行しているけど、
そこからさきのテーブルを作るところは、rake db:migrate でやっている。

>他の開発者とか、テスト環境とかで 毎回やってたらあれなんで、テキストに書いて、

別にあれというほどの作業でもないと思うが。
チームに人が増えたら、DB 担当者に「佐藤さんが今日から入ったので、satou スキーマを作ってあげてください」
でいいんじゃないの?

>>184
どう不安定なのか知りたい。
0186nobodyさん2009/05/27(水) 21:25:43ID:???
>>185
アパッチごと落ちるとかインターナルサーバーエラー。
落ちるのはやめてほしいが1日に1回くらいかな。
知りたいってことは安定してるの?
0187nobodyさん2009/05/27(水) 21:33:39ID:???
>>186
Passenger2.2.2使ってるけど、特にApacheが落ちるという事はないな。
環境が違えば、結果も変わると思うので、ここで聞いても仕方ないのでは?
テスト環境作って、そこで最新版のテストをしてみる事をお勧めします。
0188nobodyさん2009/05/27(水) 22:34:45ID:???
うちはさっぱり動かんわ。
sendmsg()がEBADFで失敗するところまでは追いかけたけど、なんで失敗するのか
さっぱりわからん。
0189nobodyさん2009/05/27(水) 23:27:55ID:???
>>187
ふ〜む、サーバーのメモリが足りないのだろうか。
ちょっと開発環境でバージョンあげてテストしてみる。
mongrelの方がよかったかもと後悔中。
01901872009/05/28(木) 00:12:48ID:???
>>189
ところで、このあたりの値ってどうしてます?
PassengerMaxInstancesPerApp
PassengerMaxRequests

自分は今このくらいで動かしてる。
PassengerMaxInstancesPerApp 8
PassengerMaxRequests 15
ちなみにサーバのメモリは4GB。

以前、PassengerMaxRequestsを設定しなかったら
passenger-statusで表示される1個あたりのProcessedが500とかになってて大変な事になってた。
アクセスが多すぎてApacheが落ちる?という事があり得るなら
PassengerMaxInstancesPerAppとPassengerMaxRequestsを調整してみるといいかも。
確証はないけど。
0191nobodyさん2009/05/28(木) 01:17:36ID:???
>>190
ありがとう。

おれの方は個人、といっても趣味ではないんだけど、
VPS(メモリ200Mくらい)を使って立ち上げた卵サービス。

パラメータは、

PassengerMaxPoolSize 2

しか設定してない。
マニュアルを見ると「2」でも少しきついかもなんだけど。

アクセスは重なっても瞬間3リクエスト/秒くらいだから、
悔しいけどアクセス過多というのはあり得ないんだよね・・・orz

mongrelの方が消費するメモリが少ないみたいだから、
これくらいの小っちゃい規模ならmongrelの方がいいのかなと思った。
0192nobodyさん2009/05/28(木) 10:30:54ID:???
>>191
VPSのそのスペックで秒間3リクでrailsなら過多だぞ。
それがどれだけ続くのか言わないと
0193nobodyさん2009/05/28(木) 10:51:19ID:???
>>182
NO

>>183
そです。

>>185
うん、まあそんなもんかー。それくらい手間じゃなかろう、というスタンスですか

参考になりました。サンクス
0194nobodyさん2009/05/28(木) 11:13:37ID:???
linodeの再安プランを契約した。メモリ360MBで転送量200G。
passengerかmongrelか迷うな〜。

passengerはVMにいれて動くとこまで確認したけど、いいのか悪いのか
わかんねー。
0195nobodyさん2009/05/28(木) 13:20:08ID:???
>>193
そもそも、開発者は production 運用時のパスワードとか知る必要はないんじゃね。
ウチはそこんとこ、deployスクリプトでよろしくやってる。
0196nobodyさん2009/05/28(木) 14:52:22ID:???
>>190 のレスをみて、passenger-status というコマンドを初めて知った。
Processed とはどういう意味でしょうか?

こちらでは、開発チーム4人、テスト環境で passenger を使っていて、ホストしている web アプリは1つ、という状況。
ラッシュテストではなく、make/UT フェーズの後で、ブラウザをぽちぽち触っている程度。

あと httpd.conf では、おきまりの追記する 3行と、RailsBaseURI /foo しか定義していない。

----------- Domains -----------
/home/******/rails:
 PID: 10322  Sessions: 0  Processed: 111  Uptime: 23m 26s
 PID: 15097  Sessions: 0  Processed: 80   Uptime: 7m 33s

Core2Duo E8400、メモリ3GB、CentOS 5.1(32bit)です。
0197nobodyさん2009/05/28(木) 15:57:18ID:???
>>192
あ、すまん。もう少し詳細に。

まず、負荷を抑えるために静的ファイルにできるものは全部静的にしてるから、
そのアクセスすべてがRailsのコントローラーを通るわけじゃない作り。
Railsのコントローラーを通るリクエストは全体のうち10〜20%くらい。
瞬間3リクエスト/秒というのは1日1回あれば上等で、1日平均2000〜4000リクエストくらい。

1つ上のプランにしようか検討中(メモリが倍くらいになる)。
0198nobodyさん2009/05/28(木) 19:46:53ID:???
>>196
1つのRailsインスタンスが処理しているプロセス数だと認識している。
初期値では無制限になっているから負荷が高い時は
PassengerMaxRequests 50
など少ない数値を指定すると良いかも。
こうすると、各インスタンスのProcessedの値が最大50に制限される。
0199nobodyさん2009/05/28(木) 21:57:11ID:???
みんなsqlとかページに対して、キャッシュ使ってる?
俺はとりあえずキャッシュとか一切考えないで作って、
支障でてきたらメンテナンスしようかなってくらいなんだが・・・

結構しんどそう。
0200nobodyさん2009/05/28(木) 21:58:30ID:???
問題が出てから対応したらいいと思うよ
0201nobodyさん2009/05/28(木) 22:02:19ID:???
Premature optimization is considered harmful.
0202nobodyさん2009/05/28(木) 23:27:35ID:???
ためしに主要コンテンツにキャッシュ使うようにしてみたら、かなり早くなったw
0203nobodyさん2009/05/29(金) 03:17:14ID:2GV35QJ0
AWDRのThird Editionを見ているのですが、
外部キーの定義にt.references :userを使わずt.integer :user_idを使っています。
なぜなんでしょうか?
0204nobodyさん2009/05/29(金) 07:49:22ID:???
>>203
それは好みの問題なんじゃないの?
どっちを書いても結果は同じ事になるからね。

0205nobodyさん2009/05/29(金) 21:04:19ID:???
render :update で行う処理をヘルパで定義したんだが、
ヘルパで定義したメソッドから、別のヘルパに定義されているメソッドを呼び出そうとしたら
上手く呼び出せないんだ
なぜかActionView::Helpers::JavaScriptProxy のインスタンスが帰ってくる

どうすればいい?
0206nobodyさん2009/05/29(金) 21:43:02ID:???
どう書いてるのかも分からないのに・・・
0207nobodyさん2009/05/29(金) 23:19:50ID:???
Ruby会議行く人いるー?
0208nobodyさん2009/05/29(金) 23:23:02ID:???
チケット買えたら行く。
去年は会場が広かったせいかわりと余裕があったが今年はどうだろうね。
0209nobodyさん2009/05/30(土) 01:57:19ID:???
wycatsのセッションが楽しみだ
0210nobodyさん2009/05/30(土) 02:36:46ID:???
ruby会議というのに行ってみようと思う ruby 歴2ヶ月のものですが、
チケットは瞬殺してしまうものなのでしょうか?
0211nobodyさん2009/05/30(土) 02:41:08ID:???
セッションスピーカーに「坂本龍一」って人がいるんだけど、
映画ラストエンペラーでアカデミー音楽賞とった人?
0212nobodyさん2009/05/30(土) 06:22:13ID:???
>>211
教授くんの?つかなんでww
0213nobodyさん2009/05/30(土) 10:29:12ID:???
2006、2007年はそこそこ瞬殺(数時間)、2008年は会場が広いのと
東京から遠かったせいか、もっとゆっくりだったと思う。
0214nobodyさん2009/05/30(土) 17:53:01ID:???
railsでGMAILをsmtpサーバーにしてるひといる?
アクティベーション用につかってたんだけど、とづぜんおくれなくなった。

気になるのは、GMAILにログインして送信済みトレイをみるとそのメールは
送ったことになってる。
なお普通にメールは送れる。

なんか同じような手形式のメールばっかりやってたから、迷惑メールのサーバーとして
利用してると勘違いされて、ブロックかけられてるような気がするのだが・・・。
0215nobodyさん2009/05/30(土) 18:19:50ID:???
gmailは送信数制限があったと思うが
0216nobodyさん2009/05/30(土) 18:36:10ID:???
>>215
マジか・・・。
素直にメールサーバ立てるかあ。
0217nobodyさん2009/05/31(日) 15:45:27ID:???
無料の Gmail の SMTP は上限500だったっけ。
Google Apps の Gmail は2,500だったような気がする。

Gmail アカウントを10コ取得、アカウントをランダムで
回してメール送信すれば OK。
02181132009/06/02(火) 12:05:26ID:???
すみません、質問させてください。

production環境でもdevelopment環境みたいに
エラーが発生した時に詳細を出したいんですがどこで設定したらいいですか?
また、Controllerのメソッドを特定のアドレスからのみ実行させたいんですが、
これってrailsの設定でできます?
(ENV['REMOTE_HOST']を取得して分岐させた方が早いですか?)
0219nobodyさん2009/06/02(火) 12:12:45ID:???
>>218 grep consider_all_requests_local config/environments/*.rb
0220nobodyさん2009/06/02(火) 18:37:29ID:???
いまどきのデプロイって何使うのがいいんでしょ。capistranoでいいのかな?
作者メンテ終了ってきいて不安…
0221nobodyさん2009/06/02(火) 21:31:58ID:???
>>220
http://www.infoq.com/jp/news/2009/03/ruby-deploy-roundup

Capistrano の後継は vlad というのかな?

もっとも自分は、デプロイは、ローカルで tar.gz つくる→転送する→サーバ側で
Passenger の touch restart.txt する
という原始的なことしかしてないけど(笑)

Capistrano は評判いいらしいが、使ったことない。
0222nobodyさん2009/06/02(火) 21:35:02ID:???
作者のメンテがなくなって困るのってどんなときかなぁ

ある程度使っている人がいるだろうから
なにかあってもなんとかなりそうじゃね?
0223nobodyさん2009/06/02(火) 21:37:41ID:???
<div style="width: 100px; border: 1px solid black;">
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</div>

で、firefoxだとdivの枠線を突き抜けてしまう現象についてなんだが・・・。
今はrubyで<wbr/>タグを文字と文字の間にはさみこんで対処してるんだが・・・
これってみんなどうしてんの?

転送量増えるし、出来ればこの方法はとりたくないなぁ。
0224nobodyさん2009/06/02(火) 21:39:09ID:???
>>223
cssでスクロールさせる
0225nobodyさん2009/06/02(火) 21:40:31ID:???
overflow:auto;
0226nobodyさん2009/06/02(火) 22:07:35ID:???
>>224-225
どうもありがとう。
0227nobodyさん2009/06/03(水) 03:54:32ID:???
そもそもオープンソフトでサポートは期待出来ないしな。
さっくり商用ソフト使ってサポート契約しておくのが安心。
0228nobodyさん2009/06/03(水) 11:48:06ID:???
なんでいきなりそんなことを言い出すんだw
0229nobodyさん2009/06/03(水) 22:26:10ID:???
あぁ・・・save!するよsave!・・・
びぎんっ!れすきゅー!
0230nobodyさん2009/06/04(木) 19:17:08ID:???
少し、Capistranoについてお聞きいたします。

svnなどのバージョン管理ツール経由でデプロイする場合は、
リポジトリサーバーを公開しておく(デプロイ先からアクセス可にしておく)必要があるわけでしょうか?

リポジトリが公開サーバーからアクセスできない(例えばローカルネットワークやファイヤーウォール内にあるなど)
場合は、どうしたものでしょうか?

また、svn等SCM経由でデプロイする利点というのは何があるのでしょうか?
0231nobodyさん2009/06/04(木) 19:25:16ID:???
この辺でググるヨシ。
set :deploy_via, :copy
set :copy_remote_dir, "/tmp/tmp2"

0232nobodyさん2009/06/04(木) 21:27:28ID:???
どうしてネット上では左翼(左派)の方が叩かれやすいのだろう。

ルーツはネットの掲示板が普段言えないこと=反良識だったところだろうね。
で、良識と左派思想に近いものがあったのが原因かと。

多分今のネットの言論の遡った先って、大昔のあめぞうとかUG系の掲示板で話されてた
中二病的な会話だったと思う。
「うぜえ、氏ね」とか「ハッキングが問題なんじゃねえ、ちょっとつついたら入られる
くらいセキュリティもちゃんとせずにネットやるほうが悪いんだよ」とか「殴られても
やりかえすな、ヘラヘラしてろってかw」みたいな。
表によろしい発言かというとそうじゃないけど、まあちょっと良識に反発しようと
思って考えずに口にだす暴論、みたいな。
それが2chになって、2chが巨大化して一般人も流入して、セコウ工作が……となっていくうちに
「ヘイトスピーチ」「自己責任」「9条破棄」と変質していったと。

でも確かにほんとうざいな、右翼コメ。
雑談スレで何かっつーとそういうネタ持ってくる人とかもうね。
0233nobodyさん2009/06/04(木) 21:32:45ID:???
>>230
set :gateway とかいう設定も使えそうな薬缶。
0234nobodyさん2009/06/04(木) 23:27:36ID:???
マイグレーション、ちゃんと設定すると結構便利だな。
0235nobodyさん2009/06/05(金) 01:44:35ID:???
Model の validation を呼び出し元 action によって切り替える、といった事ってみんなどうやってやってる?
:if とか :unless とか上手く使えばスマートに書けるのだろうか・・・。
それとも Model 内で 呼び出し元の action 取得できるような機能ってあったりする??
■ このスレッドは過去ログ倉庫に格納されています