トップページphp
1001コメント336KB

【Ruby】Ruby on Rails Part6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/10/24(金) 17:46:53ID:???
■前 Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1207425569/

■参考サイト
<英語>
本家: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 33
http://pc11.2ch.net/test/read.cgi/tech/1223709050/
Ruby 初心者スレッド Part 22
http://pc11.2ch.net/test/read.cgi/tech/1221467121/
0478nobodyさん2009/02/26(木) 23:19:48ID:???
運用ノウハウ欲しいなら勉強会行けばいいよ
0479nobodyさん2009/02/27(金) 01:32:31ID:???
どこのがいいの?
0480nobodyさん2009/02/27(金) 09:06:36ID:pVHBsIy5
Rails勉強会とか?
後は実際に公開サーバでRailsアプリを運用するのが一番勉強になる
0481nobodyさん2009/02/27(金) 13:50:10ID:???
そういう迷惑なことは辞めろ
0482nobodyさん2009/02/27(金) 14:04:23ID:pVHBsIy5
>>480に補足
もちろん、公開サーバの話はきちんと知識を身に付けた後の話。
わざわざ書かなくても分かると思うけど、念のため。
実践する事も大切。
実際に運用してみないと分からない事もあるよ。
0483nobodyさん2009/02/27(金) 20:59:16ID:???
>>477
http://www.oreilly.co.jp/books/9784873114002/
まだ出てないけどRailsの運用環境に関する本

ただ、目次を見た限りpassengerについては記載されてないっぽいね
Mongrelは結構詳しそう
0484nobodyさん2009/02/27(金) 21:13:33ID:???
最新情報はネットで
0485nobodyさん2009/02/27(金) 21:17:44ID:???
断片をつなぎ合わせるのはつらいから、
やっぱり書籍でがっつり紹介してもらった方がいいの〜
0486nobodyさん2009/03/01(日) 13:42:34ID:???
Rails2.2のActionMailerでiso-2022-jpのメールを送る方法が分かりません。

ActionMailer::Baseでデフォルト文字コードを指定すると、
Content-Typeのcharsetはiso-2022-jpになってくれますが、
本文の文字コードは変換してくれないようです。

そこでView(メール本文)をiso-2022-jpにすると、
今度はViewの解析でエラーになってしまいます。
ソースを読んで地道に直すしかないでしょうか?
04874862009/03/01(日) 14:00:19ID:???
ソースを読んでみましたが、
ActionMailer::Base#create!を上書きする昔ながらの方法が
まだ使えそうな感じだったので、とりあえずこれで行くことにします。
0488nobodyさん2009/03/01(日) 15:29:26ID:???
gettextをインストールするという手もあるな。
0489nobodyさん2009/03/02(月) 12:19:55ID:???
Twitterで仕入れてきたビッグニュース
次期RailsがMerbが統合されてRails3としてリリースされるらしい
DHH(Rails作った人)がTwitterで言ってたから間違いないはず
英語圏の情報をダイレクトで仕入れといてよかったよ
0490nobodyさん2009/03/02(月) 12:49:01ID:???
>>489
>>154
0491nobodyさん2009/03/02(月) 17:30:26ID:???
マヌケだなおいw
0492nobodyさん2009/03/02(月) 23:12:18ID:???
gettextはRails2.2と互換性ないよね。たしか
入れたらエラーになった記憶がある。
0493nobodyさん2009/03/02(月) 23:17:18ID:???
いまRails 2.2のi18nと折り合いを付けるために作業してるみたいですな。
あと、githubに引っ越すのにちとゴタゴタしていた模様。
0494nobodyさん2009/03/03(火) 20:48:20ID:???
gettextをベースにx9速いと謳ってるfast-gettextなんてのもあるね。
http://github.com/grosser/fast_gettext/tree/master
0495nobodyさん2009/03/04(水) 00:44:32ID:???
メールは、actionmailer_jaっていうプラグインがあるみたいだね
jpmobileっぽくて良さげ
0496nobodyさん2009/03/04(水) 18:01:08ID:???
form_forに渡すオブジェクトってActiveRecordじゃないとダメなの?
0497nobodyさん2009/03/04(水) 19:09:35ID:???
>>496
ActiveForm使えばいけるかも
やったことないけど
0498nobodyさん2009/03/05(木) 00:32:51ID:???
>>496
試してみた。DuckTypingでいけた。
0499nobodyさん2009/03/07(土) 14:43:07ID:???
おはようございました
RAILS IF RUBY ON RAILSっていう本読みながらRailsを始めたのですが、さっそくハマりました。
NetBeans6.5なのですが、db:createができません。
db:の欄にcreateがないのです。
http://imagepot.net/view/123640408655.png

Ruby環境はMacportからruby-gemをインストールしました。
DBはsqlite3を使うように選択しています(試しにMySqlを選択しても同じでした)。
http://imagepot.net/view/123640391835.png

不可解なのが、NetBeans上ではRailsのversionが低いことです。
MacportでインストールしたRailsとバージョンが違うようです。
http://imagepot.net/view/123640392210.png
http://imagepot.net/view/123640408812.png

ご教示くださいませませ。
0500nobodyさん2009/03/07(土) 18:05:19ID:???
>>499

うちはNB6.1だからちょっと違うかもしれないが、
メニュー→ツール→RubyプラットフォームからMacPortsで入れたRuby(/opt以下のもの)
を登録。新規RoRプロジェクトの作成時に、Rubyプラットフォームを選ぶ。

MacOS X 10.5には、Rubyや1.2時代のRails環境が付いているんだぜ。


0501nobodyさん2009/03/07(土) 18:06:50ID:???
3枚めを見て気になったんだが、PATHに/opt/local/binは入っている?
Portsで入れたRubyは1.8? 1.9?
0502nobodyさん2009/03/07(土) 21:41:10ID:???
できますた
/opt/local/binのRubyにしたら、新規プロジェクトでRailsが1.2ではなく2.2を選ぶようになってくれた

ターミナルでgem list --localするとキチンとrailsが2.2になってて、
whereis gemしたら、/usr/local/binってなるから、それを見に行くと
オリジナルは/System/Library/Frameworkd/ruby.framework/Versions/1.8/usr/binってわかる
NetBeansのGemパスはこれと一緒だし、これのGemホームは/Library/Ruby/Gems/1.8になってる

けどopt/loca/lib/ruby/gems/1.8が正解
なんでやねn
05034992009/03/07(土) 22:22:11ID:???
db:createするとエラーになってしまいました
Gemパスの2つめのパスがパーミッション権限ないと言われてchownしてみたのですがやっぱダメ
なんで自分がやるとこんなにたくさんエラーでるんだろう
http://www.picamatic.com/show/2009/03/07/04/18/2634057_909x560.png

05044992009/03/07(土) 22:25:14ID:???
エラーです
http://www.picamatic.com/view/2634134_%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3_7/
0505nobodyさん2009/03/07(土) 22:34:07ID:???
sqlite3-rubyは明示的にコマンドラインからインストールしないと駄目じゃない?

sqlite3はMacPortsで入れ、Rubyバインディングはgemで入れる。
$ sudo port install sqlite3
$ sudo /opt/local/bin/gem install sqlite3-ruby
(間違って/usr/bin/gemを使わないよう、念のため絶対パスで示した)

or 両方MacPortsから入れる。
$ sudo port install rb-sqlite3
05064992009/03/07(土) 22:58:57ID:???
できましt!
ありがとうございます
0507nobodyさん2009/03/08(日) 02:42:32ID:VdgrfizB
質問させてください。
ruby 1.9.1
rails 2.3.0
CentOS 5.2
apache & passenger
sqlite3のDB作成済み

の環境で動かしていて、ブラウザ経由でデフォルトのindex.htmlを表示させるところまでは行ったのですが、
ruby script/generate scaffold Sample text :string place :string created_at :datetime

とやると、
/opt/lib/ruby/gems/1.9.1/gems/actionpack-2.3.0/lib/action_controller/routing/segments.rb:6: warning: encoding option is ignored - N

wrong number of arguments (1 for 2)
というエラーが出力されました。

xxx.jp/samples/list のようなURLにアクセスしてみたのですが、404 が表示されてしまっています。

原因として考えられること&解決方法分かる方いらっしゃったらご教示頂けると幸いですm(_ _)m
passengerのURLルーティングがうまくいってないんだろーか・・
0508nobodyさん2009/03/08(日) 02:48:05ID:???
自分で原因を調べて修正できないならruby1.9.1とrails2.3.0は使うべきではない。
0509nobodyさん2009/03/08(日) 03:02:25ID:???
無料でRoR環境揃えられるのに、わざわざマクなんて買ってご苦労な事だ。
0510nobodyさん2009/03/08(日) 05:54:36ID:???
>>508
答えられないなら書き込むな、カス
0511nobodyさん2009/03/08(日) 11:25:07ID:???
>>510
508はごくごく正論だと思うが。
ここはそもそも教えてスレじゃないんだから、答えるのは飽くまでその人の善意。

自分のほしい答えがもらえなかったからって逆ギレしなさんな。
0512nobodyさん2009/03/08(日) 12:09:33ID:???
おれは1.9のスピードに魅力を感じるがな。
測定したわけじゃないから体感レベルだが確かに速い。

1日10万とか20万PVくらいまでなら1.8でもいいが、
100万を超えるなら1.9だろう。

あと個人的なべき論を、
まるで正統かのようにレスするのはおれもどうかと思う。
0513nobodyさん2009/03/08(日) 13:05:37ID:???
>>512

Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた
http://jp.rubyist.net/magazine/?0025-Ruby19_Performance

> ベンチマークの最後として、データベース処理を含めたベンチマークを実行してみます。
> 内容はコメントつきの Blog アプリケーションであり、使用したデータベースとデータ件数は
> 以下の通りです。
>
> * MySQL バージョン: 5.0.67
> * データ件数: ユーザ 10 人 + ブログエントリ 5000 件 + コメント 10000 件
(中略)
> この結果から、次のようなことがわかります。
>
> * Ruby による消費時間を比べると、Ruby 1.8.7 より 1.9.1 のほうが約 1 % ほど速い。
> * 全体の実行時間のうち、Ruby による消費時間はわずか数パーセントにすぎない。

結論:
1.9系で速くなったのは科学計算等で使うようなアルゴリズムの部分であって、基本的に
文字列操作がメインのWebアプリケーションでは目立った高速化はない。

またWebアプリケーションのボトルネックはDBであることがほとんどであり、Ruby処理系
が数倍高速になったとしても、全体のパフォーマンスに与える影響は限定的なものである
場合が多い。
0514nobodyさん2009/03/08(日) 13:12:49ID:???
>>509
Linuxでいいのにね。
0515nobodyさん2009/03/08(日) 13:38:23ID:???
RoRの話じゃないのに、ミスリード誘ってるの?
0516nobodyさん2009/03/08(日) 13:42:11ID:???
1.9は速度っていうよりもマルチスレッド化が
webアプリにとって大きいんじゃないの?
0517nobodyさん2009/03/08(日) 15:30:33ID:???
>>516
長期的にはそうだね。

ただ今の時点でRailsのスレッドセーフオプションを有効にして、さらにRuby1.9で
動かすのは人柱以外の何者でもない。

何か問題があっても自己解決できないような素人にはオススメできないのは当然。
0518nobodyさん2009/03/08(日) 16:12:24ID:???
>>513
こんな例で比べられてもw
MySQLのくそ頭の悪いオプティマイザー+エンジンで結合使うとかそれこそ自殺行為だからw
純粋な計算処理とViewのところは参考になったけど

あと1.8と1.9の両方で動くプログラムで比べても意味ないから
まんま入れ替えて動作して高速化してとか期待してないし、
そもそも動かないだろうし
0519nobodyさん2009/03/08(日) 17:00:41ID:???
1.9の評価がさんざんなので、信者が必死になってる感じだな。

DBはどれがいいの? やっぱりオラクル?
0520nobodyさん2009/03/08(日) 18:03:31ID:???
いやそもそも1.9じゃWebアプリは速くなるどころかヘタすると遅くなるんじゃね?って
言われてただろ。
MatzだったかささださんだったかYuguiさんだったか誰か忘れたけど、そういう趣旨
の話をどっかで聞いた記憶がある。
0521nobodyさん2009/03/08(日) 18:19:54ID:???
そもそも現時点でRailsってそれほど遅くない。
EngineYardの計測データだと、素のPHPには負けてもCakePHPみたいな
フレームワークと比べると数倍は速いらしい。(さらにそれよりもMerbの
ほうが速いというオチはついてるが)

Railsの何が問題かというと、メモリの爆食い。
これはMerbにも共通することなので、3.0で統合されても当面解決しそうにない。

メモリ使用量の少ないフレームワークにはWavesとかSinatraとかあるら
しいが、いまいちマイナーで実績がなさそうなのが難点。
0522nobodyさん2009/03/08(日) 18:54:45ID:???
なんでそんなにメモリ食うの?
いらんライブラリー読みまくってるとか、アクティブレコードで消費してるとかか?
0523nobodyさん2009/03/08(日) 21:33:27ID:???
>>522
rubyのメモリー管理が悪いみたいよ
0524nobodyさん2009/03/08(日) 22:04:45ID:???
「悪い」わけではない
メモリを節約して使うという設計になってないだけだ
メモリを節約するとCPU時間を食うから、メモリを使うように設計しただけ
メモリのほうが大事な人はRuby使ったら駄目
0525nobodyさん2009/03/08(日) 22:24:38ID:???
時間と空間のトレードオフ、て奴だね
速度を重視するなら、メモリにコンテンツ展開して外部記憶(HDD)へのアクセスを減らす
空間(メモリ節約)重視なら、必要になる度にHDDから読み込んで使い終わったらすぐ開放
0526nobodyさん2009/03/08(日) 22:27:06ID:???
pythonはメモリ食わないよ(rubyと比べて)
はやいし
0527nobodyさん2009/03/08(日) 23:05:04ID:???
Rubyはコンセプト的に遅いんだよ
PythonをRubyと同じ動作するように作ったら、Rubyと同じ速さになる
たとえば、Rubyからeval機能を無くせば一定の速度向上が望めるが、それはきっとRubyではない
0528nobodyさん2009/03/08(日) 23:11:42ID:???
IronRubyは滅茶苦茶速いみたいだよ。
ttp://blog.prokrams.com/2008/08/27/ironruby-vs-jruby-vs-mri-performance-mini-shootout/
まだ、Railsがちゃんと動くまでにはなってないみたいだが。
0529nobodyさん2009/03/08(日) 23:12:26ID:???
あれ、違うわ。3倍近く遅いんだ。
使えないな。
0530nobodyさん2009/03/08(日) 23:17:11ID:???
IronRubyは速くなるか遅くなるかの二者択一だと思う
CRubyより速くならない処理があるのなら、そこはCRubyよりずっと遅く動く
速くなる部分だけIronRubyが使えればいいが、そううまくいくかね
0531nobodyさん2009/03/09(月) 00:50:35ID:???
え,速くなることもありそう?
DLRとかがもうそんなに発達してるってこと?

CRubyにはJRubyにもIronRubyにも負けてほしくないなあ
0532nobodyさん2009/03/09(月) 00:55:23ID:???
IronRubyが出てばMSがドキュメントを整備してくれるかもしれない
おれはそれを期待している
Railsが動くようになるなら、相当互換性は高いだろうから
0533nobodyさん2009/03/09(月) 03:50:25ID:???
>>509
LinuxはPCも無料なんですか
すごいですね
0534nobodyさん2009/03/09(月) 06:18:44ID:???
Ruby on Rails の開発陣は全員Macだったような、、、
0535nobodyさん2009/03/09(月) 10:56:08ID:???
ゲイツの子供はRails禁止です
0536nobodyさん2009/03/09(月) 11:35:01ID:???
ピニャータだろw
0537nobodyさん2009/03/09(月) 18:15:01ID:???
幼稚園の時>>533みたいなこと言う子居たな
0538nobodyさん2009/03/09(月) 18:19:05ID:???
上げ足とられて悔しいのかも知れんが、>>533はまともだと思うが。
0539nobodyさん2009/03/09(月) 21:12:50ID:???
自己紹介乙
0540nobodyさん2009/03/09(月) 21:37:13ID:???
iPhoneとiPodは実際に禁止らしいな。立場上。
0541nobodyさん2009/03/10(火) 13:45:45ID:???
RoRの話をしなさいw
0542nobodyさん2009/03/10(火) 19:53:36ID:???
マクよりPCのほうが安い現実。
0543nobodyさん2009/03/10(火) 20:59:58ID:???
Macで開発できるけど、運用どうすんの。
Macサーバー買うの?
0544nobodyさん2009/03/10(火) 21:23:50ID:???
うちはWindows/Gentoo/Macで開発してCentOSでサービス公開している。
なんで実運用までMacでやらにゃあかん?
0545nobodyさん2009/03/10(火) 22:04:47ID:???
下らん煽りに釣られるなよ・・・
0546nobodyさん2009/03/10(火) 22:06:25ID:???
最初から無料の遷都で開発すればもっと儲かる。

マクの10マソ鯖なんて無いだろ。
0547nobodyさん2009/03/10(火) 22:10:32ID:???
そんな利益カツカツのサービスでやってるのか。
0548nobodyさん2009/03/10(火) 22:11:12ID:???
MacってMacPro以外は使えねえからなあ。
0549nobodyさん2009/03/10(火) 22:29:21ID:???
アンチMacはなんなの?
Macで開発したらバカなの?
儲からないの?しぬの?
0550nobodyさん2009/03/10(火) 22:51:16ID:???
>>549
別に。
特にないです。
0551nobodyさん2009/03/11(水) 00:25:38ID:???
話は戻るが、Railsがメモリ食いなのはRubyのせいというだけではない。

ttp://www.infoq.com/jp/news/2008/03/waves-ruby-framework

古い記事だが、WavesなんかはRailsと比べてメモリ消費量が1/3〜1/4なんだそうだ。
開発者の手前味噌なんで、数字の鵜呑みはできないが。
0552nobodyさん2009/03/11(水) 00:33:41ID:???
ところでみんな、ViewのPartialってちゃんと動いてる?

<% render :partial => "hoge" %>

で、_hoge.html.erb を読み込ませても、中のHTMLが表示されない。
2.1、2.2、2.3の三つのバージョンで試しても全く同じ。

ファイル名を変更するとエラーになるし、_hoge.html.erb の中で <% p "AAAAAAA" %> とかやると
WEBrickのログのほうに"AAAAAAA"が出力されるので、読み込まれているのは確かなんだけど。

使い方が間違ってるんだろうか。
0553nobodyさん2009/03/11(水) 00:37:26ID:???
<%= render :partial => "hoge" %>
~~~~
=を付けてないんじゃまいか?
05545522009/03/11(水) 00:44:00ID:???
>>553
あーなるほど。=をつけなきゃいけないということをすっかり忘れてました。
いやお恥ずかしいかぎり。

自分では気づけなくて今日半日くらいつぶしたので、感謝です。
0555nobodyさん2009/03/11(水) 01:50:21ID:???
2.3のRCの出来は如何に
0556nobodyさん2009/03/11(水) 03:47:54ID:???
マクなんてどれ使っても使えないだろwww
0557nobodyさん2009/03/11(水) 03:53:27ID:???
>>556
いやキミは使ったことないから
0558nobodyさん2009/03/11(水) 08:55:59ID:???
昔触ったとき、右クリックがないことにものすごい憤りを覚えた
0559nobodyさん2009/03/11(水) 09:23:16ID:???
>>558
Macはマウスだけじゃなくてキーボードと併用するのが普通
初代さんが見たらこの現状きっと泣くだろうなと思って研究室で使ってた
0560nobodyさん2009/03/11(水) 09:44:58ID:???
>>559
そんなことは知っているが、使いやすいと評判な意味はまったくわからなかったな。
しかも普通に2ボタンマウス使えば右クリック使えるというのがまたふざけてる。
いちいちボタンひとつにしてる理由が全く無い。
0561sage2009/03/11(水) 09:56:51ID:La0qmAhb
入力→確認→登録という流れのフォームを作ってます。

フォームの項目が頻繁に変更・追加・削除され、
そのたびに入力用テンプレートと確認用テンプレートを編集してます。

入力と確認用のテンプレートはほぼ同じ内容なので
ちっとも DRY じゃないなーと。

みなさんはどうしてますか?
入力&確認テンプレートを吐き出すプログラムを別途用意?
それとも何か便利なプラグインが???
0562nobodyさん2009/03/11(水) 16:21:19ID:???
純正マウスも3ボタンじゃないしな。PCのほうが普通に使い易い。

オブジェクト指向なんだから使い回せるように工夫すれば?
0563nobodyさん2009/03/11(水) 16:52:00ID:???
Macは信者が痛すぎるんだよ。
いちいち、「俺、Mac使ってる」とかいう奴なんなの?特別な存在だと思われたいの?



と、言ってみる。
0564nobodyさん2009/03/11(水) 16:56:21ID:???
>>560
設定変えれば純正マウスも2ボタンにできるぞ。
デフォルトが1ボタンなのは文化か?
0565nobodyさん2009/03/11(水) 18:51:49ID:???
Macはアンチが痛すぎるんだよ。
いちいち、「俺、Mac嫌ってる」とかいう奴なんなの?特別な存在だと思われたいの?
0566nobodyさん2009/03/11(水) 19:03:57ID:???
マク話はもういいよ・・・。
05675612009/03/11(水) 19:14:46ID:???
Rails の話もお願いします><
0568nobodyさん2009/03/11(水) 21:09:08ID:???
新Macbookは4本指に対応したからマウスいらなくなった
0569nobodyさん2009/03/11(水) 21:14:27ID:???
>>561
頻繁に変更されない様に初めにきっちり仕様を決める
0570nobodyさん2009/03/11(水) 21:18:23ID:???
>>561
どうせ最初から理想の設計にはならないので、フォーム項目が安定しないうちは
べた書きでいいんじゃない?
安定したらまた考える。

0571nobodyさん2009/03/11(水) 22:20:30ID:???
>>561
それこそ部分テンプレ使えばいいんじゃないかと思うんだが、そういう基本的な話じゃないの?
0572nobodyさん2009/03/11(水) 22:42:17ID:???
確認のその場で修正できるフォームなら、部分テンプレートでよさそうだな。

「確認用はフォームではなく編集不可のHTMLとして表示する。
間違いを見つけたら編集ボタンを押して、現在値入力済みの
入力フォームへ飛ぶ」だと個別作成になるかね。
0573nobodyさん2009/03/11(水) 23:21:07ID:???
テンプレート一枚で
actionでinputとインスタンス変数表示切り換えるヘルパー作っちゃえば?

input confirmつながりで、
confirm時は皆hiddenに突っ込んでる?
それともセッション?

個人的には
セッションにあまり値入れたくない派だけど
皆どうなのか気になって聞いてみた
0574nobodyさん2009/03/11(水) 23:55:23ID:???
hiddenにしておかないと進む戻るされたときにすじつまがあわなくならん?
05755072009/03/12(木) 00:15:41ID:JHPTnQN+
レスありがとうございましたm(_ _)m
結局rubyのバージョンを1.8.7に落としてやることにしました。

>>510
は俺じゃないっす。

すいません、また聞きたいことができたのですが、
ActiveRecordの定義ってどこにありましでしょうか?メソッドの一覧を見てみたいと思いまして。。
ご教示頂きたくm(_ _)m
0576nobodyさん2009/03/12(木) 00:22:00ID:???
http://api.rubyonrails.org/

とりあえず
ActiveRecord::Base
ActiveRecord::Associations::ClassMethods
あたりを見れば基本のメソッドはわかる。
05775072009/03/12(木) 00:28:17ID:JHPTnQN+
ありがとうございます。
すいませんActiveRecord そのものの定義はどのファイルに書いてあるんでしょうか?
grepしても分からないんです><
■ このスレッドは過去ログ倉庫に格納されています