トップページ⇒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/
0508nobodyさん2007/05/21(月) 12:57:32ID:WrbVQDsV
RailsでApache2がうまくいきません。
RailsでWEBrick動かしたらちゃんと動く。
その状態で,Apacheに切り替えたらだめ。
http.confをちゃんと書き換えて、
Railsのpublicディレクトリのdispatch.cgiは動いているらしいが、
「We are sorry but something went wrong」っていう赤い文字が出る。
log/development.logの最後の2行は
/usr/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/dispatcher.rb:40:in `dispatch'
/rails/public/dispatch.cgi:10

で止まってる


0509nobodyさん2007/05/21(月) 13:01:19ID:???
cgiで動かすなんてありえない
05105082007/05/21(月) 13:12:04ID:WrbVQDsV
うまくいけばもちろんfcgiに移行しますよ
まずは生cgiで
0511nobodyさん2007/05/21(月) 13:19:32ID:I7evBswX
>>507
Windowsでバリバリ開発したいなら、そのURLのとおりインストールして問題ないですよね?
後でLinuxで運用しようとは思ってますが・・・・
Windows上でLinux環境を構築するのがめんどそうなので、、、
Linuxはまだ手元にないんですが。
0512nobodyさん2007/05/21(月) 14:21:28ID:???
>>511
VMWarePlayerやVPC使えば?
05135082007/05/21(月) 18:33:05ID:WrbVQDsV
>>508
自己解決しますた
0514nobodyさん2007/05/21(月) 22:50:44ID:???
おいらが使ってるレン鯖のサービスに知らないうちにRORが追加されてたよ。
05154132007/05/22(火) 00:10:55ID:????2BP(0)
>>514
どこ?
0516nobodyさん2007/05/22(火) 22:39:13ID:???
>514
海外なんだけどたまに途中経路で断線するから国内鯖にしようと思ってたところなんだけどまた更新しちまったよ。
0517nobodyさん2007/05/23(水) 00:44:47ID:???
Javaからの移転組なんだけど、どうもRDoc?HTMLのAPIが読みにくい。
with_optionsについて調べたかったんだが、ソース読むにもどこに書いてあるのかわかららら

がんばって覚えたいけどなかなか慣れない俺ガイル
0518nobodyさん2007/05/23(水) 01:30:55ID:???
>>517
量の問題じゃないの?
JavaにしたってオフィシャルのAPIドキュメントは超充実してるけど、それ意外では
たとえばメジャーそうなJakartaあたりでもドキュメントの質と量はプロジェクトによってマチマチでしょ。
0519nobodyさん2007/05/23(水) 10:14:08ID:???
たしかにRailsはリフレクションを濫用してるから、使ってるメソッドが
もともとのクラス定義に存在しないので、ソース読むとストレス溜るよね。
存在してないならいいけど、どこかで書き換わったりしてるから余計困る

evalに文字列を渡してメソッド再定義してあると探しにくくて結構泣ける。
まぁ、rdocのマニュアルはけっこう使えると思うけどね。
0520nobodyさん2007/05/23(水) 16:33:49ID:M5ep4n2y
表示はUTF8で、SJISのORACLEを使う場合、ORACLEから読み込んだ直後と
書き込む直前に、漢字コード変換をかける方法を知りませんか?
0521nobodyさん2007/05/23(水) 19:13:15ID:???
>>520
モデルのフィルター使え。
0522nobodyさん2007/05/23(水) 19:17:21ID:???
> with_optionsについて調べたかったんだが、ソース読むにもどこに書いてあるのかわかららら

grep とかつかったことないの?
0523nobodyさん2007/05/23(水) 19:47:03ID:n/+v7OTj
超初心者です、どなたか教えてもらえないでしょうか?

Ruby ではじめるプログラミング 【最終回】
ttp://jp.rubyist.net/magazine/?0005-FirstProgramming
↑この回の分を実行しようとしますと、
「tk84.dllが見つからなかったため、このアプリケーションを開始できませんでした。」と出ます。
インスコし直しても症状が同じで、どうすればよいのかまったくわかりません。

ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] で
RubyForge: Project Info- One-Click Ruby Installer のページからダウンロードしました。
よろしくお願いします<(_ _)>
0524nobodyさん2007/05/23(水) 22:45:22ID:???
>>523
これやってみた?

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/42838
0525nobodyさん2007/05/24(木) 00:41:53ID:???
↓これやってみました。そしたらでけました。
Ruby/Tk環境を作る
ttp://lldev.jp/ruby/tips/ruby_tk_install.html

どうしてもその画面が見たくって質問してしまいましたが、
これからはもっと調べてから質問したいと思います。
すんませんでした。>>524ありがとうございました。
0526nobodyさん2007/05/24(木) 00:54:56ID:???
>>525

もともとの質問自体が、railsと関係ないという罠。
ruby自体の質問に答えてくれる心温まる優しいスレとして認定しとこう。
0527nobodyさん2007/05/24(木) 08:07:30ID:???
> ruby自体の質問に答えてくれる心温まる優しいスレとして認定しとこう。

Tk は、ruby 自体なの?w
0528nobodyさん2007/05/30(水) 02:45:59ID:???
EZ DO Ruby
0529nobodyさん2007/05/30(水) 04:46:50ID:???
徹夜Ruby工場
0530nobodyさん2007/05/31(木) 04:37:34ID:???
Railsって管理画面とか自動生成できるの?
0531nobodyさん2007/05/31(木) 05:58:06ID:???
scaffold
0532nobodyさん2007/05/31(木) 10:10:42ID:???
scaffold って結局書き直すんだから、作るだけ無駄というか。w
0533nobodyさん2007/05/31(木) 12:12:17ID:???
railsではなくCMSとかそんなのがほしいのかな?
0534nobodyさん2007/05/31(木) 15:33:20ID:???
>>532
まさか、scaffoldを素のまま使って、全部の画面を書き直してる?
それともCRUD以外のコントローラにscaffoldを使おうとしてる?
05355302007/05/31(木) 16:55:06ID:???
cmsがほしいんじゃなくてPythonとかPHPの一部だとできるみたいなんでRailsもできるのかなぁと
0536nobodyさん2007/05/31(木) 17:07:41ID:???
djangoのアドミン見たいな奴?
何人かがいろいろ作ってたよ。ajaxバリバリの奴とか。
wikiからたどるか、ググるかしてみ。
0537nobodyさん2007/05/31(木) 22:17:00ID:???
scaffold(足場)っていうのは最終的に捨てるものだぞ。
0538nobodyさん2007/06/01(金) 00:25:19ID:uCfgpxop
多言語対応する常套手段ってなにがありますでしょう?
0539nobodyさん2007/06/01(金) 00:28:53ID:???
>>538
とりあえず gettext だな。
0540nobodyさん2007/06/01(金) 00:30:22ID:???
>>539
ありがとう!調べてみる
0541nobodyさん2007/06/01(金) 05:33:42ID:???
>>536
ありがとー!
必要になったらやってみるよ!
0542nobodyさん2007/06/01(金) 13:39:25ID:???
「かんたんRuby on RailsでWebアプリケーション開発」で勉強中なんですが、
6日目でLoginEngineを入れると500 サーバエラーが出ます。

5日目のプロジェクトに対しプラグインを追加(CD-ROMからコピー)し、
config/environment.rbを変更してrake db:migrate:engines を実行し、
app/helpers/application_helper.rb を変更するまでは(ログインプラグイン抜きで)動作しますが、
app/controllers/application.rb を変更するとアウトです。
このことからLoginEngineに制御が渡るとエラーになるようですが、
どのあたりを追えばいいんでしょうか?

バージョンは次のとおりです。
OS WinXP Pro SP2
Ruby 1.8.6
Rails 1.2.3
LoginEngine 1.0.2
Engines 1.1.2
WEBrick 1.3.1
MySQL 5.0.37
0543nobodyさん2007/06/01(金) 13:55:51ID:???
>>542
その本はRails1.1系でしょ。
なぜ1.2系を使う。
ちょっと調べれば1.2系でそれまでのEnginesが使えなくなったのわかるでしょ。
0544nobodyさん2007/06/01(金) 17:00:21ID:???
>>542
俺もちょうどその本で勉強中だw

ここを参考にしたら動くようになったよ
http://rubyist.g.hatena.ne.jp/pulscope/?word=%2a%5bRails%5d
0545nobodyさん2007/06/01(金) 18:51:56ID:???
>543
いきなりRoRでやれと言われてるんで、事情方面のツッコミはカンベン願いたい。
Rails自体まだまだ発展途上なので、よさげな本もすぐ内容が古くなるみたいだし、
その中からとっつき易そうな本を指示された訳。

>544
トン
Engines入れ替えて再トライするっす
0546nobodyさん2007/06/01(金) 20:07:21ID:???
> いきなりRoRでやれと言われてるんで、事情方面のツッコミはカンベン願いたい。
> Rails自体まだまだ発展途上なので、よさげな本もすぐ内容が古くなるみたいだし、
> その中からとっつき易そうな本を指示された訳。

これが1.2を使う理由とは思えない。

1.1と1.2の違いがわからないんなら、
素直に本の通り1.1をつかっとけっつーの。
1.2ですがまた動きませんとかいうのがオチ。
0547nobodyさん2007/06/01(金) 20:47:07ID:???
その、かんたんRuby on Railsって本は初心者に分りやすいの?
Ruby on Rails入門読んでみたが、リファレンス的な内容で
具体的にどうやって実際に役に立つもの作るのか今ひとつイメージ
できなかったので、Agail Web Development with Railsの第2版を
英語で頑張って読むか、どうやってもう少し馴れたらいいのか
迷って暫くRailsが離れてたんだけど。
0548nobodyさん2007/06/01(金) 20:47:25ID:???
かといって、
「Rails1.1のインストール方法教えてください」
とか書かれても、それはそれでケンケンしてそうだな。

まったりいこうよ。
0549nobodyさん2007/06/01(金) 20:49:58ID:???
>>547

英語版第2版のPDF版買って読んでるけど、なかなか良いよこれ。

読むってか、コードのとこ見てるだけでもいいかんじ。
0550nobodyさん2007/06/01(金) 22:52:46ID:???
> いきなりRoRでやれと言われてるんで、事情方面のツッコミはカンベン願いたい。

どーせ納期過ぎても完成できないだろうから、会社辞めちゃえばいいじゃん。
0551nobodyさん2007/06/02(土) 00:36:55ID:???
>>547
「Ruby on Rails入門」とクックブックとレシピ以外は
ストーリーに沿った内容だから英語でがんばる前に
一冊くらい選んで読んでみてもいいのでは
0552nobodyさん2007/06/02(土) 07:18:14ID:???
Capistrano使いたいんだけど、日本語で詳しく書いてあるサイトなり書籍なりってないかな?
0553nobodyさん2007/06/02(土) 08:01:57ID:???
WEB+DB プレスの vol.37 に記事があったような?
他には知らない。
0554nobodyさん2007/06/02(土) 10:27:07ID:???
http://tech.feedforce.jp/capistrano.html
とか。社内勉強会の資料公開のようだが。
0555nobodyさん2007/06/02(土) 15:13:38ID:???
>>549
>>551
ありがとう、とりあえず時間はたっぷりあるので、
両方やってみるかも
0556nobodyさん2007/06/02(土) 22:41:04ID:???
>>552
「ライド・オン・Rails」に少しのってるよ
立ち読みできるなら、眺めてみるといいかも
0557nobodyさん2007/06/03(日) 07:22:20ID:???
うぉっ!
ride on持ってるのに、気がつかなかった...
でも、レシピの書き方とか、イマイチ詳しくないよねぇ...
0558nobodyさん2007/06/04(月) 12:14:23ID:yWNAd0Hu
engine/login_engineをインストールして
ここのサイト(http://rubyist.g.hatena.ne.jp/pulscope/20070327)
のように設定したのだが、以下のように generate plugin_migrationでエラーが出る。
何が悪いのでしょうか。

# script/generate plugin_migration
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': ./script/../config/../config/environment.rb:14: unknown regexp options - lcal (SyntaxError)
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from /usr/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/commands/generate.rb:1
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from script/generate:3

なお、このエラーは、environment.rbの中の次の記述で出ている模様だが、

require File.join(/usr/local/rails/thisappli,"vendor","plugins","engines","lib","engines","deprecated_config_support")

この/usr/local/rails/thisappliが、このアプリのトップディレクトリ。
0559nobodyさん2007/06/04(月) 12:38:24ID:???
/usr/local/rails/thisappli
がクォートされてないからRegexpと評価されてエラーが出てるんじゃないの
0560nobodyさん2007/06/04(月) 12:45:15ID:yWNAd0Hu
>>552
確かに。ありがとうございました。
しかし一つ前にやった別のアプリではクオートせずに同じことやって成功してる。
よくわかんないけど とりあえず今回は解決しました。
0561nobodyさん2007/06/04(月) 12:50:14ID:yWNAd0Hu
559の間違い
0562nobodyさん2007/06/04(月) 12:52:36ID:???
前の時は/tmp/iとかのvalidな正規表現だったからとか?
0563nobodyさん2007/06/06(水) 00:14:22ID:???
俺が楽しければそれでいい
0564nobodyさん2007/06/07(木) 13:35:22ID:???
Rails1.1向けに書かれた本のプログラムを実行するには、
Railsのバージョン落として Rubyのバージョンも古いソースコンパイルし直さないと
いけないのかな?
0565nobodyさん2007/06/07(木) 13:37:56ID:???
あっ、optディレクトリとかに古い方入れればいいのか、
どのバージョンのRailsがどのバージョンのRubyに対応してるか
だけ調べるか
0566nobodyさん2007/06/07(木) 20:36:48ID:???
着実に、zopeと同じ道を辿ってるな…
0567nobodyさん2007/06/08(金) 11:34:09ID:???
怖いなぁ
0568nobodyさん2007/06/08(金) 15:23:53ID:pyQvltMP
ActionMailerで,
recipientsやfromに続いてreply-toってヘッダーを入れたいのだけどどうすればいいんでしょ?
0569nobodyさん2007/06/08(金) 16:52:19ID:???
>568
reply_to/reply_to_addrsっちゅーメソッドがあるやん。
使いかたはfrom/from_addrsと同じ。
0570nobodyさん2007/06/08(金) 17:04:39ID:pyQvltMP
fromと同じように

class myMailer < ActionMailer
    def mail
      recipients  "xxx"
      subject   "xxx"
      from  "xxxx@xxx"
      reply_to "xxxx@xxxx"
      body "xxxx"
    end
end

のように書けばいい? 
reply_to入れたらエラーになるんすが。
0571nobodyさん2007/06/08(金) 17:36:29ID:???
>>569
そんなメソッドあったっけ?
ttp://api.rubyonrails.org/classes/ActionMailer/Base.html
を見る限りなさそうなんだが。

headers 'Reply-To' => 'xxxx@xxxx'

はどうだ?
0572nobodyさん2007/06/08(金) 18:31:50ID:pyQvltMP
>>57

解決。サンクス
0573nobodyさん2007/06/08(金) 18:42:29ID:???
RoRを使っているfeedbringerについて
0574nobodyさん2007/06/08(金) 20:02:18ID:KbDZEEwd
date_select でデフォルト値を使う方法ってありますか?
date_select のオプションで,:default => 3.days.from_now
みたいなことをやりたいのだが。。
0575nobodyさん2007/06/08(金) 21:33:43ID:5H3Shl3s
すでにあるテーブルをメンテする場合どうすればいいんですか?
0576nobodyさん2007/06/08(金) 22:53:24ID:???
>>574
フツーにモデルのフィールドに日付をいれておけば表示されるんじゃない?

>>575
リレーションにSQLのスニペットを指定して定義することはまぁ可能。
けどあきらめた方が多分いいね。思わぬところでハマることがあるから。
0577nobodyさん2007/06/08(金) 23:57:16ID:???
まぁ set_primary_key とか、foreign_key => の明示的な指定とかで
できる範囲を超えたらあきらめたほうがいいな。

05785742007/06/09(土) 01:00:59ID:K9Grt71j
>>576

DBにレコードを初めてINSERTするときのデフォルト値を表示させたいんですよ。
だからモデル側はまだ何も無い状態。

0579nobodyさん2007/06/10(日) 00:16:39ID:???
>>578
なにもないなら自分で埋めよう。

def new
@hoge = Hoge.new
@hoge.date = 3.days.from_now
end

<% = date_select :hoge, :date %>

モデルかデータベースでデフォルト値を定義してもいいけどね。
0580nobodyさん2007/06/11(月) 21:13:10ID:???
Rubyに移行しようと思っているんだすが、
mod_perlのような、起動オーバーヘッド軽減できるような仕組みはありますか?
0581nobodyさん2007/06/11(月) 21:21:11ID:???
あるんじゃね?
0582nobodyさん2007/06/11(月) 22:43:09ID:???
>>580
FastCGI
0583nobodyさん2007/06/11(月) 23:49:40ID:???
Rubyは本当によく出来た言語だと思う。
ただ、遅い・・・これが致命的につらい。
気長にマッタリ勉強していける性格ならRubyをお勧めするよ。
ま、ついでにApacheとかもがんばって勉強してもいいけど・・・
毒を食らわば皿までだ。
0584nobodyさん2007/06/12(火) 00:13:08ID:???
>>583
どんな環境で実行してて遅いと感じる?
05855832007/06/12(火) 00:15:17ID:???
誤爆スマン
0586nobodyさん2007/06/12(火) 07:08:24ID:gjdXbgZv
583じゃないけど、作者本人が遅いと認めてるところはやっぱり遅いと感じる
0587nobodyさん2007/06/12(火) 07:09:57ID:gjdXbgZv
あ、作者ってRubyの作者(まつもと)のほうね
0588nobodyさん2007/06/12(火) 11:46:34ID:???
よくある注文系フォームをRubyで作ってるんだすが、
画面遷移がどうも重い。同じ条件下のPerl製より速度が出ない。
皆さんどのへんチューニングしてます?
0589nobodyさん2007/06/12(火) 11:54:09ID:???
全体的に遅いのは俺だってそう思うが、
その作者が遅いと認めてる部分や
その注文系フォームをどういう環境で動かしていて遅いのか
もう少し具体的に書いてくれ、でないと
ああそこはやっぱりどうしようもないね、なのか
こうやったら速くなるんじゃね、とか言い様が無いからさ
0590nobodyさん2007/06/12(火) 12:31:57ID:???
プロセス自体が起動する早さ?はperl,ruby,pythonでかなり違いあるの?
0591nobodyさん2007/06/12(火) 19:15:37ID:???
テストでsessionを使えないんですけど、
sessionを使うために何か準備することとかあるんでしょうか?

session[:user]の有無でログイン状態をチェックしているのですが、
ログイン処理とは関係のないコントローラ(ただしログインしていることが前提)
でテストをしたいので、とりあえず
session[:user] = @hoge
と適当なユーザオブジェクトを放り込んでやろうとしたら
Symbol as array index
というエラーが出てしまいます。
ログインを管理するコントローラの方では普通にsessionにアクセスできるのですが、
sessionの初期化かなんかの方法があるんでしょうか?
教えてくださいませ
0592nobodyさん2007/06/12(火) 22:08:13ID:???
直接 @request.session[:user] = @hoge しないとだめだったよーな。
05935912007/06/12(火) 22:08:43ID:???
自己レスです
@request.session[:user]
でした
05945912007/06/12(火) 22:12:05ID:???
>>592
あ、ありがとうございます
なんか当たり前のトピックのような割には書いてあるサイトとか意外と少ないですね。
0595nobodyさん2007/06/12(火) 23:44:39ID:???
rails とかふつーに重いだろw
0596nobodyさん2007/06/13(水) 12:53:50ID:???
RailsはFastCGI必須と言える位重いな
0597nobodyさん2007/06/13(水) 16:59:51ID:???
FastCGIとかややこしそうだね・・・
レンサバじゃインスツールしてくれないとか。
0598nobodyさん2007/06/13(水) 17:45:28ID:???
海外のレンタルサーバの値段てちょっと信じられないほど安いんだよな
FastCGIも使えるし
なんで国内とこんなにも価格差があるんだろ
0599nobodyさん2007/06/13(水) 19:07:27ID:???
土地が狭いからと予想
0600nobodyさん2007/06/13(水) 19:27:32ID:???
ミミ彡  ゚̄ ̄' 〈 ゚̄ ̄ .|ミミ彡
0601nobodyさん2007/06/13(水) 21:48:20ID:????2BP(0)
Mongrelという選択肢はないのか?
かなり早いぞ
0602nobodyさん2007/06/13(水) 22:02:39ID:???
Tomcatが脳裏によぎった
ような気がするかもしれん
0603nobodyさん2007/06/13(水) 23:22:35ID:???
<a href="hoge#foo">bar</a>
みたいにページ内にリンクを張りたい場合は、
link_to ではなく
<a href="<%= urf_for :action => "hoge" %>#foo">bar</a>
のようにする以外ないんでしょうか?
0604nobodyさん2007/06/13(水) 23:39:36ID:???
url_forにanchorのオプションがあるから
<%= link_to "bar", :anchor => "foo" %>
でいけるんじゃないか試してないが
06056032007/06/14(木) 00:02:26ID:???
>>604
ありがとうございます。
無事に :anchor => "foo" でいけました。
助かりました。

ところで、
オンラインのドキュメントなどでは、ヘルパーメソッドに渡すオプションの項が options などと書かれていて
実際にどのようなオプションがあるのか、分からない事が多いです。
「options がどのようなオプションを受け付けるか」を知るにはソースを読む以外ないのでしょうか。
このようなリファレンス的な文書が見当たらず困っています。
0606nobodyさん2007/06/14(木) 00:31:30ID:???
たいてい説明中に箇条書きで有効なオプションのことは書いてあると思うけど。

link_toのanchorの場合は、url_forに渡るということが本文中に書いてあるので
url_forを見ることになる。
06076032007/06/14(木) 00:42:03ID:???
>>606
ありがとうございます。
ActionController::Base#url_for に、各 options について書いてありました。
お恥ずかしい限りです。
もう少しちゃんとドキュメント読んでみます。
■ このスレッドは過去ログ倉庫に格納されています