トップページ⇒php
993コメント316KB

【Ruby】Ruby on Rails Part3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/02/06(火) 20:10:09ID:nOZh/PU9
Rubyのweb application frameworkである
Ruby on Railsに関するスレッドです。

<英語>
本家: http://www.rubyonrails.org
API: http://api.rubyonrails.com/
Documents&Tutorials: http://documentation.rubyonrails.com/

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/


前スレ
【Agile】Ruby on rails相談所 part2【DRY】
http://pc10.2ch.net/test/read.cgi/php/1151254378/
0376nobodyさん2007/05/06(日) 09:44:33ID:???
どうだろう、phpは通り過ぎてる人が多いんじゃないかな
0377nobodyさん2007/05/06(日) 10:51:37ID:FNDfpVmp
RadRailsが、HTML+CSSエディタのAptanaと統合の方向で進むそうで・・・

Aptana: Download Aptana IDE + Rails
http://www.aptana.com/download_rails_rdt.php
0378nobodyさん2007/05/06(日) 12:38:37ID:???
Rubyなんてはやらねえんだよ
0379nobodyさん2007/05/06(日) 13:43:17ID:???
>>378
はやってるよ
0380nobodyさん2007/05/06(日) 13:44:54ID:???
趣味でだろwwwww
企業が採用してるかな?
0381nobodyさん2007/05/06(日) 14:40:58ID:???
>>380
IBMとかSUNとか?
0382nobodyさん2007/05/06(日) 15:00:32ID:???
楽天とか

夏にはまだ早いはずだがなぁ
0383nobodyさん2007/05/06(日) 17:15:54ID:???
PHPもRubyも使ってるよ
もう$this->書くのめんどくせ
0384nobodyさん2007/05/06(日) 17:31:15ID:???
静的なHTMLファイルを読み込ませるのってどうやってますか?
ERB評価をさせたくないのであればFile.readして<%=%>で埋め込むしかないんですかねぇ。
なんかいけてないような…。
0385nobodyさん2007/05/06(日) 17:57:23ID:???
<%= render :partial => '_静的な.rhtml' %>

というのはどうですか?
挿入されるHTMLを_付きの名前のRHTMLとして置く。
中身はただのHTML断片でERBコードを含む必要はなし。
0386nobodyさん2007/05/06(日) 17:58:21ID:???
:partial => の値に.rhtmlはイランカッタ。
0387nobodyさん2007/05/06(日) 19:05:27ID:???
render :templateはどうかな
03883582007/05/06(日) 19:25:18ID:???
>>359
いまはどんなやり方があるかを議論しはじめようとしたところだろ。自分で考えるのをやめたやつは引っ込んどいて。
>>360
ジェネレータじゃないほうのscaffoldではそもそも今回の要求はみたせないし対象外だろ。
いろいろ手を加えたviewに対して、DBテーブルの仕様変更を反映させるうまい方法がないかが論点。
勝手に人をRails使ったことないと決めつけるのもいいけど、そのまえに話を正しく認識しろな。

で、337がまだみてるかどうかわからんが、どうもscaffoldやActiveRecordとは別のアプローチじゃないと解決できそうもなくね?
scaffoldのようなアプローチだとフォーム項目の生成ルールに手を加えられるようになってないと厳しい。
ActiveRecordはやり方として動的にGeneration Gap patternを使ってるようなもんだから、
自動生成される部分と手動で書く部分がきれいに分離できるし、自動生成された定義を手動で細かく上書きできる。
けどviewは基本がHTMLだから、erubyで頑張ろうにもうまくいかん。
結局、DreamweaverやRadRailsやAptanaが十分賢くなって、form定義とテーブル定義の差異を検出するようになるのがいちばん現実的なんじゃないだろうか。
おれの頭じゃこんくらいしか思いつかん。
そもそもおれでも思いつくような方法があればとっくにDHHが実装してるわな。
0389nobodyさん2007/05/06(日) 19:51:32ID:???
>>385
レスありがとうございます。
こればっかりはベンチとって見ないとなんとも言えないんですが、感覚的には
File.readの方が速そうな気がするんですよね。
http://blog.masuidrive.jp/articles/2007/01/01/def_erb_method
この辺を見る限りだと。。
んで、毎回読み込みだとテラオソス
メソッド化するとサーバ再起動まで変更されない
とかだとやっぱり後者になると思うんですが、そうするとバッチでHTMLを作るときとかに都合が悪いんですよね。
自分で自動expire機能付きのファイル読み込みモジュールを作った方がいいのかなぁ。
絶対ありそうなんですけどね…。


>>387
レスありがとうございます。
render :templateはビューのファイル毎置き換わっちゃいませんか?
始めはrender :fileを検討してたんですがこっちがそう言う仕様だったので。
0390nobodyさん2007/05/06(日) 19:54:28ID:???
>>389
性能の話はfragment cacheが導入できるならアル程度は無視できるけど、
どうなのかな。
0391nobodyさん2007/05/08(火) 14:29:54ID:???
Railsでサーバにアクセスした際にログに残る処理時間って
Completed in 1.78100 (0 reqs/sec) | Rendering: 0.18800 (10%) | DB: 1.07700 (60%)

こういうフォーマットだと思うのですが、足して100%にならないのはなんででしょうか?
0392nobodyさん2007/05/08(火) 22:34:30ID:???
>>391
(笑)
0393nobodyさん2007/05/09(水) 12:22:47ID:???

model のリレーションで

A と Bのモデルで共通に使う Xというモデルがあるとき

Xのモデル定義は
belongs_to :a
belongs_to :b

でOKですか?
これだと 一つのモデルが aにもbにも所属しているのと同じに
なっちゃわないのかと思うんですが。

0394nobodyさん2007/05/09(水) 13:23:11ID:???
Xがa_idとb_idを持ってればそれでいいんじゃないかな
0395nobodyさん2007/05/09(水) 16:06:03ID:???
>>393
script/consoleで実際に色々いじってみれ
0396nobodyさん2007/05/09(水) 16:20:24ID:???
centos5にyumインスコしたemacsにemacs-railsを立ち上げると
Debugger entered--Lisp error: (void-function define-button-type)
(define-button-type (quote rails-button) (quote follow-link) t (quote action) (function rails-core:button-action))
eval-buffer(#<buffer *load*<3>> nil "rails-core" nil t)
load-with-code-conversion("/root/.emacs.d/rails-core.el" "rails-core" nil t)
require(rails-core)
eval-buffer(#<buffer *load*<2>> nil "rails" nil t)
load-with-code-conversion("/root/.emacs.d/rails.el" "rails" nil t)
require(rails)
eval-buffer(#<buffer *load*> nil "~/.emacs" nil t)
load-with-code-conversion("/root/.emacs" "~/.emacs" t t)
load("~/.emacs" t t)
#[nil "^H\205\227^@ ?=\203^Q^@?^H?Q\2025^@ ?=\203'^@????#\203#^@?\2025^@?\2025^@ ?=\2031^@?\2025^@?^H?Q^Z?^S?\n?$
command-line()
normal-top-level()
ってでます。どうしたらいいですか。助けてください。
macosxのターミナルから利用したくていろいろやってます。
0397nobodyさん2007/05/09(水) 16:28:48ID:???
あきらめてvimを使う
0398nobodyさん2007/05/10(木) 09:19:15ID:???
>>397
了解したくないけど、試してみます。
0399nobodyさん2007/05/11(金) 00:50:34ID:???
rubyってこれからどんどん表にでてくるの?
あおりとかじゃなくて本気で聞きたい
0400nobodyさん2007/05/11(金) 13:29:43ID:0AuPXgrZ
railsが使えて月500円以下の安いレンタルサーバーってある?
勉強目的なのであまり高いサーバーは借りれない
0401nobodyさん2007/05/11(金) 13:50:20ID:???
板違い
0402nobodyさん2007/05/11(金) 17:47:36ID:???
まぁこのスレに期待するのは間違いだなぁ
0403nobodyさん2007/05/11(金) 17:55:48ID:???
ここは初心者の憩いのオアシスです
0404nobodyさん2007/05/11(金) 19:23:36ID:???
>>400
勉強目的なら自分のPCでやれ。
Rails自体はwindowsでも動く。
0405nobodyさん2007/05/11(金) 19:34:07ID:???
Rails勉強するのと
Railsをサーバーで動かすようにするのは別だから

仮想サーバーでも自分のPC内に立てて味噌
0406nobodyさん2007/05/11(金) 21:10:41ID:???
Railsの勉強だけならSQLite3とWEBrickでいいしな。
WindowsならInstantRailsなんてのもあるし。
04074002007/05/12(土) 02:32:15ID:Z+ay/xmr
ローカルPCなら簡単に動いた。
まさか、サーバーに設置してそのまま動くと考えてるのか?
0408nobodyさん2007/05/12(土) 02:39:25ID:???
>>407
誰にいってるんだ?
04094002007/05/12(土) 02:44:53ID:Z+ay/xmr
WEBアプリをローカルで動かして何の意味があるんだ。
ネットで公開して初めて役にたつだろ。
ここにいるのはみなローカルのPCで動かして喜んでいるのか?
0410nobodyさん2007/05/12(土) 02:49:25ID:???
華麗にスルー
0411nobodyさん2007/05/12(土) 02:55:31ID:???
>勉強目的なのであまり高いサーバーは借りれない
>ネットで公開して初めて役にたつだろ

自分勝手でむちゃくちゃですね
0412nobodyさん2007/05/12(土) 07:59:12ID:???
>>409
ローカルで開発、そのあとは友達がやってるデータセンターに
ちょっと間借りさせてもらって公開。そういう友達がいないのなら、
金を払えってこった。
0413nobodyさん2007/05/12(土) 09:25:16ID:???
逆にローカルとサーバの違いがよくわからんのだが、
俺はローカルで開発して楽しんで、いいものが出来たら
そのままポートを開けて公開してるけど。
最近アクセスが多いからそろそろサーバを借りようかとは思っていたが。
0414nobodyさん2007/05/12(土) 10:03:14ID:???
というか、レンタル鯖でテストすると、他の奴が迷惑かかるとか
ワケワカラン理由で、ああだこうだと言う奴がいることは確か。
別にレンタルで開発して何が悪いってなもんだけどね
0415nobodyさん2007/05/12(土) 12:19:56ID:???
なにこの自分主義みたいな奴
0416nobodyさん2007/05/12(土) 13:02:01ID:???
おれは外部公開用はさくらの専用サーバを使ってる。月額6000円くらい。
0417nobodyさん2007/05/12(土) 13:59:24ID:???
なんだその自分主義っていうのは。
契約範囲内でなにやってもいいだろうが
0418nobodyさん2007/05/12(土) 14:15:05ID:???
昔はプロバイダの固定IPアドレスサービスを使って自鯖を外部公開してた
けど、終夜稼働の音がうるさいし、ハードウェアの保守も億劫になってき
たので、相応のサービスを使うほうが楽だなぁ。


Railsが使えるホスティングってことでTextDriveをためしてみたが、Rails
のバージョンが古かったぜ。
外国にはこの手のRailsホスティング結構あるけど国内にはあんまりない?
0419nobodyさん2007/05/12(土) 14:43:55ID:???
確かにないな
安価でrailsホスティングしてくれるところが出てきたら
railsベースの個人作成webアプリがもっと出てくるかもな
0420nobodyさん2007/05/12(土) 18:38:43ID:???
なんでローカルとサーバを同列に考えるんだよ

サーバーの対はクライアント
ローカルの対はwww(ワールドワイドウェブ)
クライアントで操作してサーバーで処理だろ。
ローカルエリアでゲームでもして、www(ワールドワイドウェブ)でインターネットする
って考えろよ
0421nobodyさん2007/05/12(土) 19:46:25ID:???
・ローカルの対はグローバル
・ローカルエリアではなく、ローカルホスト
・「インターネットする」とはいわない
0422nobodyさん2007/05/12(土) 20:37:31ID:???
>>420
ここは酷いインターネットですね
0423nobodyさん2007/05/12(土) 20:40:10ID:???
>>420
Web(サーバ)で公開するのもlocalhost(ローカル)で公開するのも原理上はほとんど同じ
0424nobodyさん2007/05/12(土) 21:42:44ID:???
>>420
ネットに繋がっている以上ローカルじゃないんじゃないじゃないの

0425nobodyさん2007/05/12(土) 22:25:39ID:???
>>417
どのサーバーでも過負荷禁止は規約に入ってますよ><
0426nobodyさん2007/05/12(土) 22:31:25ID:???
>>425
だから?
0427nobodyさん2007/05/13(日) 00:58:07ID:I6qZDPkK
BasecampみたいなWebアプリを作りたいのですが
Ruby on Rails か JavaでGWT(GoogleWebToolkit)
使うのではどちらがおすすめでしょうか?
Ajaxばりばりにしたいです!
現在JavaはできてRubyはほとんどできてないのですが
出来るだけ楽に開発したいです。
0428nobodyさん2007/05/13(日) 01:46:28ID:???
>>427
GWTでおk
0429nobodyさん2007/05/13(日) 02:37:18ID:???
>>426
どこ契約しても契約違反になるんだから、大人しくRailsはやめなさいって事。
Railsはスケール最悪なので、いつまでたっても普及はしません。
0430nobodyさん2007/05/13(日) 03:10:15ID:???
個人で借りるようなレンタルサーバで選択肢が少ないことと
スケーリングするかどうかとどういう関係が?
0431nobodyさん2007/05/13(日) 03:18:24ID:???
レン鯖はテストする場じゃない。
ネチケットぐらい勉強しなさい
0432nobodyさん2007/05/13(日) 03:55:42ID:???
>>430
>スケーリングするかどうかとどういう関係が?
開始地点も立派なスケーラビリティの一部ですが?
0433nobodyさん2007/05/13(日) 12:08:29ID:???
他人のスクリプトの設定いじる感覚で
レン鯖でトライエラーしてますがなにか
0434nobodyさん2007/05/13(日) 12:10:14ID:???
レン鯖の扱い方の話とかどうでもいいんで
0435nobodyさん2007/05/13(日) 12:21:47ID:???
レン鯖、開発、ってキーワードで、自治忠告屋が沸いてくるので仕方がない
0436nobodyさん2007/05/13(日) 13:53:08ID:???
>>432
じゃあJavaは対応しているレン鯖が少ないから
スケーラビリティがないと。
0437nobodyさん2007/05/13(日) 15:02:45ID:???
ローカルで環境構築できねえ奴はRubyにふれるなっ!!!
0438nobodyさん2007/05/13(日) 22:02:08ID:????2BP(0)
>>437
ローカルで動けば、レン鯖でも動くって思ってるやつ発見。
0439nobodyさん2007/05/13(日) 22:15:51ID:????2BP(0)
レン鯖はDreamHostがお勧めらしい
http://completemirage.blog55.fc2.com/blog-entry-42.html
Ruby 1.8.5
RubyGems 0.9.2
Rails 1.2.2
FastCGI可

http://railsplayground.com/
あとはこっちが$5で安い
0440nobodyさん2007/05/13(日) 22:19:11ID:????2BP(0)
速度を気にしなければさくらインターネットの月500円のスタンダードプランでもRailsは動く
http://d.hatena.ne.jp/yad-EL/20050918
ただしFastCGI未対応なので遅い
0441nobodyさん2007/05/13(日) 22:21:06ID:???
>438
ローカルでチェックもできない人ですかw?そうみたいですね文面からして。
0442nobodyさん2007/05/13(日) 22:47:59ID:???
レン鯖はレン鯖でも、大人しく専用サーバー借りておいたほうが良いと思う。
おすすめは、さくらの専用サーバー(月6800円)。
貧乏学生だったらしょうがないかもしれないけど。
0443nobodyさん2007/05/14(月) 21:36:39ID:???
初めからよっぽどでかい規模でサービス開始できるあてでもなけりゃ
光回線 + 適当なメーカーPCにメモリ4G積むだけで十分過ぎるよ。
なんだって高い金出して専用サーバーなんて借りようと思うのかね。
法人でもあるまいに。
0444nobodyさん2007/05/14(月) 23:41:15ID:???
>>443

俺が借りるとしたら。。。
 うるさくないのと、雷とかで電源を心配しなくてもいい。の2点かな。

貧乏でワンルームに住んでたらよけいだ。

0445nobodyさん2007/05/15(火) 02:05:02ID:???
Railsをフルスタック扱いするのそろそろやめようぜ。
最近は便利なもんは大体プラグインで外に出ちゃってるし。
0446nobodyさん2007/05/15(火) 10:22:58ID:???
だれか、訳たのむ。
ttp://weblog.rubyonrails.com/2007/5/14/hi-i-m-ruby-on-rails
0447nobodyさん2007/05/15(火) 15:41:10ID:???
>>446
プリキュアだいすき。
0448nobodyさん2007/05/16(水) 00:41:25ID:???
>>446
ワロタww

ジャーってのは"ビン"と".jar"をかけてるのかな。
0449nobodyさん2007/05/16(水) 00:52:32ID:???
まぁ、Sunがjarという名前を付けたのもその伝だろうね。
(配ってるアイコンが瓶入りのコーヒー豆だったりするし)
0450nobodyさん2007/05/16(水) 10:58:31ID:???
なぜ、くまちゃんの瓶詰がhibernate?
0451nobodyさん2007/05/16(水) 11:27:35ID:???
ruby on railsでつくったweb applicationのパフォーマンスを測定しようとして、
apache benchを使ってみたのですか、

$ ab -n 10 -c 1 http://localhost:3000
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)...
Test aborted after 10 failures

apr_connect(): Invalid argument (22)

というエラーが出てしまいます。
ぐぐってみても適当なページが見つかりません。
どなたかおたすけを。
ruby1.8.5, rails1.2.3
0452nobodyさん2007/05/16(水) 19:59:03ID:???
>>450
hibernateを辞書で調べるべし。
0453nobodyさん2007/05/16(水) 21:36:26ID:???
>>451

straceでどのシステムコールでエラーが出てるのか追ってみて、
apr_connectのどこに該当するのか調べてみてはどうだろうか?
0454nobody2007/05/17(木) 12:49:34ID:XsRei0dE
ActiveRecordだけを使いたいのですが、gemsをインストールする必要がありますか?
ある解説書によるとActiveRecordだけを使う場合も、

require 'rubygems'
require 'active_record'
としなければならないとなっていたのですが。。なぜrubygemsが必要なんでしょ?
0455nobodyさん2007/05/17(木) 13:19:39ID:???
acts_as_sluggableを日本語でurl表示できるようにと思い
string.to_s.downcase.gsub(/[^a-z0-9]+/, '-').gsub(/-+$/, '').gsub(/^-+$/, '')を
string = URI.escape(string.gsub(/\ +/, '-'))
に変えてみたのですが、%25E6%25ADみたいに4桁になりステータスバーにうまく表示されません。なぜなんでしょうか?内部、表示ともUTF8にしているつもりです。
受け渡しも実はうまくいかないのですが、対象ページ頭でparams[:id]=params[:id].to_iで対処してます。
0456nobodyさん2007/05/17(木) 13:21:01ID:???
gemsでrequireが再定義されてるからじゃないの
0457nobodyさん2007/05/17(木) 13:58:08ID:???
>>454
その解説書がgemでARをインストールしてるから。
0458nobodyさん2007/05/17(木) 14:05:52ID:XsRei0dE
>>457

gemでARをインストールしていると、なぜrequire RubyGemsしなきゃいけないんですか?
gem使わないでARインストールするのと、インストール済みのARは何が違っているのですか
0459nobodyさん2007/05/17(木) 14:30:34ID:???
>>458
じゃあgem使わないでARインストールすれば?
0460nobodyさん2007/05/17(木) 15:10:16ID:XsRei0dE
gem使用と非使用とで
インストールされたARは何が違うのでしょうか
0461nobodyさん2007/05/17(木) 15:18:43ID:???
いい加減自分で試してくれ
0462nobodyさん2007/05/17(木) 15:24:49ID:XsRei0dE
いろいろ事情があって簡単に試せない人もいるということも理解していただきたかった
0463nobodyさん2007/05/17(木) 15:34:02ID:???
今すぐ開発環境に触れないなら、今すぐ知る必要もない気がするが
0464nobodyさん2007/05/17(木) 16:09:14ID:Uj8RNsNK
ブラウザからJSONをPOSTする方法ってありましたら、教えて頂けないでしょうか。
自動的に、@paramsへJSONから生成したハッシュが格納できれば、便利だなと思いました。

ちなみに↓の記事を参考に試行錯誤してみましたが、力及ばずできませんでした。
http://www.fraction.jp/log/archives/2007/05/1123

または、Rails側で@params[:json]を、自動的に@paramsに展開とかできればと
思っているのですが、何かヒントがありましたあ教えて頂けないでしょうか。
0465nobodyさん2007/05/17(木) 16:40:49ID:???
>>460
何も変わらん
0466nobodyさん2007/05/17(木) 16:58:26ID:XsRei0dE
じゃあ require Rubygems しないとだめなのはなぜ?
0467nobodyさん2007/05/17(木) 17:13:59ID:???
>>466
だからrequireがrubygemsで再定義されてるの、

require 'rubygems'
require 'active_record'

require 'rubygems' された時点でrequireが再定義される
2つめのrequireはもうビルトインのrequireじゃなくて
gemsで定義されてるrequireが呼ばれてるわけ、
んでgemsのrequireはちゃんとgemsで入れたディレクトリから
よしなにactiverecordのファイルをロードしてくれるということ
OK?
0468nobodyさん2007/05/17(木) 17:19:54ID:???
>>467

ここは偉大なインターネットですね。
偉すぎるよあんた。
0469nobodyさん2007/05/17(木) 17:26:25ID:XsRei0dE
>>467

理解しました。かたじけないです。
0470nobodyさん2007/05/17(木) 17:58:57ID:???
俺だったら最初の質問時点でスルーだな
0471nobodyさん2007/05/17(木) 18:00:11ID:???
なぜなら、わからないから!
0472nobodyさん2007/05/17(木) 22:33:38ID:???
>>467
質問者じゃないけどサンクス。
必要ないからスルーしてたけど、実は不思議に思ってた
0473nobodyさん2007/05/17(木) 22:45:35ID:???
>>464

json = params[:json]
data = ActiveSupport::JSON.decode(json)

params.update(data)

じゃ駄目?
まあそもそもJSONをparamsで利用する状況がワカランが。
0474nobodyさん2007/05/18(金) 02:08:25ID:mkSsUdP0
>>473
ありがとうございました。自分でもいろいろ試してたんですが、
application/x-www-form-urlencodedでは、JSON内に"="を含む場合に
うまくいきませんでした。(単に必要な処理が抜けてるだけだと思いますが)

今は諦めて、素直にapplication/x-www-form-urlencodedでPOSTしています。

>じゃ駄目?
>まあそもそもJSONをparamsで利用する状況がワカランが。

UIを、Ext(Javascript)でごりごり書いているのですが、
application/javascriptでPOSTできたら楽だなあと思って、質問しました。
JSON形式のレスポンスを期待しているので、だったらリクエストもJSONで
できないのかなとふと思ったもので。変な質問ですいません。
0475nobodyさん2007/05/18(金) 06:47:37ID:E7j+ElzH
すいません、質問させてください。
これからプログラミングを覚えたいのですが
rubyを覚えるメリットってなんですか?
デザイナーあがりでPHPも視野に入れているのですが
Rubyのほうがおもしろそうなイメージがあるのでお聞きしました。
もし不適切でしたらスルーしてください
■ このスレッドは過去ログ倉庫に格納されています