【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
0648nobodyさん
2009/07/13(月) 18:12:22ID:???rakeだか、rspecだか遅いrails絡みのコマンドを早くするコマンドがあったはずなんだけど、
忘れてしまった…
どなたか覚えていませんか?
後ろに立ち上げておく類のものだった気がするんですが・・・
rake 高速化、rspec高速化とかでぐぐっても出てこない(´・ω・`)
0649648
2009/07/13(月) 18:15:39ID:???dRubyですた。サンクス…
0650nobodyさん
2009/07/13(月) 23:04:16ID:???運用開始前に予め画像を入れておきたいのですが
script/runnerでPhoto.new({"uploaded_data" => open('hoge.jpg')})
するとattachment_fu.rb:343でuploaded_data= undefined method '[]'
してしまいます。
同じようなことをしたことがあるという方、おりましたら教えてください。
環境は
linux
ruby 1.8.7
rails 2.3.2
0651650
2009/07/14(火) 00:39:43ID:???0652nobodyさん
2009/07/14(火) 01:15:56ID:???ttp://www.oreilly.co.jp/books/9784873114163/
Railsで企業システムを扱うというのがテーマのようだ
さすがに基幹システムは無理だろうが、
部門システムくらいはJAVAのシェアを少し奪ってほしい
0655nobodyさん
2009/07/14(火) 07:55:01ID:???kwskも何も、今からxreaはねぇだろ。クラック以前に
ドメイン契約しても無償サーバ空いてないこと多いし、
鯖がダウソしてるのに放置、メールサーバは海外で
spam鯖指定されてたり、慢性的に落ちてたり。
0656nobodyさん
2009/07/14(火) 10:19:54ID:???プログラムを作るお前らには PHP で十分
0657nobodyさん
2009/07/14(火) 10:22:03ID:???どうしてそんなふうに他人を見下せるんだ?
金銭的な余裕のあるなしとRubyで開発をすることの間には何の関係もないのに。
0659nobodyさん
2009/07/14(火) 11:56:28ID:???年数千円、数万円が払えないのは負け犬。
0660nobodyさん
2009/07/14(火) 13:39:52ID:???0661nobodyさん
2009/07/14(火) 13:50:39ID:???数万も払えないヘボは PHP 使ってろ。
0662nobodyさん
2009/07/14(火) 14:01:37ID:???0663nobodyさん
2009/07/14(火) 14:06:43ID:???0664nobodyさん
2009/07/14(火) 14:19:55ID:???自前で有るから、構築技術の無い >>653 = >>656 = >>659 = >>661 = >>663
みたいに無駄な金を使わずに品質の良いものが提供できている。
0665nobodyさん
2009/07/14(火) 14:21:16ID:???0666nobodyさん
2009/07/14(火) 14:27:04ID:???数万円じゃ済まないことに気付け、低能。Ruby ユーザってこんなのばかりなの?
0667nobodyさん
2009/07/14(火) 14:37:40ID:???多少人気が出るときついのだが。
格安サーバーで事足りるのはうらやましい気がするが、少し気の毒でもあるな。
そういうことが分からないということはサービスを公開したことなんてないのだろう。
0670nobodyさん
2009/07/14(火) 14:46:12ID:???サービスすらはじめられない人が何を言っているんだ…
0671667
2009/07/14(火) 14:55:41ID:???書けば書くほどというのはおかしいだろう。
ID出ないから仕方ないが。あと連投ならやめれ。
0672nobodyさん
2009/07/14(火) 14:57:29ID:???0674nobodyさん
2009/07/14(火) 15:01:55ID:???PHPでもRailsでもどっちでもいいよ
俺は提供してるサービスなんて無いから無理
0675nobodyさん
2009/07/14(火) 15:06:13ID:???ばかか
0676nobodyさん
2009/07/14(火) 15:12:53ID:???一度、無料サーバで PHP でも Perl でも何でもいいからはじめてみろ。
月刊数十万アクセスは捌けるし、数千円から 1, 2 万円くらい行けるぞ。
0678676
2009/07/14(火) 15:16:07ID:???月刊→月間の間違えな。
1 年で 5 万円以上稼げれば
格安サーバ借りて、さらにアクセスさばければ
2, 3 倍稼げたりするよ。
ここでは URL 貼れない。
アフリを潰すような奴もいるし。
0679nobodyさん
2009/07/14(火) 15:17:13ID:???月に数十万もアクセスが来てくれるようなサイト、コンテンツを作れるかどうかが
問題なわけだが
0680nobodyさん
2009/07/14(火) 15:25:49ID:???そもそも Web サービスがはじめられないわけだが
0681nobodyさん
2009/07/14(火) 15:25:59ID:???アップローダ?ブログ?SNS?それとももっと先進的な何か?
0682nobodyさん
2009/07/14(火) 15:39:19ID:???Ruby ユーザって人格障害者多いね。
そんなことを気にしないで自分が作りたい
Web サービスを無料サーバを使ってどんどん作りなよ。
0683nobodyさん
2009/07/14(火) 15:44:25ID:???自分の好きなのや、興味のあるものを。
非 IT やオタクじゃないのをターゲットにすると
アフリをクリックする傾向あるね。
まずは無料で Web サービスをいろいろ作って
試行錯誤して経験値を積むのが重要。
PHP/Perl で作るのに飽きたので Rails で、
と思ったけど無料サーバのない現状にゲンナリ。
0684nobodyさん
2009/07/14(火) 15:45:49ID:???ただWebアプリで儲けてるって人がどんなサービス提供してるか気になってさ
で、どんなサービスなの?
0685nobodyさん
2009/07/14(火) 15:51:17ID:???0686nobodyさん
2009/07/14(火) 16:06:14ID:???みなさん使いますか?
どのバージョンならいいですか?
0687nobodyさん
2009/07/14(火) 16:15:12ID:???長期間運用すると、ユーザによって
バージョン変えるな、新しくしろ、と大変そうw
あと Passenger って何百日安定稼働!ってないよね。
毎日 cron で早朝リブートしてる…。
Passenger がもっと安定して、
省メモリ、高速になったらしい Rails 3.0 からが
運用側としてはいいのかなぁ。
0688nobodyさん
2009/07/14(火) 16:19:09ID:???PHP/Perl は Ruby に比べて互換性の問題が小さい。
あと、必要メモリも 1/2 〜 1/3 で済むのでサーバ提供者は無料提供可能。
なので現実的に Ruby 1.9 & Rails 3.0 が安定してからの提供になるんだろうな。
0689nobodyさん
2009/07/14(火) 16:53:09ID:???>バージョン変えるな、新しくしろ、と大変そうw
>それ以外に Ruby が 1.8 か 1.9 か、という問題があるよね。
各バージョン毎の無料サーバーが立ってて同時に複数借りられれば
問題なさそうですね!
0690nobodyさん
2009/07/14(火) 17:05:18ID:???> 問題なさそうですね!
> 問題なさそうですね!
0693nobodyさん
2009/07/14(火) 18:20:35ID:???0694nobodyさん
2009/07/14(火) 18:35:28ID:???裏を返せば市場が広がってるということなんで嬉しい話。
0695nobodyさん
2009/07/14(火) 18:42:42ID:???0696nobodyさん
2009/07/14(火) 18:55:19ID:???0697nobodyさん
2009/07/14(火) 20:04:16ID:???半角の前後にスペースがきっちり入ってるからわかりやすいな。
定期的に荒らすのはなんかのバイオリズムか?ちゃんと薬は飲めよ。
ぶつぶつ一人で会話して、ヒッチコックのサイコかよ。
0698nobodyさん
2009/07/14(火) 20:34:01ID:???無料じゃないと困る様なへぼサイトならみんなと同じphp使ってろと。
儲かる仕事作れないのに、高額のマク強請るマカみたいなスレだ。
0699nobodyさん
2009/07/14(火) 20:43:15ID:???それはスルー緑
0700nobodyさん
2009/07/14(火) 21:16:19ID:???初心者スレも本スレもこれで判定してたのに
おまえ・・・
0701nobodyさん
2009/07/15(水) 01:55:13ID:???無料サーバがない≠市場がない では?
無料鯖がないのは、Rails を動かす場合、
Passenger なり Mongrel なり、一アプリにつき一ポート使うからだと思う。
だからVPSなど、有料でroot権限もらえるとところだったら
Passenger や Mongrel を好きなだけ動かせるだろ。
(VPSだと、安いプランだとメモリが大変だけど)
Java だって Servlet を動かすには Tomcat などが必要だが、
一 Tomcat につき 一ポート使うから、無料サーバではやりにくいだけの話で、
Java による web アプリは、全然マイナーな技術ではないよね。
(レンタルサーバでやるようなものではないけど)
一方 perl や PHP は Apache の中に組み込まれるから(mod_perl、mod_php)、
各ユーザが PHP アプリを動かしてもポートは新たに消費しない。
だから無料鯖でも使われるわけで。
※
レンタルサーバで、あらかじめ Passenger がサーバにインストールされていて、
そのユーザのホームに .hoge (任意のファイル名) を置いておくと、
毎朝の root の cron で httpd.conf に RailsBaseUri の行を追加してくれ、そのあとは
http://{サーバ名}/~{レンタルサーバのアカウント名}/ で Rails アプリが動く、
なんてサービスがあったら、レンタルサーバでもポートを増やさずに
Rails アプリを動かせる、なんてことができていいかも。
0702nobodyさん
2009/07/15(水) 02:21:05ID:???Webな管理画面があればいいですよね。
Passengerけっこう落ちるって噂ですが。
1. フレームワークがでかいから潤沢なメモリが必要
2. Rubyがそもそもメモリを食う
3. PerlやPHPではでかいフレームワークつかわないから軽いだけ
どれなんですか。
勘で1かと思ってます。
0703nobodyさん
2009/07/15(水) 02:50:07ID:???0704nobodyさん
2009/07/15(水) 03:31:36ID:???4. 情報不足とそれに関連した使用者のスキル不足
5. まだあまり枯れてない
0705nobodyさん
2009/07/15(水) 08:10:03ID:???0706nobodyさん
2009/07/15(水) 08:14:05ID:???>Tomcat につき 一ポート使うから
無知乙。mod_jkとかAJP 1.3てな単語でまずググレ。
javaが無料サーバでやらないのはVMがメモリ食いすぎるのと
javaでは何でも出来てしまうから「共有サーバー」で導入しないだけ。
0707nobodyさん
2009/07/15(水) 10:21:44ID:???0708701
2009/07/15(水) 10:30:33ID:???>>Tomcat につき 一ポート使うから
> 無知乙。mod_jkとかAJP 1.3てな単語でまずググレ。
Java は長い間やってきているから、そこら辺は把握しているつもりです。
mod_jk とか mod_proxy_ajp をつかって外部には Apache の port 80 で公開していたとしても、
mod_jk は内部で動かしている Tomcat の port 8009 にスルーするだけだから、
結局、各ユーザごとの Tomcat のプロセスの起動が必要で、
それごとに 8009 (AJP を受け付けるポート)の bind が必要だと思いますが?
あとひとつの Tomcat に、各ユーザの webapp をデプロイする方法も考えられるが、
Passenger は、RailsBaseUri ごとに、動くユーザを変えられるが、
Tomcat は変えられない。
$CATALINA_HOME/webapp/foo アプリは foo ユーザ、/bar は bar ユーザで動かす、
ということができない。
> javaが無料サーバでやらないのはVMがメモリ食いすぎるのと
> javaでは何でも出来てしまうから「共有サーバー」で導入しないだけ。
ここは同意する。
0709nobodyさん
2009/07/15(水) 11:44:11ID:???0710nobodyさん
2009/07/15(水) 13:29:02ID:???perlやphpでも巨大なライブラリ使う事も出来るけど、もうそれはapacheごと重くなっても構わないって割り切りがあるから。
実際、phpとかperl使ってるサイトは重いし。
rubyは小賢くmod_rubyで重くなるほうに実装しなかっただけ。共用鯖で、はた迷惑になるのを覚悟でどんどん重い実装をしていけば、レン鯖でも通用するとは思う。
0711nobodyさん
2009/07/15(水) 16:51:55ID:???じゃあapacheは何故80番だけで多ユーザに対応出来るんだ?
MySQLも3306のみ、postgresも5432だけで多ユーザに
対応しているぞ。そこを考えろ。長いっつっても無駄に
長いとVBプログラマー(笑)と変わんなくなるぞ。
お前さんの根本的な間違いは、Tomcatは1ユーザに1ポート
与える必要がある、と考えていること。80から8009に流そうが、
外部に公開するのは80番だけでよいから、利用者はそこで
Tomcatが動いていると意識する必要はない。それと
TomcatはTomcat上でのマルチユーザー(Not UnixUser)に
十分対応している。なんでPassengerと比較するんだ?
共有PHP鯖でマルチユーザのWEBアプリが十分動いてるだろ。
0712nobodyさん
2009/07/15(水) 16:57:05ID:???ま、机上の空論で無理無理と考えてるから前進出来ない。
0713nobodyさん
2009/07/15(水) 20:16:06ID:???PHP使うとかマゾすぎんぞ
0715nobodyさん
2009/07/16(木) 01:33:33ID:???0716nobodyさん
2009/07/16(木) 15:59:36ID:4+d1h2nCPHP moduleの場合は企業向けプランだったり。
0717nobodyさん
2009/07/16(木) 16:12:37ID:???OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。
そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。
0718nobodyさん
2009/07/17(金) 11:19:51ID:???0719nobodyさん
2009/07/17(金) 19:20:40ID:???0720nobodyさん
2009/07/17(金) 20:55:05ID:???そうだよな。
CGIでもまともに動く軽量フレムワがあればいい。
0721nobodyさん
2009/07/17(金) 22:00:28ID:???0722nobodyさん
2009/07/20(月) 17:22:47ID:???request.remote_ip などrequestの情報をコントローラーではなく、モデルから取得したいのですが、
どうしたものでしょうか?
コントローラー側から、引数で渡すしかないでしょうか?
モデル側からコントローラーのインスタンスにアクセスする手段がある?とか(そうするとテストがやっかいそうですが…)
Rails 2.3.2です。
0723nobodyさん
2009/07/20(月) 17:28:07ID:???それはありますよね。今だとSinatraでしょうか?
そもそも、Railsと比べるべきは、PerlやPHPなどの言語ではなく、フレームワークですよね
CakePHPとか十分重いですよね。もちろん、Railsよりもデプロイ等楽ですが、
無料レンサバのphpはCGI版という現実…
無料レンサバでRails動かしたいという人は、passengerついてるDreamhostのお試し期間で試してみたら、どうかな
Dreamhostも共有サーバーだけど、なかなかなしんどさで無料鯖でRailsやりたいという願望の非現実感が味わえますw
0724nobodyさん
2009/07/20(月) 17:46:00ID:???0725nobodyさん
2009/07/20(月) 18:25:13ID:???引数で渡すのが一番簡単だと思う。
あるいは、ApplicationControllerあたりでグローバル変数にrequestをセットするbefore_filterを定義とか。
0726nobodyさん
2009/07/21(火) 02:59:52ID:???おれも3日間いったが。
Javaから転校してきてまだ3ヶ月なんだけど、
Rails→超有名
Sinatra→次に有名、もはや珍しくない
まではわかったけど、ほかにも有名なものってあるの?
Java だと web フレームワークはたくさんあって選ぶのに困るぐらいだけど
(もちろん、フレームワークによって得意とする局面はいろいろあるけど)、
Ruby の web フレームワークもそんな状況なのか、
それとも Rail と Sinatra ぐらいなのか?
とりあえず merb と ramaze はRuby会議で知った。
0727nobodyさん
2009/07/21(火) 05:47:32ID:???板違いで申し訳ないんですが、以前から疑問に思っていたので便乗します。
> TomcatはTomcat上でのマルチユーザー(Not UnixUser)に
> 十分対応している。
というのは、tomcat-users.xmlで管理するという意味ですか?
だとするならば、それはUnixユーザー並みに、ユーザーごとに分離独立で
管理できるのですか?
それから、
> javaでは何でも出来てしまうから「共有サーバー」で導入しないだけ。
ということは、例えば、webapps下の別ユーザーが管理するアプリの
ディレクトリ下を書き換えたりできてしまう可能性がある、
ということですか?
上記等から、レンタルサーバ屋さんは基本的に1ユーザ1Tomcatであるべき、
と考えているということなんですか?
0728nobodyさん
2009/07/21(火) 15:42:40ID:rQ1yXsK1とあるテーブルのidが求められていた場合、
ある条件下(例えばデータ生成順)においてそのidのデータが何番目にあるのか?というのを求める方法はないものでしょうか?
また、ActiveRecordでそれはどのように書いたものでしょうか?
例えば、id=1234が :order => "created_at asc" という条件で検索した場合に何番目なのか?という話です。
Rails 2.3です。
0729nobodyさん
2009/07/21(火) 17:45:21ID:???ttp://codezine.jp/article/detail/460?p=2 を参考にすると、
1 + Model.count(:conditions => [ 'created_at < ?', Model.find(1234).created_at ])
だろうか。該当の値より小さい要素の数プラス1(先頭を1とする場合)
0730nobodyさん
2009/07/21(火) 22:41:56ID:fpo5xh0Mありがとうございます。
created_atが同じ場合に問題が出そうです…。
とりあえず、こんな風に書いてみました。かなり富豪的ですが、アクセスは少ないのでいけるかな?
item_id = 1234
item_number = Mode.find(:all, :order => "created_at asc", :select => "id").index{|x| x.id == item_id } + 1
穴がないか、心配ではあります。
0731nobodyさん
2009/07/21(火) 22:43:48ID:fpo5xh0Mですが、いきなり>>730の例は Mode.find(:all で富豪的すぎますが、
実際には、:conditions => ["hoge_id", hoge] みたいに、要素を絞って使ってますです。
0732nobodyさん
2009/07/21(火) 22:44:29ID:fpo5xh0Mx :conditions => ["hoge_id", hoge]
o :conditions => ["hoge_id = ?", hoge]
0733nobodyさん
2009/07/21(火) 22:49:39ID:???「たまたまそうなった」以上の意味はない気がする。
最後尾の位置は、比較を <= にして +1 なしにすれば求められるな。
0734nobodyさん
2009/07/21(火) 22:53:59ID:???だからな。順序という概念はあまり相性がよろしくない。
ORDER BYは列の整列というより取り出し順だし。
0735nobodyさん
2009/07/22(水) 18:51:56ID:???何となくYM4R/GMが良い気がしますが、ほかに何かある?
0736nobodyさん
2009/07/22(水) 19:27:20ID:???0737nobodyさん
2009/07/24(金) 00:02:40ID:???が機能しなくなりました。
gettextは利用しないほうがいいんですかね?
対応策があれば教えてください。
[環境]
rails 2.3.2
ruby 1.8.6-p287
Ruby-GetText-Package-2.0.4
0738nobodyさん
2009/07/24(金) 01:28:01ID:???script/console
>> helper.number_to_currency(1000)
=> "$10,000.00"
にはなるのだが……
number_to_currencyのようなヘルパはRails標準のI18nフレームワーク
を利用しているので相性が悪いとは思う。
gettext的にはビュー上は
<%=h(_('$%.2d') % price) %>
のように出力しておき、日本語なら '%d円' になるようにメッセージ
カタログを用意するのだろうね。
0739nobodyさん
2009/07/24(金) 01:29:34ID:???適当に脳内修正よろ。
0740nobodyさん
2009/07/24(金) 02:03:33ID:???ありがとうございます
う〜ん。悩みますね。
まぁ仕事で利用しているわけではないんで、
色々試してみます。ありがとうございました。
0741nobodyさん
2009/07/24(金) 02:13:28ID:???ということはきちんと初期化しれやればうまくいくはず……
0742nobodyさん
2009/07/24(金) 02:42:21ID:???$ rails _2.3.2_ testapp
適当なモデルを作ってレコードを作成。
$ ./script/generate scaffold Book title:string author:string price:integer
$ rake db:migrate
$ ./script/console
>> Book.create(:title => 'Untitled', :author => 'Anonymous', :price => 10000)
number_to_currencyを利用
$ vi app/views/books/show.html.erb
<%=h number_to_currency(@book.price) %>
GetTextの使用
$ vi config/environment.rb
config.gem 'locale'
config.gem 'locale_rails'
config.gem 'gettext'
config.gem 'gettext_activerecord'
config.gem 'gettext_rails'
I18n FWの初期化
$ vi config/initializers/locale.rb
I18n.supported_locales = %w(en)
I18n.default_locale = 'en'
でフォーマット出来た。
0743nobodyさん
2009/07/24(金) 02:55:25ID:???おお〜〜〜!!
やってみたら私もフォーマットできました。
これでgettextと併用できます。
ありがとうございます。
0744nobodyさん
2009/07/24(金) 06:22:36ID:???自分の場合は、i18nのほうが分かりやすいと思ってるので、i18n_generatorsでymlを生成してます。
0745nobodyさん
2009/07/26(日) 09:25:57ID:VPPSkKB9(Windowsスレでレスもらえなかったのでこっち着ました)
$ time script/runner "puts 'hello'"
hello
real 0m16.309s
user 0m0.015s
sys 0m0.015s
$ time script/runner "puts 'hello'"
hello
real 0m12.124s
user 0m0.000s
sys 0m0.030s
環境:Windows Vista SP2, Ruby 1.8.7 Rail 2.3.2, CPU Core 2 Quad Q6600, Memory 2GB
0746nobodyさん
2009/07/26(日) 10:05:05ID:???0747nobodyさん
2009/07/26(日) 15:17:17ID:???っつかマルチすな
http://pc12.2ch.net/test/read.cgi/tech/1216829388/
■ このスレッドは過去ログ倉庫に格納されています