【Ruby】Ruby on Rails Part3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/02/06(火) 20:10:09ID:nOZh/PU9Ruby 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/
0667nobodyさん
2007/07/03(火) 02:38:13ID:???Rails以前の基礎的なとこから理解してないようだし
ここにすべてを印すには余白が足りない
0668664
2007/07/03(火) 02:39:45ID:???解説アリが�d
「Webアプリケーションフレームワークと言ってるけどRailsの実体とは何ぞや?」という概念で見たら、
Railsのプロジェクト(=Rubyで作成したWebサーバアプリの基幹?)と介錯して良いんでしょうか?
プロジェクト自体はURLを解読してコントロールやアクションを呼び出すようなWebサーバの
制御部分を担ってて、Webアプリとしての中身はプロジェクトの開発環境を使ってユーザが
作る・・・みたいなイメージでOK?
(プロジェクトのディレクトリ構成も、Webアプリの仕様みたいな)
ActiveRecordのようなライブラリもRubyにパッケージとしてインスコされているもので、
人間からみたらRailsという概念もマシンからみたらRubyのプログラムに過ぎないと
考えて良いでしょうか?
0669nobodyさん
2007/07/03(火) 03:14:34ID:???ok
「ruby script\server」で、Railsのプロジェクトを起動させるんだけど、severファイルからrequireが始まるでっかいRubyのプログラムが起動するだけだよ。
で、前の質問からちょっと、CGIの仕組みでRailsが動いている、と勘違いしているんじゃないかなと思った。違ってたらすまん。
「ruby script\server」でRailsを起動させた場合、Webサーバーを含んだRubyスクリプトが起動するんだ
なので、Railsを処理の面から見た場合
HTTPリクエストを受ける→URLを解釈する→アクションを実行する→HTMLなりを返す
までを含んだ、WebサーバーなRubyスクリプトだと見ることが出来るかな。
Webサーバーの役割をなくすこともできるけど、まあいいや。
0670nobodyさん
2007/07/03(火) 12:25:08ID:???>CGIの仕組みでRailsが動いている、と勘違いしているんじゃないかなと思った
横槍スマソ、apacheがWebサーバの場合はCGIで動く事もあるんじゃないの?
(CGIじゃ遅すぎるから、FastCGIとかmod_rubyとか使うだろうけど・・・・・)
「ruby script\server」の場合は(大抵の環境では)WebrickがWebサーバとして起動して
「DispatchServlet.dispach」を呼び出すし、
apacheをWebサーバとして使用する場合はVirtualHostとして動かしたいRailsのプロジェクトの
publicをDocumentorootとして設定する事で
apacheのCGIからアクセス → [Railsプロジェクトの]public/dispatch.{cgi,fcgi,rb} を実行
の流れで最終的に「require "dispatcher" Dispatcher.dispatch」が呼び出されて、URL解析が
始まるんジャマイカ?
Webサーバーのアプローチが異なるだけで、
>HTTPリクエストを受ける→URLを解釈する→アクションを実行する→HTMLなりを返す
>までを含んだ、WebサーバーなRubyスクリプトだと見ることが出来るかな。
って所には同意だけど。
0672nobodyさん
2007/07/03(火) 15:08:21ID:???「検索だよ〜んぴろぴろぴろ〜ん」にしてみよっと。
0673659
2007/07/03(火) 20:32:16ID:???検証してないですが、そうやって直書きなら問題なくいけますよね
折角フォームヘルパがあるので>>662のやり方でやらせてもらいましたが。
>>672
をいw
0674nobodyさん
2007/07/03(火) 23:17:39ID:???0675nobodyさん
2007/07/03(火) 23:54:55ID:???Rails 1.2.3でEngines及びLogin Engineプラグインを利用する
http://rubyist.g.hatena.ne.jp/pulscope/20070327/p1
0677nobodyさん
2007/07/05(木) 18:10:44ID:???ファイル内に問題のフォームだけ書いてもエラー。
別のrhtmlファイルに記述して問題なく動作しているフォームをコピペしてもダメ。
とりあえずデバッグを進めたいからHTMLタグをベタ打ちにしたけど、いったい何なんだろう?
0678nobodyさん
2007/07/05(木) 18:22:07ID:???0679nobodyさん
2007/07/05(木) 20:19:37ID:???画像を表示するactionを作ろうとしています。
DBにデータがある場合は、send_data で、ない場合は、デフォルト画像を
send_file で送出するのですが、どちらのアクセスの場合もページキャッシュ
を生成します。
ところが、send_file の場合に、キャッシュが正しく生成されないのです。
キャッシュされて出来たファイルは、画像ファイルではなくテキストファイル
になっていて、中身は以下のものが1行ですものです。
#<Proc:0x00002aaaac5de6f8@./script/../config/../vendor/rails/actionpack/lib/act
ion_controller/streaming.rb:68>
何が原因で、どのように解決したらよいでしょうか?
0680nobodyさん
2007/07/05(木) 20:23:52ID:???0681nobodyさん
2007/07/05(木) 21:34:01ID:???render :status => options[:status], :text => Proc.new { |response, output| ... }
でProcを渡してるんだな。これをcallするわけか。
ところで、ページキャッシュ(caches_page)は
after_filterで controller.cache_pageを呼んで、
response.bodyをそのままwriteしてるようです。
深く追ってませんがcallせずに文字列化されちゃったのは
このへんの絡みでしょうねぇ。
0682nobodyさん
2007/07/05(木) 21:36:41ID:???まんまwriteしちゃうとproc.to_sされちゃうとかなんとか?
0683679
2007/07/05(木) 22:47:12ID:???どうやら proc.to_s が原因の、Railsのバグのようですね。
今回は、
picture_field = File.read パス名
send_data(picture_field, ...
で行こうと思います。
0684カカロフ
2007/07/06(金) 09:57:47ID:BTq+K64yhttp://kakalov.cocolog-nifty.com/daidou/2007/01/education_0aa5.html
0685nobodyさん
2007/07/07(土) 00:57:03ID:???rhtmlの頭に空行がいたら駄目なんて知らなかったよ!
0686nobodyさん
2007/07/08(日) 19:42:05ID:HpgAFttnActiveRecordの主キーid intって最大値まで使っちゃうとどうなるの?
0687nobodyさん
2007/07/09(月) 00:14:04ID:???0688nobodyさん
2007/07/09(月) 00:15:30ID:???というのは置いておいて、まずDBの方の制限にひっかかるんじゃないかな。つまり、DBごとに違う
0689nobodyさん
2007/07/09(月) 00:15:35ID:???0690nobodyさん
2007/07/09(月) 18:20:31ID:???・特定キーでマッチング → :conditions =>[ 'キー = ?', 条件 ]
・個数制限 → :limit => limit
は分かったけど、「末尾のレコードから検索」はどうすればいい?
(同時に上記の条件も満たすものとする)
0691nobodyさん
2007/07/09(月) 19:02:41ID:???railsというよりDBの話だな
0692nobodyさん
2007/07/09(月) 19:45:31ID:???http://www.openspc2.org/reibun/Google/Maps/API/ver2/Geocoding/001/sample/index.html
このソースをダウンロードして拡張子をただrhtmlにしただけでも動かないんだけど
0693nobodyさん
2007/07/09(月) 20:33:45ID:ypOM/m4jはい。どうもです。
で例えば、MySQLのbigintだと最大値は9223372036854770000の用ですが、
idをココまで使っちゃうとどうなっちゃうのかなぁ?と。
ま、気の遠くなる様な大きさですが。
0694693
2007/07/09(月) 21:08:13ID:???こんなの見つけた。
ttp://blog.livedoor.jp/nipotan/archives/10116601.html
漢は黙ってbigint。私みたいな厨房は黙ってRails使えって事か。
ActiveRecordのソース眺めても何にも気にしてない気がする(←自信なし)
0695nobodyさん
2007/07/09(月) 21:21:33ID:???気にしなくていいと思う。
0697sage
2007/07/09(月) 22:45:52ID:pNke+qhjRailsから指定のメソッドが呼び出されるようにする機構はありますか?
0698nobodyさん
2007/07/09(月) 22:54:13ID:???試してみればいいんじゃないか?
insert into items (id ) values(9223372036854770001);
とか、SQL打って。Postgresqlだと、
ERROR: integer out of range
ってエラーが出たよ
>>692
JavaScriptだけで動いてるから、Rails関係ない。エラーコンソールでも見れ
0699nobodyさん
2007/07/09(月) 23:26:27ID:???<%= stylesheet_link_tag 'default' %>
が、
<link href="/stylesheets/default.css?(数字たくさん)" media="screen" rel="Stylesheet" type="text/css" />
という出力になります。
css?のあとの数字たくさんは何なのでしょうか。
development環境だけかと言えばそんなことはないし…。
しばらく前から気になって夜も寝られます。
0700nobodyさん
2007/07/09(月) 23:40:41ID:???0702nobodyさん
2007/07/10(火) 00:31:25ID:???0703nobodyさん
2007/07/10(火) 00:32:10ID:???0705692
2007/07/10(火) 12:26:12ID:???GeocoderはGoogleMapsAPIの認証キーを厳密にチェックしてて、
Railsをローカルで動かすと登録したURLと一致しないということではじかれてた
地図は適当なキーでちゃんと表示されてたのでそこまで気にしてなかったなあ
EcripsベースってRadRailsとどう変わるんだろ?
最近、仕事で色々エディタ使ってるけど、楽しいものがないんだ。
書いてて楽しいと思えるものは、みなさんだと何でしょ?
私はWinだとEmEditer
LinuxだとEmacsです
0707nobodyさん
2007/07/12(木) 17:31:15ID:???0708nobodyさん
2007/07/12(木) 18:07:55ID:???0709nobodyさん
2007/07/12(木) 18:20:16ID:???0710nobodyさん
2007/07/12(木) 18:37:57ID:???使ったことある人いますか?
$ ./script/generate magic_model
undefined method `table_name' for Transaction:Module
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
....(省略)
$ rails -v
Rails 1.2.3
0711nobodyさん
2007/07/12(木) 22:21:24ID:???0712nobodyさん
2007/07/12(木) 23:19:25ID:???komodo ideほしいけど金無し
0713nobodyさん
2007/07/15(日) 01:05:03ID:gojNHc9AsessionはHashじゃなくてArrayだって言われてしまう。
Functional Testではどうすればsession上の変数を扱えるの?
0714nobodyさん
2007/07/15(日) 01:10:41ID:???rssを付ける段になってコントローラに
layout nil, :only => :rss
と書いたところ、同じコントローラの別アクションもレイアウトがかからなくなってしまいました。
逆に
layout "application", :except => :rss
と書けば大丈夫なのですが、この辺の仕組みが分かる方おいでます?
0715nobodyさん
2007/07/15(日) 01:28:18ID:???この画面の段階ではいらないけど、
このときには必須になるみたいなケースな場合どうするの?
0716nobodyさん
2007/07/15(日) 12:14:32ID:???一度何かリクエスト/レスポンスのやりとりをしないとセッションが出来ないかも。
>>714
コントローラの属性テーブルに "layout" => 名前 というペアを挿入する形なので、
名前がnilだと親コントローラに探しに行ってしまうんじゃないかしらん。
>>715
validates_xxx :on => :update とかでは対応できないのなら、
自分で validate メソッドを書く。
「xxxがnilでないときのみyyyもnilでないこと」みたいなのも確認しほうだい。
0717nobodyさん
2007/07/15(日) 12:18:19ID:???0720nobodyさん
2007/07/19(木) 01:37:07ID:???Rubyって何に使えるのと聴くと「Railsが凄い」と言う…
0721nobodyさん
2007/07/19(木) 15:05:24ID:???0722nobodyさん
2007/07/19(木) 18:50:40ID:???ありますか?
0723nobodyさん
2007/07/19(木) 18:51:55ID:???ですね。はずかしすぐる・・・
0724nobodyさん
2007/07/19(木) 21:58:27ID:oZlZzBRyhttp://delwiki.info/?Senro
> Delphi と Ruby on Rails と SQLite の組み合わせで簡単に
> ローカルデータベースアプリケーションを作るプロジェクトです。
DelphiとRailsの夢のコラボ
0725nobodyさん
2007/07/19(木) 22:06:44ID:???0726nobodyさん
2007/07/20(金) 01:44:41ID:???0727nobodyさん
2007/07/20(金) 02:22:36ID:???0728nobodyさん
2007/07/20(金) 02:28:01ID:???0729nobodyさん
2007/07/20(金) 06:10:33ID:???0730nobodyさん
2007/07/20(金) 09:37:02ID:???0731nobodyさん
2007/07/20(金) 09:58:34ID:???0732nobodyさん
2007/07/20(金) 11:18:05ID:???0735mod_fastcgi
2007/07/20(金) 19:54:32ID:DvId2R7o対策方法ってあるのでしょうか?
環境は
ruby 1.8.6
apache 1.3
windowsXP
です。。。
InstantRailsでインストールしました。
OSを変えるべきなんでしょうか?
0736nobodyさん
2007/07/20(金) 20:18:53ID:???(fastじゃない)cgiでrailsはどうやっても重過ぎて使えないよ無理
0737nobodyさん
2007/07/20(金) 22:11:09ID:???まぁRailsのアプリだけならね。
lighttpdも合わせて使うと良いと思われ
0738nobodyさん
2007/07/20(金) 22:15:19ID:???0739nobodyさん
2007/07/20(金) 23:16:36ID:???実質(apache+)lighttpd + fastcgiか
apache + mongrelってことなんだろうけど、
この環境が無料あるいはワンコインレベルの共有サーバで
使えるようになる日はくるのかね
xreaとかでもfastcgiはリソース使用量が高いっていう理由で
サポートされてないんだけど、それは多分fastcgiが
プロセスを死なせず常駐させるような仕組みだからだと思うんだけど
それが速い理由だからfastcgiは無理っぽいし
mongrelだとmongrel自身がhttpdだから
それぞれのユーザがデーモンを常駐させる必要があるし、
結局そういう流れでrailsに特化して最適化したサーバが
必要で国内にもいくつかあるみたいだけど
やっぱりワンコインみたいな気軽に借りれそうなところは無い
ほんと後はこの壁だけだと思うんだよ
PHPのような普及に至るためには
railsももちろんそうだけど、
webでrubyを気軽に使える世界になって欲しいんだよな
無料サーバでもすぐに使えますみたいな
rubyって楽に素直に書けるから
長文になってしまった失礼
0740nobodyさん
2007/07/20(金) 23:29:17ID:???認識できるレンタルサーバ業者がどれだけ出てくるかという事だろね。
ロリポもはやくRails対応してー。
0741nobodyさん
2007/07/21(土) 07:25:24ID:???0742nobodyさん
2007/07/21(土) 07:28:09ID:???俺がレンタル鯖屋さんだったら、1ユーザ・1デーモンのサービス開始しようとは思わないなぁ。
むちゃくちゃリスキーな訳だし
0743nobodyさん
2007/07/21(土) 10:04:41ID:???0744nobodyさん
2007/07/21(土) 15:20:18ID:???1個で良いの?www
0745nobodyさん
2007/07/21(土) 20:04:31ID:UNPvyq3tを参考に、 connections\native_mysql\connection.rb を修正、
$ ruby -I "connections/native_mysql" base_test.rb
を行ったのですが、以下の部分(base.rb:1031)でのエラーが多数でます。
ActiveRecord::RecordNotFound: Couldn't find Topic with ID=1
./../lib/active_record/base.rb:1031:in `find_one'
./../lib/active_record/base.rb:1014:in `find_from_ids'
./../lib/active_record/base.rb:419:in `find'
base.rb の def find_one(id, options) の部分を見てみたのですが、いまいちよく分かりません。どう訂正すればいいのでしょうか。
環境は、win xp, xampp 1.6.2 で、One-Click Ruby Installer 1.8.6-25 ( 1.8.5-24 でも同じエラー ), Rails 1.2.3 です。
0746nobodyさん
2007/07/21(土) 20:22:34ID:???0747745
2007/07/21(土) 21:05:02ID:UNPvyq3tありがとうございます。http://jp.rubyist.net/magazine/?0004-RubyOnRailsで、
$ mysql -u root activerecord_unittest < test/fixtures/db_definitions/mysql.sql
$ mysql -u root activerecord_unittest2 < test/fixtures/db_definitions/mysql2.sql
の部分ですよね?やりました。
あと、activerecord_unittest.topics.author_name で
\ r '
\n "
という項があるのですが、エラーと関係ありますかね?
0748nobodyさん
2007/07/21(土) 22:43:56ID:???失敗した時のだから単純にfixturesが入ってないとか
テーブルができてないとかだと思ったんだけど、、、
テスト結果がほぼ全コケなら
そういう感じの単純な理由だと思うけど
中途半端だとなんとも
railsのテスト周りはwindows環境でもちゃんとチェックされてんのかなあ
0749745
2007/07/21(土) 23:04:27ID:UNPvyq3tレスありがとうございます。
# base_test.rb テスト結果
手許のxp、二台で試してみたのですが、同じ結果でした。
> 137 tests, 318 assertions, 9 failures, 39 errors
errorについては、すべて base.rb `find_one'がらみです。
とりあえずrailsのバージョン変えて試してみます。
0750nobodyさん
2007/07/21(土) 23:11:28ID:???0751nobodyさん
2007/07/22(日) 11:58:13ID:???testrbで通ってrakeで通らないとか、その辺は大抵それが原因な気がする
find_by_sqlで"SELET * FROM table_name WHERE id = 1"してやっぱりヒットしないようなら
RailsとかARの問題じゃなく、アプリかテストの問題だよ。
(find(id)でAR::RecordNotFoundが挙がるのは仕様)
0752nobodyさん
2007/07/23(月) 03:39:14ID:???RESTっぽいコントローラーのテストをしたいんだけど、
query string の内容を直接指定してgetとかpostとかを発行する
のってどうすればいいの?
つまり、いわゆるparam=value形式じゃなくて、request.raw_postで
取れる値を直接流し込みたいんだけど
0753nobodyさん
2007/07/23(月) 11:22:15ID:???@request.env['RAW_POST_DATA'] = 'foo'
0755nobodyさん
2007/07/23(月) 17:33:20ID:Y5zBlasDA テーブルに B テーブルを JOIN した場合
どのように受け渡して表示すればうまくいくでしょうか?
0756nobodyさん
2007/07/23(月) 19:43:24ID:???:select で表示したいcolumn指定すれば取れると思うが
0757755
2007/07/24(火) 11:56:14ID:BEyPYoNf普通にJOINしたカラムをモデル.カラム で取得できました。
ありがとうございました。
RailsでPDFで帳票出力したいんですが、皆さんは
帳票ライブラリはナニを使ってますか?
0758nobodyさん
2007/07/24(火) 14:46:34ID:???アジャイルRailsの本読みやすい英語だね。
0759nobodyさん
2007/07/26(木) 01:17:08ID:???をキャッシュする方法はありますか?
普通にやったら引数は保存されませんでした。
0760745
2007/07/26(木) 12:12:41ID:DIyctI7vありがとうございます。もうちょっと色々と勉強してみます。
0761nobodyさん
2007/07/26(木) 21:20:21ID:???ページキャッシュかな?
ページキャッシュはrailsアプリを通らず、完全にHTTPサーバレベルで
処理されるので、Rails側では何もできないと思う。
apacheのmod_rewriteで工夫できそうな気もするけど。
0763nobodyさん
2007/07/27(金) 11:22:56ID:???0764nobodyさん
2007/07/27(金) 13:17:36ID:???Aptana IDEを使ってみようと思ってインストしたんだが、
これってDB指定でgenerate出来ないのかな?
デフォではMySqlになっているんだが、俺はSQLite3でやりたいんだが……
まぁ自分でコマンドうってから、プロジェクトをインポートすればいいんだが、
それだとIDEの意味ないだろ、と。
誰かこの辺りについての情報お持ちの方いたら教えてください。
■ このスレッドは過去ログ倉庫に格納されています