1 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 12:18:26 ] Ruby on Railsスレ みんな語ろう。
809 名前:デフォルトの名無しさん [2008/04/06(日) 22:40:28 ] デフォルトでperlのほうが2倍以上速くてしかも RubyだとFastCGIしか使えないだろw どう見てもperlにメリットがあると思うw
810 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:58:16 ] >>809 まぁ保守という面を除けばな
811 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:00:39 ] とは言え、perlで1万行書いたら確実に死ねる。 経験者が言うんだから間違いないw # しかもそのシステム、まだ現役なんだ……。
812 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:00:58 ] >>804 rubyは実用的だとでも?
813 名前:デフォルトの名無しさん [2008/04/06(日) 23:05:16 ] 本読むにも文字が少ないほうが速く読めるだろ 1000ページの本と 100ページの本どちらが速く見れるか 慣れれば省略なんて分かるさ。
814 名前:デフォルトの名無しさん [2008/04/06(日) 23:06:11 ] Rubyだとperlで1万行で済むところ3万行も書く羽目になる
815 名前:デフォルトの名無しさん [2008/04/06(日) 23:23:10 ] 3万ってたいしたことなくね?
816 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:28:13 ] 私的には些細な保守性や速度の差よりも、 ドキュメントが充実してるか否かの方が大きいわ。
817 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:51:09 ] じゃ、PHPってことで
818 名前:デフォルトの名無しさん [2008/04/06(日) 23:52:21 ] ドキュメントもモジュールもperlが一番多くて出来る事も多い
819 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:56:56 ] FastCGIって使うのかなぁ。 Apache+mod_proxy_balancer+mongrel_cluster だと思うけど。 スケーラビリティの無さは確かに困るね。 実際に開発に入る前に、 その辺の基礎的な所を固めるのに結構時間かかったよ。
820 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:49:16 ] >>804 ホントはそんなにゲームが上手いわけじゃなくて、イベントのために 「スターソルジャー」のステージ1だけ猛練習してた高橋名人みたいなものか。
821 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:09:42 ] ウェブアプリなんて、8分でつくれるんだろ?
822 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:49:45 ] 自分が書いたプログラムが全部で何行になっているか確認する方法はありますか? RoRだとよくわからなくて・・・
823 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:50:07 ] rubyって早くも行き詰ってる感あるからなぁ RoRでちょっと人気でただけで PHPが登場したときの盛り上がりと比較すれば差は歴然だよね pythonではなくruby選ぶ理由なんて現時点では皆無だし
824 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:05:10 ] >>814 両方いじった感触だとそれはありえない。 perlやrubyなら100行で済むところが、javaだと300行になるのはよくあるが。
825 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 03:15:48 ] > 822 rake stats
826 名前:デフォルトの名無しさん [2008/04/07(月) 09:04:09 ] pythonのような屑言語と比較するなよ
827 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:07:01 ] 板違いなので次スレはここで pc11.2ch.net/test/read.cgi/php/1207425569/
828 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:09:01 ] Rails on Apache と Apache on Rails どっちがいい?
829 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:17:06 ] >>819 mongrelって最適なプロセス数をちゃんと考えておかないとイマイチじゃね? そこら辺皆どうしてるん? ちゃんとJmeterでしらべてるのかしらん?
830 名前:デフォルトの名無しさん [2008/04/07(月) 11:29:21 ] rails全然スケールすると思うけどなぁ。 ちゃんと作ってれば、WEB系システムのスケールってだいたいDBの速度じゃない? スケーラビリティーに問題ありって人はどういった状況なの?
831 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:12:47 ] >>829 おれも興味ある。 mongrelのプロセス数が足りてないのか、あるいは多すぎるってのは、 何を見て判断すればいいんだろ。 とりあえず最初から3個のままだ。
832 名前:デフォルトの名無しさん [2008/04/07(月) 13:04:30 ] 描画で時間かかってて、同時アクセス数が多いならプロセス数増やす DBが遅いならRAILS関係なし プロセス数たりなければ、apacheの待ちプロセスが増える。 プロセス多すぎたらリソース食いすて遅くなる等の問題が出る。 メモリはいっぱい積もう。
833 名前:デフォルトの名無しさん [2008/04/07(月) 13:58:53 ] 質問させてください。 初心者で、何をいじれば、良くなるのか、わからないので、 ヒントをいただけるとうれしいです。 構成は、 Apache(+mod_proxy_balancer) + mongrel_cluster(Rails) + MySQL です。 スクリプトで、別マシンから平均25アクセス/秒程度の 負荷を掛けてみました。 レスポンスに平均2秒程度掛かってしまっています。 Mongrelは10個立ち上げてます(多すぎですかね?) アプリマシンの状態はこんな感じです。 $ vmstat 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 3242764 78532 117304 0 0 0 0 10 10 0 0 100 0 0 0 0 3244628 78532 117348 0 0 0 0 1329 1262 61 4 35 0 14 0 0 3243952 78548 117416 0 0 0 25 1579 1548 72 6 22 0 7 0 0 3242316 78556 117500 0 0 0 25 1876 1535 92 8 0 0 9 0 0 3241708 78564 117584 0 0 0 22 1937 1415 93 7 0 0 9 0 0 3240336 78572 117664 0 0 0 22 1839 1281 93 7 0 0 10 0 0 3240960 78580 117740 0 0 0 21 1883 1324 94 6 0 0 9 0 0 3238612 78588 117820 0 0 0 26 1885 1336 93 7 0 0 10 0 0 3240196 78596 117904 0 0 0 22 1887 1325 93 7 0 0 10 0 0 3240456 78604 117988 0 0 0 24 1903 1432 94 6 0 0 9 0 0 3240588 78612 118068 0 0 0 22 1875 1272 93 7 0 0 5 0 0 3240100 78620 118156 0 0 0 22 1935 1704 92 8 0 0
834 名前:833 [2008/04/07(月) 14:15:05 ] すみません。アプリマシンは、こんな感じです。 $ vmstat 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- -r--b --swpd---free---buff--cache --si---so ---bi----bo --in---cs us-sy-id-wa -0--0 -----0-3242764--78532-117304 ---0----0 ----0-----0 --10 --10 -0--0-100--0 -0--0 -----0-3244628--78532-117348 ---0----0 ----0-----0 1329-1262 61--4-35--0 14--0 -----0-3243952--78548-117416 ---0----0 ----0----25 1579-1548 72--6-22--0 -7--0 -----0-3242316--78556-117500 ---0----0-----0----25 1876-1535 92--8--0--0 -9--0 -----0-3241708--78564-117584 ---0----0-----0----22 1937-1415 93--7--0--0 -9--0 -----0-3240336--78572-117664 ---0----0-----0----22 1839-1281 93--7--0--0 10--0 -----0-3240960--78580-117740 ---0----0 ----0----21 1883-1324 94--6--0--0 -9--0 -----0-3238612--78588-117820 ---0----0 ----0----26 1885-1336 93--7--0--0 10--0 -----0-3240196--78596-117904 ---0----0 ----0----22 1887-1325 93--7--0--0 10--0 -----0 3240456--78604-117988 ---0----0 ----0----24 1903-1432 94--6--0--0 -9--0 -----0-3240588--78612-118068 ---0----0 ----0----22 1875-1272 93--7--0--0 -5--0 -----0-3240100--78620-118156 ---0----0 ----0----22 1935-1704 92--8--0--0 -0--0 -----0-3241952--78628-118204 ---0----0 ----0----21 -978-1249 41--3-56--0 -0--0 -----0-3241960--78636-118224 ---0----0 ----0----12 -535--904 15--2-83--0 -0--0 -----0-3241952--78644-118232 ---0----0 ----0-----8 -347--900 -6--1-93--0 -2--0 -----0-3241952--78652-118236 ---0----0 ----0-----6 -294--853 -1--0-98--0 -0--0 -----0-3241952--78652-118236 ---0----0 ----0-----3 -269--939 -0--0-100--0 -0--0 -----0-3242016--78660-118236 ---0----0 ----0-----2 -253--820 -0--0-100--0
835 名前:デフォルトの名無しさん [2008/04/07(月) 14:37:15 ] railsログでは1プロセスは1リクエストを何秒で処理できるの? 簡単に言えば1プロセスが1秒に10リクエスト裁けるなら、mongrel5個なら 1秒に50個処理できるよね。 もともと処理に2秒かかるなら、プロセスいくつ増やしたって当然2秒かかる。 プロセス増やして描画の処理能力が落ちちゃってるならプロセス多すぎる。 DBが遅くなってるなら設計がだめかサーバーがぼろすぎる。 設計がダメなアプリは何でどう作ってもダメだからしょうがないよ。
836 名前:833 [2008/04/07(月) 14:59:22 ] >>835 アドバイス有難うございます。 秒間、18リクエストぐらいまでは、 平均、0.2秒で返してくれるんですが、 19〜20リクエストぐらいから、どんどん遅くなるみたいです。 railsログは、log/production.logを見れば良いんですかね? production.logは、こんな感じです。 Completed in 0.01850 (54 reqs/sec) | Rendering: 0.01424 (76%) | DB: 0.00000 (0%) | 200 OK Completed in 0.01773 (56 reqs/sec) | Rendering: 0.01332 (75%) | DB: 0.00000 (0%) | 200 OK Completed in 0.06937 (14 reqs/sec) | Rendering: 0.06201 (89%) | DB: 0.00000 (0%) | 200 OK Completed in 0.03860 (25 reqs/sec) | Rendering: 0.03171 (82%) | DB: 0.00000 (0%) | 200 OK Completed in 0.05636 (17 reqs/sec) | Rendering: 0.05005 (88%) | DB: 0.00000 (0%) | 200 OK Completed in 0.01776 (56 reqs/sec) | Rendering: 0.01385 (78%) | DB: 0.00000 (0%) | 200 OK Completed in 0.13781 (7 reqs/sec) | Rendering: 0.12299 (89%) | DB: 0.00000 (0%) | 200 OK
837 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:01:49 ] 個人的には鯖がたくさんあって、書き込みが多いシステムにはmongrel それ以外ならFastCGIで htmlに吐いてキャッシュかRailsキャッシュ使うなりして逃げた方がいいと思ってる。 >>833 それだけじゃワカラン。 SWAPは発生して無いみたいだから DB回りがボトルネックになってると予想 JOINとかしてる? 無駄なクエリ発行してない? ARに頼ると遅くなるよ select * from hoge where id = ????? limit 1 ; みたいな単発SQLでも数が多いと時間かかる時もある
838 名前:833 [2008/04/07(月) 15:18:06 ] >>837 有難うございます。 確かに、クエリは多くなっているように思います。 JOINしてます。 ARに頼らないということは、DBIを使うべしということでしょうか? よくわかっていないもので、お手数お掛けしてすみません。
839 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:28:53 ] >>838 find で :select で絞るとか、 :join で明示的にJOINするとか・・・ クエリに関わる物全てが動的だったら無理だけど、 マスタデータとか、バッチ更新でしか変わらないようなデータなら フラグメントキャッシュ使うとかやってみたら? 例えば、TOPのランキング一覧とかなら その部分はフラグメントキャッシュで持って 1時間毎キャッシュクリアして更新するとか。 クエリ多いなら、 DB側のチューニングもやってなければやった方がいいかもしれんね。
840 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:33:21 ] さくらのレンタルサーバーとかだったら、DB周りはチューニングしようがないと思うよー
841 名前:833 [2008/04/07(月) 15:38:16 ] >>839 有難うございます。 :selectは、使ってませんでした。 アドバイス助かります。 キャッシュについても試してみます。
842 名前:833 [2008/04/07(月) 15:41:21 ] >>840 自宅に置いてるので、いじれると思うんですが、 具体的な方法がわかってません。
843 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 16:01:35 ] David Pollak わたしはこれまで Rails による開発を 18 カ月、Java による開発を 10 年経験してきました。 Rails はウェブ開発に新しい風を吹き込みました。よく使うタスクはコマンド一発で実行することができます。 実にすばらしい。しかし、私は気が付いてしまいました。Ruby の動的型付けは多くのエラーを引きおこすことに。 そして、安心してデプロイするためには 95% ものテストカバレッジを達成しなければいけないことに。 95% のテストカバレッジを得ることの代償として、私の書いたコードは(テストコードも含めて) Java で書いたものと同等のサイズにまでふくれあがってしまいました。 その上、Rails では動的なコードの変更が可能なため、開発・テスト・デプロイ中にトラブルが続出するようになりました。 高いテストカバレッジを確保しているにも関わらずです。 これらの問題にくわえて、MRI(Matz Ruby Implementation: まつもとゆきひろ氏による Rubyの実装)は速度が遅く、 言語仕様も安定していません。それなのに開発コミュニティはそのことに見向きもしません。
844 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 16:28:12 ] >>843 ひがの反論の方がしっくりくるよ 95%カバレッジしててトラブル続出ってありえないだろう
845 名前:デフォルトの名無しさん [2008/04/07(月) 17:09:37 ] CPUリソース不足 あとはMYSQLで処理開始待ちが増えてないかどうか見てみな
846 名前:833 [2008/04/07(月) 17:31:05 ] >>845 アドバイス有難うございます。 ということは、Railsのコードに大幅な改善が見込めないなら、 さっさと、アプリサーバを増やした方が早いということでしょうか。 MySQLの状態の見方が良くわかっていないのですが、 負荷テスト中に、show full processlist;してみると、こんな感じでした。 mysql> show full processlist; +-----+--------+---------------------+----------------+---------+------+-------+-----------------------+ |-Id--|-User---|-Host----------------|-db-------------|-Command-|-Time-|-State-|-Info------------------| +-----+--------+---------------------+----------------+---------+------+-------+-----------------------+ |-316-|-apphnk-|-192.168.2.100:60163-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-317-|-apphnk-|-192.168.2.100:60164-|-hnk_production-|-Sleep---|----1-|-------|-NULL------------------|- |-318-|-apphnk-|-192.168.2.100:60165-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-319-|-apphnk-|-192.168.2.100:60166-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-320-|-apphnk-|-192.168.2.100:60167-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-321-|-apphnk-|-192.168.2.100:60168-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-322-|-apphnk-|-192.168.2.100:60169-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-323-|-apphnk-|-192.168.2.100:60170-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-324-|-apphnk-|-192.168.2.100:60171-|-hnk_production-|-Sleep---|----1-|-------|-NULL------------------|- |-325-|-apphnk-|-192.168.2.100:60172-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|- |-327-|-root---|-localhost-----------|-NULL-----------|-Query---|----0-|-NULL--|-show-full-processlist-|- +-----+--------+---------------------+----------------+---------+------+-------+-----------------------+ 11 rows in set (0.00 sec)
847 名前:デフォルトの名無しさん [2008/04/07(月) 18:12:03 ] 今あるデータだけだとそう考えられるね。とりあえずプロセス減らして、サーバー買うなりCPU強化するなり、ロジックを修正するなり BACKGROUNDRBとか、大量のログとか、ファイルの読み書きとかやってないよね?
848 名前:833 [2008/04/07(月) 18:28:08 ] >>847 アドバイス恐縮です。 BackgrounDRb、log/production.log以外のログ、 ファイルの読み書き、などやっていないと思います。 教えていただいたことをやってみます。 有難うございました。
849 名前:デフォルトの名無しさん [2008/04/07(月) 19:21:18 ] production logだけど、遅くなってる時はproduction.logの処理時間も遅くなってるんだよね? apacheでは処理時間だしてる? apacheで表示される処理時間と、同じリクエストのproduction.logを見てみな。 どっちみちWEBアプリでユーザーのCPUリソースが90%超えるとかありえないから どっかおかしいんじゃないかな。それか 凄く思いロジックを凄いぼろい鯖でやってる?
850 名前:833 [2008/04/07(月) 20:38:36 ] >>849 有難うございます。 Apacheのログに%D(マイクロ秒?)で処理時間を出してみました。 こんな感じで、 1312022 970413 1431397 1205620 1165282 1027745 1138476 1326502 980994 大体1秒から2秒ぐらいかかってます。ただ、6335389ぐらいかかってる リクエストが混じってるので、平均して2秒以上掛かってます。 (遅かったリクエストの処理が他に比べ重いとかそういうことはないです。) すみません。先ほど、production.logのデータを取るところを間違ったみたいで 一番負荷が掛かってる頃では、大体0.2〜0.35秒ぐらいかかってました。 30秒間で、1秒程度掛かってるのも3回ほどありました。
851 名前:833 [2008/04/07(月) 20:50:09 ] >>849 ロジックが酷いのかもしれないです。 CPUは、Core2Duoです。 :includeとかで、もう少し速くなりそうではあるのですが、 根本的に、やり方が酷いのかもしれません。。 あと、秒間18リクエストぐらいに落とすと、 ユーザーのCPUリソースがだいたい60%ぐらいで、 平均0.2秒ぐらいでレスポンスが返ってきます。
852 名前:デフォルトの名無しさん [2008/04/07(月) 21:43:54 ] TEXT入力ボックスの幅を調整するにはどうすればよいですか? <p> <b>Text</b><br /> <%= f.text_area :text %> </p>
853 名前:833 [2008/04/07(月) 21:51:17 ] >>852 こんな感じ? <%= f.text_area :text, {:cols => 50, :rows=> 5 }%>
854 名前:デフォルトの名無しさん [2008/04/07(月) 22:03:43 ] >>853 ありがとうございます。 うまく行きました。3日前からはじめたばっかりなもんで ^^;
855 名前:833 [2008/04/07(月) 22:37:19 ] >>854 僕もつい最近覚えました。。
856 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:38:37 ] >>851 Railsのログ見てどこがネックになってるかわからんのん? DBアクセスで何秒、レンダリングで何秒か位は出てた気がする。 見当違いだったらスマンね。
857 名前:833 [2008/04/07(月) 23:53:33 ] >>856 有難うございます。 DBは問題ないみたいです。 レンダリングに結構時間が掛かってるみたいなので、 何か無駄なことをしちゃってる気がします。 何か絞り込めた気がします。ありがとうございました!
858 名前:デフォルトの名無しさん [2008/04/08(火) 00:39:14 ] railsのログが0.2秒でレスポンス返してるって事はRAILSには問題ない。 apacheのコネクション数の限界なんじゃないか? keepaliveさげてmacclient上げろ railsのログのDBの部分にはトランザクション外のDBの待ちは入って無いから注意 もうめんどくせーから これ以上は金払えwww
859 名前:833 [2008/04/08(火) 01:59:33 ] >>858 有難うございます。すみません。 KeepAliveをさげるというのは、KeepAliveTimeOutを下げるってことで 良いのでしょうか。MaxClientsも上げました。 でも、軽くなりません。。 Apacheについても詳しくないので、設定の仕方が間違っているのかも しれませんが、、 ちょっと気になるのが、railsのログでDBの処理時間が ずっと0になってるんですが、これは、こういうもんなんでしょうか? ともかく、色々いじって試してみます。 お手数お掛けしました。
860 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 02:32:37 ] mongrel_clusterのプロセス数だけど、 うちはjmeterで負荷かけてテストしてるよ。 あとはマシンスペックと相談かな。 スケーリングで困るのはDBを分けて分散させようとした時とか、 画像とかのコンテンツを別サーバに入れようとした時とか。 もし30台とかになったらマウントするのも苦労だろうし。 他にはpaginateが件数多くなった時に死ぬ。
861 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 03:39:39 ] >>823 Pythonはうちの会社では選択肢に入らないけど 実際Pythonで仕事やってるの? 今のところ、うちの会社はPHPとRuby(Rails)の2択。 PHPしかできない奴はPHPやらせて、 それ以外は状況に合わせてどっちか選択。 自分が担当できるものは全てRailsでやってる。
862 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 08:23:59 ] will_paginate を 2.2 にしたら ページが1と2だけになった(´;ω;`)
863 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 10:23:47 ] Railsで.htaccessを使わずにディレクトリ毎にアクセス制限をかけるにはどうしたら良いですか?
864 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 10:29:07 ] >>863 before_filter でIP制御でもしてろよwwww とりあえず状況を詳しく書く作業に戻るんだ。
865 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 11:42:42 ] 例えば rails_root/pubulic/works/user_001 /user_002 : というディレクトリをユーザ(ここではユーザ名user_001)登録時に作成します。 user_001さんはログイン後にuser_001ディレクトリ内のコンテンツにアクセスできますが、 user_002ディレクトリ内のコンテンツにはアクセスできないようにしたいです。
866 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:21:54 ] >>865 httpd.conf を書き換えればいいと思うよ。 publicの下に非公開のコンテンツを置いてる時点で負け。
867 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 14:20:48 ] アプリでログイン管理して /work/user にアクセスしたら全員自分のページが見れるようにすれば楽じゃね? というかディレクトリ内のコンテンツって共有ファイルじゃなかろうな? Rails云々じゃなくてディレクトリのアクセス制限でいい気がするが・・・
868 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:36:34 ] ありがとう。.htaccess使えばやりたいことは出来るんだけど、 認証ダイアログを出すのはスマートではないなと思ったてだけでした。
869 名前:デフォルトの名無しさん [2008/04/08(火) 23:44:22 ] それはアクセスできない場所にファイル置いてrailsで認証してからx_send_fileで送信だ。 認証つけてapacheで直接処理したいなら.htaccess書くしかねーな
870 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 10:30:57 ] ・OSに管理させる ・Webサーバに管理させる ・Railsに管理させる ・自前スクリプトで管理する このレベルから選択する必要があるな
871 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 00:09:50 ] ちょっとづつ荒れてきたな
872 名前:デフォルトの名無しさん [2008/04/10(木) 01:54:43 ] 初歩的な質問ですまん。 Railsでアプリ開発するとき、アプリで共通で利用するクラスとかモジュールって 皆さんどこに配置してるんすか?いわゆるユーティリティってやつ。 たとえば、アプリケーションでよく使う文字列処理をまとめた クラスをつくったものの、配置先がどこが適切なのかわからん。。 ちなみに今はinitializer配下においてる。 なんか使い方間違えてる気がしてる。
873 名前:デフォルトの名無しさん [2008/04/10(木) 02:10:04 ] file_column でアップロードした画像を表示することができましたが、 編集画面がうまくいきません。 <% form_for :hoge, @hoge, :url => {:action => 'create'}, :html => {:multipart => 'true' } do |f| %>
874 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 08:40:40 ] >>872 lib/ でいいんじゃない?
875 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:01:34 ] 以前、たぶんrails-2.0.1で作成し始めたアプリがあって、2.0.2になった今も ./script/console を起動すると、 Loading development environment (Rails 2.0.1) >> と表示されています。 ローカルの環境はrails-2.0.2にアップデートして、2.0.1は削除したつもり なのでちょっと気持ち悪いんですが、気にしなくてもよいのでしょうか? $ gem list -l rails *** LOCAL GEMS *** rails (2.0.2) $ ./script/console Loading development environment (Rails 2.0.1) >> RAILS_GEM_VERSION => "2.0.2"
876 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:39:48 ] environment.rb の RAILS_GEM_VERSION を 2.0.2 にする
877 名前:873 [2008/04/10(木) 14:09:12 ] 873です。 <% form_for :hoge, @hoge, :url => { :action => 'update', :id => @hoge.id }, :html => {:multipart => 'true' } do |f| %> としてみたがまだ解決できません。 Unknown action No action responded to Unknown action No action responded to 22 ← 編集中のid
878 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 14:51:02 ] >>877 Unknown actionってかいてあるじゃないか。 んなaction しらねーぞ!! ってことじゃね?
879 名前:875 mailto:sage [2008/04/10(木) 18:53:14 ] >>876 してるんですよね〜・・・ config/environment.rb # Specifies gem version of Rails to use when vendor/rails is not present RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
880 名前:デフォルトの名無しさん [2008/04/10(木) 19:01:18 ] rake db:test:clone rake db:test:clone_structure rake db:test:prepare の違いがわからないです。 rake db:test:clone rake db:test:clone_structure の違いはわかるのだけど、これらと rake db:test:prepare の使い分けがよくわからないです。 どういう違いがあるのかどうか教えて下さい。
881 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 19:27:30 ] >>875 これとかは? rake -T ... rake rails:freeze:gems # Lock this application to the current... rake rails:unfreeze # Unlock this application from freeze ...
882 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 20:55:55 ] >>879 freezeしっぱなしで忘れてるとか?
883 名前:875 mailto:sage [2008/04/11(金) 00:46:12 ] >>881 >>882 rake rails:unfreeze で、いけました! freezeというのがよくわからないので、調べてみます。 どうもありがとうございました。
884 名前:デフォルトの名無しさん [2008/04/12(土) 21:46:02 ] フラグメントキャッシュなんですけど、 キーをこちら側で指定することはできないんでしょうか? たとえば、 host/controller/action/aaa/bbb/*** の***の部分が何であっても変わらないビューの一部をキャッシュする場合、 host/controller/action/aaa/bbb/ccc host/controller/action/aaa/bbb/ddd host/controller/action/aaa/bbb/eee で、それぞれキャッシュされちゃうと無駄な気がするのですが、 それを避ける方法はありますか?
885 名前:デフォルトの名無しさん [2008/04/12(土) 23:37:56 ] www.modrails.com/ ついにきたな。
886 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 00:30:30 ] やっときたな。10年遅れか?
887 名前:884 mailto:sage [2008/04/13(日) 01:20:41 ] 自己解決しました。引数指定できるんですね。 教えて君ですみませんでした。
888 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 11:13:50 ] 試せっていわれるだろうけど試した人いる? modrails 今テレビ来たところで試せないのでって言い訳だけど。
889 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 12:05:35 ] 試そうと思ってるトコロなんだけど、virtualhost hoge.example.comの下で /app1と/app2をそれぞれ動かすような設定方法がわからん。 2.2 Deploying to a sub URI ってのは結局アプリ1つだけを/の代わりに/appのようなパスで動かすための 設定のようだし。
890 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 14:42:31 ] 試した。CSSが反映されない。
891 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 16:23:46 ] httpd.confでAllowOverrideを無効にしたら解決した
892 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 23:14:24 ] >>888 導入自体はすごく簡単だった。 デフォルトでproductionで動くので 開発時はhttpd.confに RailsEnv development って書くのを忘れずに。 しばらく使ってみて問題が出ないか様子を見ることにする
893 名前:888 mailto:sage [2008/04/13(日) 23:41:44 ] >>891 >>892 参考にさせてもらいます。 まだ試せそうにないけど。。
894 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:06:50 ] そろそろ900なので告知します Railsは板の趣旨から明らかにwebprog板が適切なので 次スレはwebprog板の下記スレの利用をお願いします pc11.2ch.net/test/read.cgi/php/1207425569/
895 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:29:40 ] railsを初めてみようと入門書をざっと目を通してみたのですが、 以下のようなことはrailsではどう設定すればできるのでしょうか? webページでよくある構成で、フレームを複数に分割して上のフレームはタイトル固定で、 下のフレームでrailsアプリを動かしたい時に、railsはコントローラーがURL?になっているので ページ全体が遷移してしまうような気がするのですが、、、 要するに遷移先をここのフレームに表示みたいに設定できるかということです。 宜しくお願い致します。
896 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:46:29 ] >>895 単にaのtarget属性じゃないの?
897 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 02:45:45 ] >>895 フレームを使わない
898 名前:859 mailto:sage [2008/04/16(水) 11:51:29 ] >>896 ,897 有難う御座います。 上のフレームには一回表示すれば更新の必要はないが、表示するのは重たい ページだったとします。 下のフレームはrailsのコントローラーを使ってページ遷移をしたい際に、 フレームを使わないと全体に更新がかかる?ので上フレームも再読み込み する必要なないのに、また読み込みを行い重くなるのを防ぎたいのです。 この場合は897さんのようにフレームを使わず、Ajaxでの部分的な読み込み しかないのでしょうか?
899 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 16:48:28 ] >>898 まず rails を使わないフレームだけのサイトを作る その後、下フレームを rails と差し替える これでおk
900 名前:898 mailto:sage [2008/04/16(水) 17:15:45 ] >>899 なるほど。 ではこのような場合はどうでしょうか? -------------------------- | |←タイトルフレーム |--------------------------| | | | | | | | |←メインフレーム | | | | |--------------------------| | |←ボタンフレーム -------------------------- のような3分割のページがあったして、 「タイトルフレーム」は固定。「ボタンフレーム」は 色々なボタンが並んでいるフレームで、そのボタンを押した時の 各処理を「メインフレーム」に表示させたい。 「タイトルフレーム」、「ボタンフレーム」は1回しか読み込む必要はなし。 rails で frameset を使った例を色々調べてみたのですが、 見当たりませんでした。(iframeの例はありました) 度々すみませんが宜しくお願い致します。
901 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 17:38:11 ] 今時フレーム・・・社内システムか何かか? てかタイトルフレームってなんだ? メニューヘッダのようなものじゃろうか。 キャッシュして静的ページ化すりゃいいじゃんと思ってしまうのだが・・・
902 名前:デフォルトの名無しさん [2008/04/16(水) 19:44:12 ] パスワードのハッシュ化に使うsaltなどの設定をひとっところにまとめたいのですが、 どのようにするのがスマートでしょうか? _ _
903 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 20:31:57 ] いまどきフレームはあり得んな。 ショボく見えるだけ。 あと、HTMLというか、ページとURLの関係をちゃんと分かった方がよい。 フレームにしてもそれぞれのフレームにURLがあるだろ。
904 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:29:30 ] >>900 まず rails を使わないフレームだけのサイトを作る その後、メインフレームを rails と差し替える これでおk
905 名前:ヽ・´∀`・,,)っ━━━━━━┓ mailto:sage [2008/04/16(水) 23:38:35 ] >>902 saltってhashに含まれるでそ?常考 ランダム生成にしとけば? Rubyの疑似乱数はたしかMT19937ですね 固定にするなら、ymlから読むようにでもするかな。
906 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:07:31 ] >>905 Railsでよく使われる認証系のパスワード暗号化って、暗号化した 値にsaltが付いてくるcryptとかじゃなくて「アプリ固有のsalt+パスワード」 のダイジェスト(SHA512とか)な実装が多いんだな。なんでだろ。
907 名前:902 mailto:sage [2008/04/17(木) 20:24:07 ] あー、ごめんなさい。SHA1に固定のsaltをつける場合です。 >>905 ありがとうございます。 ymlということは、別途に自分で用意すればいいのでしょうか? Railsで用意されている設定システムがあればそれを使用しようと思いまして。 具体的にはenviromentなんかにきれいに書けるとうれしいのですが。。 我儘言ってすみません>< >>906 固定のsaltで暗号強度的に事足りるからではないでしょうか。 値にそれぞれsalt用意するとなると、容量も食いますしカラムも一つ増えてまう。
908 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:49:09 ] crypt(3)のやり方だと、暗号文字列そのものがsalt付きだから カラム数的には増えることはないですね。 '1234567890'.crypt('$1$abcdefgh$') #=> '$1$abcdefgh$7KT./yJ8ONoodnM9VUtMO0' '1234567890'.crypt('ab') #=> "ab1iBa.N.U2C6"
909 名前:ヽ・´∀`・,,)っ━━━━━━┓ mailto:sage [2008/04/17(木) 21:52:31 ] >>907 ここ参照 www.oiax.jp/rails/for_web_designers/yaml.html
910 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:54:07 ] cryptだと、暗号化済みのパスワードリストが漏れた場合に、 よくあるパスワードをその暗号化リストのsaltで暗号化して 照合することができるよね。(シャドウパスワードが考案された理由)
911 名前:ヽ・´∀`・,,)っ━━━━━━┓ mailto:sage [2008/04/17(木) 21:56:05 ] >>907 ここ参照 www.oiax.jp/rails/for_web_designers/yaml.html
912 名前:ヽ・´∀`・,,)っ━━━━━━┓ mailto:sage [2008/04/17(木) 22:07:30 ] ↑誤爆
913 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:10:05 ] なんでだろう。 普通の人なら流せるがコテだとウザい
914 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 04:57:36 ] controllersやmodelsの下に作ったクラスは誰がいつインスタンス化してるんですか? controllerが呼ばれる毎にrailsが作ってくれてるんでしょうか?
915 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 08:51:04 ] そうだよ
916 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:09:48 ] 呼ばれる度に作られるわけではない
917 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:14:06 ] モデルデータのインスタンス化はfindだのcreateだのであなたが明示的にやってるはず。 クラスのロードは、基本的にはconst_missingを使ってる。
918 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:15:54 ] >>913 名前欄がヨコ7cmくらいに伸びてるからバカにしか見えないんだよね
919 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:27:06 ] コントローラーは呼ばれる度なのか?パフォーマンス的にどうなの?
920 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:33:25 ] インスタンスを1回使って寿命が終わりなら、そりゃパフォーマンスは最悪だろうな
921 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 13:06:53 ] ActionController::Base class << self def process(request, response) new.process(request, response) end end end リクエストごとにここを通るのかな。
922 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 21:33:54 ] 馬鹿な俺にも分かりやすく…誰か・・・
923 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 13:12:41 ] rubyとrailsをインストールしたのですがrailsのソースってどこにあるんでしょうか?
924 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 13:18:04 ] >>923 gem envを実行して、GEM PATHSってところにリストされたディレクトリ (たいていは1つ)のどれかの下にある - activesupport-バージョン - activerecord-バージョン - actionpack-バージョン - activeresource-バージョン - actionmailer-バージョン - rails-バージョン
925 名前:923 mailto:sage [2008/04/20(日) 14:59:21 ] >>924 見つかりました!ありがとうございます。
926 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 11:16:46 ] ActiveScaffold が /module/aliasing.rb:31:in `alias_method': undefined method `find_full_template_path' for class `ActionView::Base' って出て動くかない(´・ω・`)
927 名前:デフォルトの名無しさん mailto:age [2008/04/21(月) 13:26:44 ] 上にも似た質問あるけどRailsの各クラスのライフサイクルってどうなってるんですか? Controllerなんかのクラスのインスタンスは一度作られたらサーバ停止するまで使い回しですかね? もしそうならサーバ起動時に作っちゃった方が効率良さそうだけど。
928 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 16:53:03 ] >>927 そんなはずはない HTTPリクエストがくるたびに新しく作られるんじゃなかったっけ?
929 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:26:49 ] rails本体・プラグインのクラスは最初の一度のみ developmentだとFW以外(app+lib)のクラスはリクエストの度リロード productionはリロードなし だったような気がする、間違えてたら指摘してくれ
930 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:30:51 ] >>929 それはファイルの読み込みについてだよね インスタンスは>>928 のはず
931 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:36:33 ] >>930 そうそう、今その事も書こうかと思ってた Controllerのインスタンスは毎回作り直し
932 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:26:21 ] ApplicationControllerとかまでリクエストの度にインスタンス作るってこと? それって意味あるの?
933 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:30:55 ] 前のリクエストで作ったインスタンス変数が残ってたりするからかねぇ。
934 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:39:19 ] つかコントローラで作ったインスタンス変数のスコープって意味不明なんですけど。 そこら辺ちゃんと書かれた本って無いよね。
935 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:44:39 ] ビューからでも見えることの不思議なら、 あれはビューにコピーしているから。 とどこかで読んだ記憶はあるのだが、本ではなかったかも。
936 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:15:13 ] ソース読め
937 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:36:31 ] そういえば今日Railsのソース読んでてバグ見つけた。 喜び勇んで報告しようとしたらedgeではなおっていた。 ちっ。
938 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:40:43 ] リクエストの度にインスタンス生成って…railsが遅い理由が分かった
939 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:56:14 ] 次にお前はリテラル評価のたびにインスタンス生成って、という
940 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 17:20:52 ] railsでMYSQLのストアドを呼ぶのはできますでしょうか?
941 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:12:41 ] railsの(というかrubyの)インスタンス生成が どれほどコストのかかるものか実際分からないから それで遅いとか重いとかなんかピンとこないなぁ プロセスのメモリ上にFWのクラス定義ロードされてりゃ そうでもなさそうな感じはするけどやっぱそうでもないのかね Javaとかはちゃんとインスタンス使い回しとかしてるんだっけ あとrubyはオブジェクトをダイナミックに書き換えれ過ぎるので 特にrailsみたいなリフレクションしまくりな作りのを元に インスタンス使い回すとしたら色々不具合出そうなイメージあるなぁ
942 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 20:15:33 ] >>941 同意 調べずにインスタンス生成=重い、と思い込むのもアレだ。 インスタンスは動的に変えられるから使い回すのは危険。
943 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:24:59 ] FWって何ですか?
944 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:33:23 ] ・ファイアウォール ・フォワード ・フレームワーク さてどれでしょう?
945 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:41:01 ] ファイアワイア
946 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:13:53 ] どう考えても馬鹿げてる 全てのリクエストにインスタンス生成なんでしょ?重いとか以前じゃないの それともある規模以上のweb開発に対してははなっから諦めてる仕様なの? スクリプト言語なんてそんなもんなのかね
947 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:40:28 ] べつにコントローラオブジェクトの生成なんかたいしたコストじゃないよ。 HTTPリクエストを解析する方がよっぽどコストが高い。 特にRailsのHTTPパラメータ名は複雑だから、解析が重い。 あとはViewだよね。RailsのViewは遅すぎる。 >>946 Java厨乙 Javaでも最近のフレームワークはリクエストのたびにインスタンス生成して使い捨ててるよ。 えらそうなこというのはちゃんと調べてからにしときな
948 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:21:28 ] >>946 はバカにしても>>947 も何の検証も出さずに断定してるのがなぁ とりあえず重い派も重くない派も実際どれくらいのコストなのか測定してからにしてくれないと水掛け論にしかならないのだが
949 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:58:10 ] >>948 検証しなくても、HTTPリクエストパラメータの解析が重いことぐらいわかるだろ だいたい、なんでコントローラのインスタンスを生成するのが重いと思うんだ?その根拠は何よ? ビュー層はログ見てりゃ遅いのがわかるだろ
950 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 03:24:03 ] >>949 どっちにしても何もなしじゃ重いのかたいしたことないのか判断できないと言っている
951 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 10:25:55 ] 全てRoRのせいにして他のチューニングをしないヤツが多すぎる。 大規模がどの程度の事指すのかしらんが、 キャッシュやらクエリチューニングやら、Apache・DBチューニングで Railsでもある程度の規模は十分捌けるぜ。 大規模になればなるほど、インスタンス生成云々よりも DB回りの方がよっぽどボトルネックになると感じた。
952 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 11:08:37 ] 次スレ pc11.2ch.net/test/read.cgi/php/1207425569/
953 名前:デフォルトの名無しさん [2008/04/23(水) 13:16:04 ] システム側適時作成するから入力してほしくない値のvalidateってどうやればいいでしょうか?
954 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:45:05 ] 教えてください。submit等で次のアクションをしページ移動したとき、 ブラウザの戻るボタンで戻るとページが空白になります。再表示ボタンを押すと 「情報を再送信しないとページを更新できません」とでますが、 これって回避できないのでしょうか?そもそもブラウザの戻るボタンで正常に戻るのは 構造上むりなのでしょうか?
955 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:47:33 ] >>954 Webの基本から勉強しなおせといいたいが 誘導しておく。 △▲ WebProg 初心者の質問 Part17 ▼▽ pc11.2ch.net/test/read.cgi/php/1204462146/
956 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:50:58 ] 単純にファイルを指し示す場合は #{RAILS_ROOT}/public/sample.html のように書けますが、 actionを呼ぶURLに対してRAILS_ROOTのような変数を使うことは出来ないでしょうか? #{RAILS_ROOT}/app/controllers/アクション名 #{RAILS_ROOT}/アクション名 いずれも無理でした。
957 名前:954 mailto:sage [2008/04/23(水) 17:06:38 ] >>955 ありがとうございます。さっそく行ってきます。
958 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:58:39 ] >>956 何がしたいのかイマイチ分からないけど、 ファイルじゃないから呼べないぞ。。。 RAILS_ROOTはPathの文字列だしな・・・ params[:action] とか url_for :contoller => 'a' ,:action => 'b' じゃダメかい? それかボタンからアクション実行したいなら <%= button_to 'これはボタン' , {:contoller=> 'foo' , :action => 'baa'},{} %> で実行できるが・・・
959 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:43:08 ] >>953 Model.new(params)に入れられても使わずプログラムで設定する という目的なら attribute_protected 違うならそう書いて。 >>956 何がしたいのか分からんが、 @template.prepend(append)_view_pathとか(名前失念)で テンプレートファイルを探す場所を増やすことは出来る。
960 名前:953 mailto:sage [2008/04/23(水) 22:28:14 ] >>959 ありがとうございました、その通りです _ _ > attr_protected
961 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:09:52 ] ttp://weblog.rubyonrails.com/2008/4/23/agile-web-development-with-rails-3rd-edition 3rd edition キター
962 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:29:53 ] >>961 お、Rails2対応か。 翻訳版マダー?
963 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:32:11 ] RailsによるアジャイルWebアプリケーション開発 第2版 - 2007/10/26 Agile Web Development With Rails - 2006/12 ぺでふ版買おうかな。。
964 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:06:19 ] >>962 原書ベータの話なのに……
965 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:12:23 ] link_to 'Show', @item の動作の仕組みをおしえて。第2引数にモデルオブジェクトを指定するだけで、 なんでURLがわかるの?Object#to_url とかでも定義されるの?
966 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:04:15 ] >>965 link_toのURL部分がItem < ActiveRecord::Baseだと結局は item_url(@item) が呼ばれる。(see PolymorphicRoutes#build_named_route_call) あとはNamed Routesの仕事だが、ルーティングの実装は読むのがめんどいな。
967 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:24:59 ] >>966 ちょーさんくす item_url(@item) が @item でもいけるようになっているのね 短く書けるのはいいけどわかりづらい