【Ruby】Ruby on Rails Part10
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/08/28(土) 19:27:42ID:Er5MNJZv【Ruby】Ruby on Rails Part9
http://hibari.2ch.net/test/read.cgi/php/1266563593/
■参考サイト
<英語>
本家: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/
http://twitter.com/dhh
http://www.loudthinking.com/
0116nobodyさん
2010/09/19(日) 16:53:58ID:???0118nobodyさん
2010/09/19(日) 20:10:43ID:???そういう考え方はRailsの精神に反してるような気がするのですが。
まぁRails3からはモジューラブルになるから適してるのかもしれないけど。
0119nobodyさん
2010/09/19(日) 21:37:02ID:???RailsにバンドルだとリリースタイミングがRailsと同じになってしまうので、
エコシステムに任せた方が進化が早い。
あと分離すればRailsコアとしてメンテナンスしなくてもよくなるので、
より重要な部分にリソースを避ける。
0120nobodyさん
2010/09/19(日) 22:45:35ID:???コントローラーからHogehogeを呼び出すにはどう記述すればいいのかな?
0121nobodyさん
2010/09/19(日) 22:58:31ID:???0122nobodyさん
2010/09/19(日) 23:58:48ID:???vistaでnetbeans で rubyは動かない。
なにをどうやっても通らない。odbcはつながるが、jdbcでmysql接続はできない。
0123nobodyさん
2010/09/20(月) 00:07:52ID:???0125nobodyさん
2010/09/20(月) 01:13:42ID:???0126nobodyさん
2010/09/20(月) 10:19:29ID:FkCzXQJr原文
Active Recordクエリのインターフェイス(Active Record Query Interface)
1 データベースからオブジェクトの取得(Retrieving Objects from the Database)
1.1 単一オブジェクトの取得(Retrieving a Single Object)
1.2 複数のオブジェクトの取得(Retrieving Multiple Objects)
1.3 バッチで複数のオブジェクトの取得(Retrieving Multiple Objects in Batches)
http://wiki.usagee.co.jp/ruby/rails/RailsGuides%E3%82%92%E3%82%86%E3%81%A3%E3%81%8F%E3%82%8A%E5%92%8C%E8%A8%B3%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%88/Active%20Record%20Query%20Interface
0127nobodyさん
2010/09/20(月) 14:28:10ID:???0128nobodyさん
2010/09/20(月) 16:02:09ID:???jniごしにjdbcを読んでもいいけど。
0129nobodyさん
2010/09/20(月) 19:23:27ID:???っていう発想は間違いなの?
0130nobodyさん
2010/09/20(月) 20:09:15ID:???0131nobodyさん
2010/09/20(月) 20:38:51ID:???同感だね。
遊び/評価/実験/プロトタイプでARを使うなら、ほとんどE-Rモデルや
SQLの知識が無くても、ARがすべて自動マッピングしてくれるけど、
現実のWebアプリ開発ともなると性能チューニングが必要になるから、
SQLの知識は間違いなく必須のものになる。
それだったら、ARはDBインターフェイス仕様の差異を吸収するだけの
薄い皮で十分であり、旧来のE-Rモデルによる設計とSQLによるアクセスで
Modelを実装できたなら自由度があって良いのに....と考えてしまう。
Martin Fowler's Bliki in Japanese - ドメインロジックとSQL
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?DomainLogicAndSQL
0132nobodyさん
2010/09/20(月) 21:17:11ID:???自由度が無くて不便と感じるのは例えばどんな時?
0133nobodyさん
2010/09/20(月) 21:32:17ID:???集計レポート作るみたいな作業は、ARに落とし込めるSQLの範囲でがんばっ
たり、Ruby側でfindの結果を操作する(=ARインスタンスを作りまくる)より
SQLを直に書いたほうがのほうが分かりやすいし、メモリ効率もマシ。
0134nobodyさん
2010/09/20(月) 21:51:58ID:???負荷とかメモリ使用量なんて考えたことないんだよ。
そういうサイトではo/rマッピングで吐き出したSQLもチューニングの対象になるわけ。
だったらはじめからチューニングの必要があるものなんて使わないという単純な発想。
しょぼいサイトしか扱ったことがない奴には想像できない世界かもしれんがな。
0135nobodyさん
2010/09/20(月) 22:05:19ID:???パフォーマンスで気を配ってるのはデフォルトのキャッシュ機能で画像キャッシュしてるぐらい。
AmazonEC2だからチューニング次第でもっと安く済ませられるんだろうけど。
0136nobodyさん
2010/09/20(月) 22:42:20ID:???0137nobodyさん
2010/09/20(月) 22:48:24ID:???0138nobodyさん
2010/09/20(月) 23:02:46ID:???>>113 が言っているような集計レポート作成は
オブジェクトにマッピングする処理じゃないので
ORMの仕事としては範疇外であって、
それはそれで別のライブラリがあるとよいとは思う。
0139nobodyさん
2010/09/20(月) 23:05:37ID:???裏でごちゃごちゃやってんだから遅くなるのは当たり前だろ。
速さ追求するならそもそもRailsなんて使うな。
0140nobodyさん
2010/09/20(月) 23:32:18ID:cM0dJhO+アセンブラ
0141nobodyさん
2010/09/20(月) 23:46:10ID:???はじめは ActiveRecord の O/R マッパーを使っておき、
どうしても直接 SQL 書きたかったら、その Model クラスに
find_by_sql() みたいなメソッド定義して直接 SQL 書いて、
コントローラからはそっちを呼ぶようにすればいいんじゃないの?
0142nobodyさん
2010/09/20(月) 23:56:52ID:???実際そうだと思う
Cookpadとか大規模サイトのプレゼン資料とか見てたら、大変そうだったな
分散DB使わずに、でもよくスケールしにくいRDBでやってるよなー
俺には当分関係なさそうな話だが
0143nobodyさん
2010/09/21(火) 00:03:11ID:???0144nobodyさん
2010/09/21(火) 00:31:09ID:jz0vkh7o600 requests per second.
180 Rails Instances (Mongrel).
1 Database Server (MySQL) + 1 Slave.
30-odd Processes for Misc. Jobs
8 Sun X4100s
http://www.slideshare.net/Blaine/scaling-twitter
Twitterのトラブルから見る、DB分割でスケーラブルなRailsサイト構築:TKMR.blog.show
http://blog.tkmr.org/tatsuya/show/311-twitter-db-rails
RORのままアーキテクチャの変更で10000%高速化したとな。
ttp://b.hatena.ne.jp/entry/highscalability.com/scaling-twitter-making-twitter-10000-percent-faster
ミニブログの Twitterのstats(統計)データ。
http://kaworu.jpn.org/kaworu/2008-01-16-2.php
- 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
0145nobodyさん
2010/09/21(火) 00:44:05ID:???手動スパムボットが作動したじゃないか
0146nobodyさん
2010/09/21(火) 01:40:14ID:???kwsk
herokuならmanagedだから分かるけど、AmazonはスケールしやすいVPSみたいなイメージだあるんだけど
だとしたらサーバー管理面倒じゃないか?
0147nobodyさん
2010/09/21(火) 05:39:57ID:???0148nobodyさん
2010/09/21(火) 10:36:49ID:XX6rG7LeThis site is running on Instiki 0.18.1(MML+)
Powered by Ruby on Rails 2.3.5
http://instiki.org/show/HomePage
Instiki
Ruby on Railsを利用したWikiエンジンです。
http://www.moongift.jp/2005/11/825/
http://www.moongift.jp/2009/07/instiki/
http://rubyforge.org/projects/instiki/
0150nobodyさん
2010/09/21(火) 12:07:17ID:???environments.rb のloadpathに書いておけば XXX::hoge ではなく
hoge の形式で呼び出せるのでそっちのがいい
0151nobodyさん
2010/09/21(火) 13:40:49ID:BefxMKovInstiki
http://instiki.org/show/HomePage
windows
http://rubyforge.org/frs/download.php/71696/instiki-0.18.1.zip
http://rubyforge.org/frs/?group_id=186&release_id=44144
http://rubyforge.org/projects/instiki/
$ instiki.cmd
http://127.0.0.1:2500/
0152nobodyさん
2010/09/22(水) 01:42:54ID:UZwM+8Vuhttp://hikiwiki.org/ja/
AsWiki
http://aswiki.sourceforge.net/
Instiki
http://instiki.org/show/HomePage
BitChannel
http://i.loveruby.net/w/BitChannel.html
Ruwiki
http://ruwiki.rubyforge.org/ruwiki.cgi/Ruwiki/ProjectIndex
http://www.moongift.jp/2009/03/wiki_on_rails/
http://www.moongift.jp/2007/10/groupswiki/
http://www.moongift.jp/2008/05/bitswiki/
http://www.moongift.jp/2008/03/signal_wiki/
0153nobodyさん
2010/09/22(水) 11:10:33ID:???こういう場合どうすればよいのでしょうか
0154nobodyさん
2010/09/22(水) 11:44:55ID:???一度マイグレーションを使うと決めたら、二度とスキーマを直接いじってはダメです。
この場合、マイグレーション機能をあきらめ、この先ずっとSQLいじりを続けるしかありません。
それがお嫌でしたら、自分の無能さを嘆きつつ、泣きながら手作業でSQLいじりの内容を
マイグレーションファイルへ反映させてください。
0155nobodyさん
2010/09/22(水) 12:35:39ID:???0158nobodyさん
2010/09/22(水) 14:37:00ID:???0160nobodyさん
2010/09/22(水) 15:33:25ID:???一つだけmigrationを作ったあと>>153を首にする
0161nobodyさん
2010/09/22(水) 19:38:21ID:???もっといい方法はないですか?
schema.rb は コピペするだけでは済まないような内容になってしまっていて・・・
いろいろ編集しないとそのまま使えないので大変です
0162nobodyさん
2010/09/22(水) 19:41:54ID:???それでわかるわけないだろ
0163nobodyさん
2010/09/22(水) 20:11:37ID:???classの宣言がないのでとにかく不便なんです。
class A < ActiveRecord::Base
みたいな部分です。
0164nobodyさん
2010/09/22(水) 20:31:11ID:???DBの設計ミスですね。
0165nobodyさん
2010/09/22(水) 20:34:41ID:???ARで作るデータはseeds.rbで流し込む。
0167nobodyさん
2010/09/22(水) 21:38:30ID:???0168nobodyさん
2010/09/22(水) 22:11:41ID:???0169nobodyさん
2010/09/22(水) 22:24:27ID:???0170nobodyさん
2010/09/22(水) 22:31:58ID:DzJBRvLUhttp://www.moongift.jp/2007/07/railroad/
0171nobodyさん
2010/09/22(水) 22:35:49ID:???ぐだぐだだな
0172nobodyさん
2010/09/23(木) 05:04:34ID:tYGUMz3jhttp://rubist.blog77.fc2.com/blog-entry-50.html
0173nobodyさん
2010/09/23(木) 05:26:02ID:tYGUMz3jrake db:schema:dump
db/schema.rbにスキーマ情報をdumpする
rake db:structure:dump
db/[DB名]_structure.sql というファイルに、SQL文でのスキーマのdumpを作成する
http://www.kuwazou.net/blog/rails/?paged=2
0174nobodyさん
2010/09/23(木) 14:17:22ID:???で使用したいんだけど
どれがベストプラクティスなの?odbc?
いろいろ開発止まってて、sqlserverなんか使うなってこと?
0175nobodyさん
2010/09/23(木) 14:25:11ID:???0176nobodyさん
2010/09/23(木) 17:49:57ID:???って、会社の先輩が言ってた。
0177nobodyさん
2010/09/23(木) 18:32:47ID:???Windows上のRailsはWinSockが癌で、これが原因で中/大規模なサイトの開発は無理。
小規模(たとえばワークグループ向け)なら、>>175の紹介した SQLite を使えばいい。
SQL Serverが必要になるような規模のサイトを作りたいなら、
Rubyをあきらめ、素直にMicrosoft謹製の言語で開発したほうが幸せになれる。
0178nobodyさん
2010/09/23(木) 18:42:46ID:???もし開発サーバを立てるのが面倒とか別マシンを購入する予算が無いなら、仮想化ソフトを使え。
以下はプログラム板「RubyをWindowsで使うスレ」からの引用。
> 735 名前: 721 Mail: sage 投稿日: 2010/05/24(月) 01:33:49
> WinXP上のVirtualBoxでLinux(Ubuntu)を試しに触ってみた。
> 永くDebianを触っているが、Ubuntuは今回が初体験。参考にしたのは以下のサイト。
>
> ・VirtualBoxの使い方 - 仮想化ソフトVirtualBoxのインストール、使い方、設定方法
> http://virtual-soft1.nnn2.com/
>
> 上記サイトのとおりにVirtualBoxをインストールして、Linux(Ubuntu8.04)の仮想マシンを起動。
> 違いはVirtualBoxの最新バージョンが3.2.0に更新されていたのでそれを試した点くらい。
>
> 仮想マシンだけど、クライアントとしての環境はほぼ完璧にそろっている。
> 日本語環境、ブラウザ(Firefox)、ファイルマネージャ、ターミナルがあるし、OpenOfficeも入ってる。
> ネットワークもファイルマネージャでURLを入力することで、MacOSX(10.5)のFTP/SMBサーバヘ接続できた。
> おそらく少しだけ努力してもらえれば、普通のWindowsユーザにも使ってもらえるだけの環境は整っていると思われ。
>
> 開発環境としては、Perl/Pythonは入っているが、肝心のRubyが無いから、自分でRubyと関連する
> パッケージ(Gem, Rake, Rails,...etc)をインストールする必要がある。また、SSH/Web/FTP/SMB/AFPといった
> サーバ関連も一切入っていないみたいだから、それらも自分でインストールする必要がある。
> ただし、言い換えると自分の好みのサービス構成を組める訳で、決して問題や欠点という訳ではないだろう。
0179nobodyさん
2010/09/23(木) 19:45:36ID:???generate scaffold でモデル名とは別にコントローラ名を指定することは出来ないのでしょうか?
過去のバージョンでは
ruby script/generate scaffold <モデル名> <コントローラ名>
でできたようなのですが
0180nobodyさん
2010/09/23(木) 19:46:19ID:???新しく立ち上げるプロジェクトでRails3を使うのは無謀でしょうか?
基本的に自分1人で担当するプロジェクトなので、
意味不なエラーや、Rails2系との仕様違いによるロス等が怖いです。
勉強する時間がほとんど無く、今週土日にRails3を公式サイトで勉強して
実装期間は2週間程度です。
素直に2系を使えば済むことなのですが、その後もRailsの仕事が詰まってるので
いつか3系に切り替えたいと思っていてそのタイミングで迷っています。
0181nobodyさん
2010/09/23(木) 20:05:17ID:???0182nobodyさん
2010/09/23(木) 20:51:39ID:???くらいの気概を持ってやるべきじゃないか。
新しいRails使うのってワクワクするだろ?
0183nobodyさん
2010/09/23(木) 21:00:50ID:???model と scaffold_controller を別々に generate することで
同等のことを実現するみたい。
0185nobodyさん
2010/09/23(木) 21:07:57ID:???>いろいろ開発止まってて、sqlserverなんか使うなってこと?
sqlserver が Miscrosoft SQL Server のことを言っているなら
「sqlserverなんか使うなってこと」
っていうか Ruby 使ってる時点で
「Windowsなんか使うなってこと」
なんだが
0186nobodyさん
2010/09/23(木) 21:18:50ID:???0187nobodyさん
2010/09/23(木) 21:33:23ID:???virtualbox上のlinuxとrailsのtestの速度変わらないんだけど。
0188nobodyさん
2010/09/23(木) 23:24:50ID:???これはさすがにやりすぎじゃない?
0189174
2010/09/23(木) 23:39:49ID:???古い資産でsqlserver絡みのアプリがあって
dbはまだ保守期限切れてないから、sqlserverを活かした上で
railsに移行できないかと模索していたところなんです。
個人的にはrails使いたいので、webはlinuxでrails、dbはsqlsesrverで接続はodbcってのが有力なのかな。
まぁ、いっそのことasp.net っていうのも可能性としてはありかも。
vbやらaspやらが残ってるとこって以外とありそうで、
sqlserverへの接続って需要がありそうな気がするんだけど
たいていは.netへ流れるのかな。
sqlserverやめろってのは、最もなんですが
気持ちとしては、dbのmigrationなんかしたくないという思いもあります。
0192nobodyさん
2010/09/23(木) 23:53:53ID:???そう書き換えればいいだけのこと。
0193nobodyさん
2010/09/24(金) 00:07:46ID:???作成と編集フォームのデザインを共通化出来る方が稀だと思うけど?
0194nobodyさん
2010/09/24(金) 00:24:06ID:???0195nobodyさん
2010/09/24(金) 00:28:40ID:???個人的にはアプリの規模に関係なく、ユーザーに作成編集させるモデルはたいたいscaffoldで作ってしまう。
0196177
2010/09/24(金) 00:59:01ID:???SQL Serverを利用することが優先条件であるなら、>>177で書いたように
MSの製品(例えばASP.NetでOK)を選択したほうが幸せになると思う。
Webを Rails-over-Linux で、DBを SQL Server-over-Windows でという構成については、
自分の場合、トラブルシュートに自信が無い、言い換えると、もしRails<->SQL Server間で
何かトラブルが発生した場合、自力でRailsのコードを調査して必要なら改造するということが
自分の技術力では不可能なので、あきらめる。もし選択するなら、茨の道になるのではないかと。
要求仕様の優先度を(周囲の意見も聞いて)じっくり検討してから、最終的な判断したほうがいいだろうね。
0197nobodyさん
2010/09/24(金) 01:42:23ID:???そこまでしてRails使いたいと思わんな
0198nobodyさん
2010/09/24(金) 02:21:19ID:???おれはやってほしいよ。できればIronRubyで
0199nobodyさん
2010/09/24(金) 02:24:20ID:MHNWJwU+http://www.microsoft.com/japan/sqlserver/2008/r2/howtobuy/price.mspx
0200nobodyさん
2010/09/24(金) 02:27:48ID:MHNWJwU+プロセッサ数 最少ユーザー数 ライセンス価格 年間サポート料金
16 400 41,320,000 円 (43,386,000 円) 9,090,400 円 (9,544,920 円)
http://www.oracle.com/jp/corporate/pricing/pricing-dbee-079511-ja.html
0201nobodyさん
2010/09/24(金) 03:10:04ID:???http://www.mediafactory.co.jp/bunkoj/books.php?id=26113
0202nobodyさん
2010/09/24(金) 14:36:02ID:???VB(ASP) + SQL Server の置き換え、リプレイスなら、
フロントを ASP.NET にして SQL Server はそのままか、
ごっそり全部入替(Java + Oracle) というのが周りでは多いね。
ここからは妄想だが、>>174 のような案件こそ、
IronRuby か JRuby + JDBC ドライバ + SQL Server はだめなのかな?
Java 用の SQLServer の JDBC ドライバがどれくらい実績があるのか知らん
0203nobodyさん
2010/09/24(金) 14:37:54ID:???まあrubyの作者自体がウィンドウズ使ってないから地雷とか苦労が多いのはしょうがない。
ror使ってるツイタが不具合出してるみたいね。
やっぱり大規模サイトは厳しいか。クラスタとかクラウドとかそういう機能もないしなあ。
0204nobodyさん
2010/09/24(金) 14:45:43ID:???0205nobodyさん
2010/09/24(金) 14:50:06ID:???Ruby とか Rails とか関係なくね?
0206174
2010/09/24(金) 23:22:46ID:???参考になります。
>>198
なるほど、IronRubyってのは選択肢になかったです。
でも二の足を踏む感じです。
>>202
なるほど、やはりそうですか。
私みたいにrailsやりたい人にとって、IronRubyって実は需要あるのかもしれないですね。
少し調べてみます。
0207nobodyさん
2010/09/24(金) 23:26:23ID:???Railsだってクラウドでスケールするでしょ。ec2で使えるwakameとか出てきたし。
twitterの件はxssだし。
消えてなくなって欲しいわ。
0208nobodyさん
2010/09/25(土) 01:41:39ID:???Windows + Railsなら、Windowsを捨てるか、Railsを捨てるかしよう
Windowsで開発したいだけならローカルに仮想マシン入れれば可能
本番は適当なLinuxにデプロイすればOK。もちろんテスト用のサーバーも用意したほうがいい
0209nobodyさん
2010/09/25(土) 01:41:47ID:???0210nobodyさん
2010/09/25(土) 01:50:43ID:???そこにプラスしてSQL server使おうというのはトラブルにあたっても日本でも海外でも聞ける人いないだろう
ようするに壁にぶち当たった時に自分で解決する必要ある
ということは >>196 がすでに書いてるのか
LinuxとRailsとMySQLやPostgreSQL(開発はLinuxかMac)という王道というか想定環境から、
距離が外れる(開発はWindowsとか、DBは別のを使うとか、JRubyやIronRuby使うとか)と徐々に
事例が減っていくのでトラブルおこしても聞ける人やFAQが減っていくので、
自分で解決する必要が大概出てくる
・・・というのは仕事やっていればわかっているだろうけど、あえてRailsやりたいから聞いているんだよなw
俺はやり方知らんから、頑張れとしか
0211nobodyさん
2010/09/25(土) 01:54:04ID:???フロントエンドは今でもRailsで、バックエンドがScalaらしいが
MySQLのスケールしにくさに耐えかねてCassandraに移行するという話で、
Twitterが一部技術者に身近だったことからKVSとかCassandraの宣伝広告みたいにも使われていたけど、
結局断念してワロタw
Twitterが、Cassandraの本採用を断念。「いまは切り替えの時期ではない」 − Publickey
http://www.publickey1.jp/blog/10/twittercassandra.html
調査は続けていくらしいが
0213177
2010/09/25(土) 02:31:27ID:???IronRubyやJRubyを提案しているけど、その意味がよく分からない。
・Microsoftの.Net環境向けWebフレームワークを使い、アプリを(ASP.Netの代わりに)IronRubyで書く、あるいは
OracleのJava環境向けWebフレームワークを使い、アプリを(Javaの代わりに)JRubyで書く、
のであれば、>>174が希望する「Railsを使う」という目的から外れるよね。それとも、
・Rubyの代わりにIronRubyまたはIronRubyでRailsを動かす(当然、アプリもRubyで書く)
のであれば、「Railsを使う」という目的は達せられる。でもActiveRecordのDBアダプタが .Net 用
ODBC API(IronRubyの場合) や、JRE 用 JDBC API(JRubyの場合) をサポートしてるとは思えないから、
DB接続そのものが不可能なように思える。もしもサポートしてなければ自力でアダプタを開発する必要が
あるけど、その前提を承知で>>174に提案しているのかな?(そして>>174は、それを理解しているのかな?)
自分は .Net や Java の開発環境には詳しくないので、間抜けな疑問かもしれないんですが、
どちらを指しているんでしょうか。もしよければ教えてもらえませんか?
■ このスレッドは過去ログ倉庫に格納されています