トップページ⇒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/
0175nobodyさん2007/04/07(土) 12:01:43ID:???
>>174
最近emacs使ってないし入れてもいないんだけど、
こんな感じで対応できたりする?

--- rails-log.el (リビジョン 169)
+++ rails-log.el (作業コピー)
@@ -27,6 +27,7 @@
;;; Code:

(defvar rails-log:last-log nil)
+(defvar rails-log:lines-to-follow 10 "*Number of lines to follow by tail")

(defun rails-log:files ()
(directory-files (rails-core:file "log") nil "¥¥.log$"))
@@ -48,6 +49,7 @@
(start-process "tail"
buffer
"tail"
+ "-n" (number-to-string (or rails-log:lines-to-follow 10))
"-f" (rails-core:file (concat "log/" log-file)))))

(defun rails-log:open (log-file)
0176nobodyさん2007/04/08(日) 08:20:16ID:???
RailsというかARなんだけど、あるsaveだけ例外的に
updated_atが自動更新されるのを防ぎたいんだけど
どうやったら良いですか?
0177nobodyさん2007/04/08(日) 09:27:07ID:???
>>176
方法1: クラス単位ながら record_timestamps = true/falseで制御できるので
save の度にこれを切り替える。

方法2: updateが、updated_without_tmestampsだけを呼ぶように、
特異メソッド定義をする。(cf. AR/lib/active_record/timestamp.rb)

あたりでどうか。
0178nobodyさん2007/04/08(日) 09:27:51ID:???
typo.

updated_without_timestamps→
update_without_timestamps
0179nobodyさん2007/04/08(日) 10:46:47ID:???
>>176-177

おぉ激しくサンクス。
方法1であっさりできました。
ググってもなかなか見つからなかったので..
0180nobodyさん2007/04/09(月) 11:12:11ID:znqt2L3W
すみません、
date_select で年の範囲を指定(増やす)したいのですが、
いい方法はありませんか?何個かあるので個別にでなくまとめて
できればいいんですが・・・。
さっきから検索してますが、なかなかみつかりません。
おねがいします!
0181nobodyさん2007/04/09(月) 11:35:30ID:???
ApplicationHelperにでもヘルパメソッドつくって
そんなかでdate_selectを定義して呼びだせばいいんじゃまいか?
0182nobodyさん2007/04/09(月) 11:37:09ID:???
>>181
>date_selectを定義して
date_selectを呼ぶように定義して
0183nobodyさん2007/04/09(月) 11:48:01ID:???
ありがとうございます。
初心者なのでなかなかわからないことばかりなのですが、
ヒントをいただいたのでもうちょっとがんばってみたいと思います。
01841722007/04/09(月) 18:42:20ID:???
>>175
遅レスですみませんが、今試したところ、うまく行きました!
setvar rails-log:lines-to-follow 100 で100行の表示になります!
本当に便利になりました。ありがとうございます!
0185nobodyさん2007/04/09(月) 23:29:39ID:???
すみませんが、質問です。

2つのテーブルがあります。それぞれa, b とします。どちらのテーブルも定義
は同じで、
id, user_id1, user_id2
となっています。

テーブルaのレコードのうち、user_id1 と user_id2 の組み合わせが、テーブ
ルbに含まれないものを取り出したいのですが、どのように指定したらよいでしょ
うか?SQLを書く以外に方法を思いつかなくて、困っています。教えていただけ
ないでしょうか?

なお、他にuserテーブルもあって、
id, name
という定義になっています。このidが、aとbのuser_id1, user_id2に収められ
ています。
0186nobodyさん2007/04/09(月) 23:40:40ID:???
whereで普通に絞り込めると思うけど、
同じスキーマのテーブルが2つあるって。。
テーブル設計やり直した方がいいとおも
01871852007/04/10(火) 00:06:52ID:???
残念ながら、私には絞り込めませんでした。
両方に含まれるものを取るなら簡単ですが、
aには含まれ、bには含まれないというものを指定する方法が分からないのです。
01881852007/04/10(火) 00:14:04ID:???
補足ですが、a, b は実際には同じ定義ではありません。質問の簡単のために省
略しましたが、それぞれ他のカラムも持っています。

これらのテーブルは実際のところ、user_id1, user_id2 の二つを主キーとする
複合キーに近いのです。aはトランザクションテーブルであり、bは2ユーザの禁
止された組み合わせを保持するマスタだとお考えください。

もっと良いテーブル定義があるなら、それもお教えいただければ大変助かりま
す。
0189nobodyさん2007/04/10(火) 07:41:42ID:???
そうだな。
まず会社名から聞こうか。
01901852007/04/10(火) 12:49:41ID:???
全く回答がいただけません。難しいのか、それとも質問が問題外なのか。

とりあえずはSQLで対処することにします。Railsアジャイル本のP221にも、必
要ならSQLを使おうと書いてありますし。

ActiveRecordは、自動採番の1カラムID以外をサポートしておらず、従来のデー
タモデリングの手法がそのままでは使えませんが、ノウハウを身につければそ
んなにSQLを書く必要はない、とどこかで聞いたような記憶があります。

ですから、>>185そのままのテーブル定義でもActiveRecordで所望の結果を得ら
れる、またはテーブル定義を改変すれば得られる、のではないかと予想して質
問したのですが、どうも質問の仕方が悪かったようです。

今さらですが、質問を追加すると、ActiveRecordでどうしてもSQLを使わなけれ
ばならない場合もあると思いますが、それを見分ける方法はないものでしょう
か?
0191nobodyさん2007/04/10(火) 21:00:00ID:???
>>190
> 全く回答がいただけません。難しいのか、それとも質問が問題外なのか。
問題外だから。

> どうも質問の仕方が悪かったようです。
だったら書き直してこいよ。あんな情報量の少ない質問に答えられるハズがない。

> 今さらですが、質問を追加すると、ActiveRecordでどうしてもSQLを使わなけれ
> ばならない場合もあると思いますが、それを見分ける方法はないものでしょう
> か?
必要なときに使う。見分け方はリファレンスを見て該当する機能がない場合。
0192nobodyさん2007/04/11(水) 00:30:21ID:???
>>190

SQLつかわずに、id1,2の組をaから抽出しつつ
rubyのコードでループまわして解決することもできるとおもうが
それはダメ?

active recordでなんでもできるというよりは、 railsつかうくらいなんだから、
sqlよりはrubyが使えるという前提なだけなんだとおもうが,
どっちが効率いいかは自分で考えて、やりたいほうでやればいいとおもう。
0193nobodyさん2007/04/11(水) 07:30:46ID:n4G4bIgP
要求するレスポンスやソースの可読性によりきりわけてる。
それにヒアドキュメント使えばそこまで
ソースは汚くならないよ。
S2Daoの外だしSQLみたいなライブラリがあればもっと悩まなくていいんだけどね
0194nobodyさん2007/04/11(水) 22:11:58ID:???
select タグが初心者で戸惑っています。
users テーブルと prefectures テーブルがあります。
users テーブルには name, email などのフィールドがあり、prefecture_id というフィールドを
prefectures テーブルの id フィールドに関連付けています。
prefecture テーブルは id, name の2フィールドだけです。
user.rb では belongs_to :prefecture と宣言して views/users/_form.rhtml では
<%= select('participation', 'prefecture_id', @prefectures, :include_blank => true) %>
と記述すると、データは引っ張ってきてるようなのですが、値が
<option value="#<Prefecture:0x48a8e38>">#<Prefecture:0x48a8e38></option>
となってしまいます。
これはどうやったらいいのでしょうか?
<option value="1">北海道</option>
のように表示したいです。
ちなみに users_controller.rb では @participation = Participation.new としています。
0195nobodyさん2007/04/11(水) 22:43:49ID:???
ヘルパー定義
module PrefectureHelper
def options_for_prefecture
Prefecture.find(:all).map{|pref| [ pref.name, pref.id ]}
end
end

コントローラ
helper :prefecture

ビュー
<%= select 'participation', 'prefecture', options_for_prefecture %>

とかかなぁ。
0196nobodyさん2007/04/12(木) 11:08:42ID:???
collection_selectじゃだめなのか?
0197nobodyさん2007/04/12(木) 15:51:43ID:???
>>195
レスありがとうございます、おそくなってすいません。
教えてもらったやり方で都道府県のプルダウンが表示できました。
でも更新がエラーになりました。
フィールド名が prefecture_id でなく prefecture となるためのようです。
>>196
<%= collection_select('participation', 'prefecture_id', @prefectures, 'id', 'name', :include_blank => true) %>
とすることで解決しました。
お二人ともどうもありがとうございました!
0198nobodyさん2007/04/13(金) 00:01:11ID:???
Railsでスタンドアローンアプリを作るJoyent Slingshotが出るらしい
http://blog.masuidrive.jp/articles/2007/04/04/joyent
0199nobodyさん2007/04/14(土) 00:33:16ID:6tinSehY
$rails hello
$cd hello
$./script/server
として、
http://localhost:3000/
を表示、
About your application’s environment
をクリックすると、
`/rails/info/properties' not found.

何が足りないんでしょうか?



0200nobodyさん2007/04/14(土) 00:40:55ID:???
rails本体ロードできてるのかそれ
0201nobodyさん2007/04/14(土) 15:37:31ID:6tinSehY
Welcome aboard
までは表示されるんですよね。
うーむ
0202nobodyさん2007/04/14(土) 15:43:47ID:???
スタックトレースは?
0203nobodyさん2007/04/14(土) 16:27:35ID:???
ログ見ろ
0204nobodyさん2007/04/14(土) 16:36:15ID:???
>>202-203を確認するには、
$ ./script/server
を実行したディレクトリから相対パスで
log/development.log
というファイルを見る。
0205nobodyさん2007/04/14(土) 18:46:14ID:B2xpWsRy
Top 10 Ruby on Rails performance tips
http://www.antoniocangiano.com/articles/2007/02/10/top-10-ruby-on-rails-performance-tips

Rails(つーか、Rubyプログラム)を早くする10のチップス
0206nobodyさん2007/04/14(土) 21:40:24ID:6tinSehY
そもそもの/rails/info/properties
ってどこを読みにいってるんでしょうか?
0207nobodyさん2007/04/14(土) 22:32:26ID:???
>>206

rails-x.y.z/builtin/rails_info/rails/info_controller.rb

というかログは見たのかと。
0208nobodyさん2007/04/14(土) 22:41:35ID:6tinSehY
About your application’s environment
をクリックしたときのログは、
Processing InfoController#properties (for 127.0.0.1 at 2007-04-14 22:38:27) [GET]
Session ID: f23ae9ce2c7a252c1b125a13c239630e
Parameters: {"action"=>"properties", "controller"=>"rails/info"}
Completed in 0.08135 (12 reqs/sec) | Rendering: 0.00256 (3%) | 200 OK [http://localhost/rails/info/properties]

となっています。
0209nobodyさん2007/04/15(日) 00:39:09ID:???
それだとrails的には正常に動作しているな。

コンソール(script/console)から

>> app.get('/rails/info/properties')
はたぶん200が返るよね。(正常動作)

>> Rails::Info
や
>> Rails::Info.properties
は実行できる?
0210nobodyさん2007/04/15(日) 00:54:17ID:VaZuR0Tw
script/consoleの実行でエラーが出るので、たどっていったら、
irbが入っていませんでした。
ruby1.8-devは入れたんだけどな。
というわけで,
#apt-get install irb
でAbout your application’s environmentから動作環境が表示されるようになりました。
ありがとう。
0211nobodyさん2007/04/15(日) 01:01:29ID:???
grepしてもirbの有無が影響しそうなところは見あたらないなと思ったのだが、active_support/breakpoint.rb が require 'irb' してるのが影響するのかな。

0212nobodyさん2007/04/15(日) 01:10:39ID:???
irbパッケージはバイナリだけなんだけどなあw
irbのライブラリ側でバイナリあるかみてるのかね
0213nobodyさん2007/04/15(日) 01:47:46ID:bwS+3MUr
Railsの有効な要件範囲を5行で答えよ
0214nobodyさん2007/04/15(日) 10:33:07ID:???
そういやwebricのコンソールにエラーは出なかったの?
0215nobodyさん2007/04/15(日) 11:17:24ID:???
ちと長いけどWebrickのエラーです。

#<ArgumentError: Anonymous modules have no name to be referenced by>
["/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:404:in `to_constant_name'", "/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:214:in `qualified_name_for'",
"/usr/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:476:in `const_missing'",
"/usr/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/dispatcher.rb:117:in `reset_after_dispatch'",
制限かかったので中略。

[2007-03-29 06:50:53] ERROR `/rails/info/properties' not found.
192.168.0.8 - - [29/Mar/2007:06:50:53 JST] "GET /rails/info/properties HTTP/1.1" 404 294
http://192.168.0.10:3000/ -> /rails/info/properties

irb抜いて再現。

0216nobodyさん2007/04/15(日) 11:21:43ID:???
>>215

dispatcher.rb:117がまさに
Breakpoint.deactivate_drb if defined?(BREAKPOINT_SERVER_PORT)
だな。ここでRailsの自動ロード(const_missingから↑の処理)によって
breakpoint.rbが読まれて、最初(18行目)のrequire 'irb'に引っかかるってことか。
02172162007/04/15(日) 11:23:32ID:???
しかし>>212によれば
Debianのruby-irbってバイナリ(というか/usr/bin/irbはスクリプトだが)
しか入ってないらしいから、requireが失敗するのは変だな。
0218nobodyさん2007/04/15(日) 11:45:56ID:???
あ、ubuntuです。
インストールファイル一覧みると拡張子.rbなスクリプトが結構あるようです。

ちなみにVine4,1でも同じ現象に悩んでて、irb追加で動作しました。

0219nobodyさん2007/04/15(日) 11:51:45ID:???
debもvineもやまださんがパッケージングしてるから構成が似てるのかな。
02202122007/04/15(日) 13:33:24ID:???
なるほど、ubuntuはirbパッケージに
irbのライブラリも入ってるのか
debian使ってるのでdebianかと思って早とちった
debianはirbパッケージがbinの分だけの構成
納得
0221nobodyさん2007/04/15(日) 13:49:53ID:???
ubuntuならrails1.1.6パッケージがあるんで、そっちを入れればスムーズだったでしょうね。
依存情報みると、
ruby1.8(>=1.8.2-3)
rake(>0.7.0)
rdoc(>1.8.2)
libpgsql-ruby1.8 |libmysql-ruby1.8 | libdbi-ruby1.8
libredcloth-ruby1.8
liberb-ruby
となってます。
irbは推奨。

パッケージ使うのとgemから入れるのとどっちがよかったんでしょ?
#深く考えずにgemから入れてるので、ruby関係のファイルダブってる予感。

0222nobodyさん2007/04/15(日) 13:56:55ID:???
パッケージはやっぱり最新になるまで若干ラグがあるから
gemで入れれるものは全部gemで入れるなあ
あとダブっちゃうとパッケージ入れたものが優先されちゃって
それのバージョンが古くて動かないとか時々ハマる
ので、基本rubyのライブラリはgemで入れている
0223nobodyさん2007/04/15(日) 22:26:40ID:R7zqEagR
パッケージはとにかくお手軽で入れたい人用。更新は遅い

gemは、面倒だが更新が早い(というか即更新)
面倒っつーか、正式にはgemだけど
0224nobodyさん2007/04/15(日) 22:48:47ID:???
>>223
gem 面倒かなあ。

 gem のインストールを1回やれば、あとは手間というほどのものは
ないとおもうけどなあ
0225nobodyさん2007/04/15(日) 23:16:06ID:???
gem本体はパッケージで入れてる
0226nobodyさん2007/04/16(月) 16:54:04ID:Cp2bXGKb
@aa
@aa.bb = bb.new
@aa.cc = cc.new

if @aa.save
render :action => 'susumu'
else
render :action => 'modoru'
end

の状態でccのvalidateがうまくいかない。

bbモデルのvalidateではちゃんと検出して差し戻しが起きるのに
ccモデルのvalidateではerrors.addしても
susumuに行ってしまいます。

わかる方いたら教えてください。
0227nobodyさん2007/04/16(月) 19:21:02ID:beYyUphl
数あるプログラミング言語の中から
Rubyを選んでRailsという素晴らしいアイデアを
実現したDHHって今更ながら凄い。
多分、RailsがなければRubyという言語の良さに
一生気づく事も無かったかもしれない。
Railsについてはまだまだ知らない事だらけだが、
こいつのやる事なら勉強してみる価値ありそうだ
そう思わせてくれる。
0228nobodyさん2007/04/16(月) 21:02:14ID:???
>>226
has_oneとかbelongs_toとかはどうなってるの?
0229nobodyさん2007/04/16(月) 21:24:33ID:3HLa8xFU
All your base are belong to us
0230nobodyさん2007/04/16(月) 21:59:48ID:a8d2FLrt
もうすぐオライリーのRailsクックブック発売ですが、RailsクックブックとRailsレシピって、内容かぶってるんですか?

それとも、両方手元のあった方が良い?
0231nobodyさん2007/04/17(火) 05:11:40ID:???
Rubyクックブックじゃなくて?
0232nobodyさん2007/04/17(火) 07:24:14ID:57xOi4kk
>228さん

aa
has_many bb
has_one cc

で、両方とも
belongs_to aa
になります。
0233nobodyさん2007/04/17(火) 07:25:33ID:57xOi4kk
あ、なので、正確には
@aa.bb << bb.new
@aa.cc = cc.new
ですね。
0234nobodyさん2007/04/17(火) 08:15:03ID:???
belongs_to :aa はないの?
02352302007/04/17(火) 08:18:58ID:65SxndUC
すんません、RubyとRails勘違いしてました。
0236nobodyさん2007/04/17(火) 08:46:27ID:57xOi4kk
>234さbb

bbにもccにも
belongs_to :aa
があります。

ちなみに、cc.saveをするとちゃんとvalidateが動いて差し戻すので
addしてるerrorsが違うオブジェクトなのでしょうか…。
0237nobodyさん2007/04/17(火) 16:43:35ID:???
rubyリストの本が今日某電気屋においてあった
0238nobodyさん2007/04/19(木) 17:09:42ID:???
railsアプリ内でwww.hogehoge.comへのアクセスを
hogehoge.comにリダイレクトする方法ありませんか?
mongrelのみでアプリ立ち上げているもんで、、、
0239nobodyさん2007/04/19(木) 21:14:27ID:???
DNSの仕事じゃないの?
0240nobodyさん2007/04/20(金) 01:06:03ID:???
RadRailsについてですが、こちらで質問させて頂きます。

RadRailsで、右下のペインのタブ(Servers, Generators, Rake Tasksなど)を
閉じてしまった場合、どうすれば元に戻せるでしょうか?

タブを閉じるボタンはあるのに、再度開く方法が分からず、
タブを移動する際に誤って、閉じる(×)ボタンを押してしまわないか心配です。
0241nobodyさん2007/04/20(金) 03:46:08ID:???
>>239
目から鱗でした。ありがとうございます。
valuedomainでのdnsだったので
http://seesaa.info/
を参考に無事完了です。
0242nobodyさん2007/04/20(金) 08:14:22ID:???
>>240
しばらくeclipse使ってないんだが、
Windowメニューの中からViewを選んで表示できない?
02432402007/04/20(金) 22:48:25ID:???
>>242
ありがとうございます。

Window > Show View > Other ...
から、各項目を復帰できる事を確認しました。

周りにも、タブを閉じてしまって困っている人がいるので助かりました。
0244nobodyさん2007/04/23(月) 14:22:03ID:???
フォームのセレクトの使い方がわからない。。

<p><label for="user_type">タイプ</label>
<%= select 'user', 'type', [ "タイプ1", "タイプ2", "タイプ3" ] %></p>

とすると、こんなんでます。

TypeError in users#create
Showing app/views/users/_form.rhtml where line #8 raised:

wrong argument type String (expected Module)

どなたかご教授ください。

0245nobodyさん2007/04/23(月) 16:03:10ID:???
ttp://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M000506
ttp://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M000510
いいか、びっくりすんなよ。なんとその情報はリファレンスマニュアルに実例つきで書いてあるんだ!
02462442007/04/23(月) 17:18:10ID:???
typeカラムがなかったYO!

>>245
びっくりしたYO!
0247nobodyさん2007/04/24(火) 20:18:46ID:???
特定のモデルクラスに対してのみpluralize_table_names=falseを
適用したいと思い、継承したクラス内でクラス変数の設定をしたのですが、
親クラスのクラス変数も上書きされてしまっています…。

↓ソースだとこんな感じです

class Model < ActiveRecord::Base
self.pluralize_table_names = false
end

回避するにはモデルごとにpluralize_table_names変数をセットするしかないのでしょうか…?
どなたか良い解法後存知でしたら教えてください。
0248nobodyさん2007/04/24(火) 22:48:24ID:???
なんでクラス内の変数が
親クラスに影響与え天だよ
スコープが甘いんじゃねーの?
0249nobodyさん2007/04/24(火) 22:58:31ID:cwLWyb36
RadRailsのwebrick立ち上げがメッサ遅いんですけど(WindowsXP)
何でなんだろ・・・
コマンドラインからだと、そこまで遅くないんだけどな
0250nobodyさん2007/04/24(火) 23:49:48ID:???
>>249
mongrelにすれば?
0251nobodyさん2007/04/25(水) 00:59:22ID:???
>>247
class Model < ActiveRecord::Base
def self.pluralize_table_names
false
end
end

>>248
1.9 では親クラスと共有しなくなった。
0252nobodyさん2007/04/25(水) 10:02:52ID:???
>>247
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?ClassInstanceVariable
0253nobodyさん2007/04/25(水) 13:55:01ID:???
Rails1.2でARのObject#idがdeprecatedになってるんだけど、これってもう
実装者からはid触れなくするってことなんかな?
バッチとかでtrancateしてinsertし直す時に困りそうな気がするんだが…。
0254nobodyさん2007/04/25(水) 14:17:42ID:???
>>253
自己レス
warning: Object#id will be deprecated; use Object#object_id

よく嫁よ俺…orz
0255nobodyさん2007/04/25(水) 15:55:33ID:l0yezZx4
RadRailsでWebサイト作ってるんですけど
debugってどうやればいいんでしょう?
サイトをいじりながらデバッグしたいんですけど、
出来ないのかな?
02562442007/04/25(水) 20:29:04ID:???
ラジオボタンのcheckedってどーやんだ。

<%= radio_button 'send', 'type', 'mail' %>aaa
<%= radio_button 'send', 'type', 'login' %>bbb

Rails API ドキュメントむずい・・
0257nobodyさん2007/04/25(水) 21:03:10ID:???
先に
<% send.type = 'mail' %>
と値を設定しておいてやればいいのでは?
0258nobodyさん2007/04/25(水) 21:03:47ID:???
あ、もうちょっと考えて書けばよかった。
<% send.type |= 'mail' %>
の方がいいね。
0259nobodyさん2007/04/25(水) 21:44:07ID:???
>>258

||= と見た。
02602442007/04/25(水) 21:51:46ID:???
<% send.type ||= 'mail' %>
<%= radio_button 'send', 'type', 'mail' %>aaa
<%= radio_button 'send', 'type', 'login' %>bbb

no method name given

だめでし
02612572007/04/25(水) 22:15:50ID:???
>>260
<% @send.type ||= 'mail' %>
です。重ね重ね済まん。
02622442007/04/25(水) 22:56:47ID:???
うーん、
エラーで無くなったけどcheckedにならないですね。

<% @send.type ||= 'mail' %>
<%= radio_button 'send', 'type', 'mail' %>aaa
<%= radio_button 'send', 'type', 'login' %>bbb

だめぽ
0263nobodyさん2007/04/26(木) 08:06:56ID:7y5iCbkB
脆弱性乙
0264nobodyさん2007/04/26(木) 09:48:50ID:???
>>244
単に@send.typeがObject#typeを呼んでるだけなんじゃないの?
method_missing経由でカラム名のアクセサがあるように見せているので、
すでにメソッドがあったり、自分で上書きしたりすればデフォルトのアクセッサは
動かなくなる。
0265nobodyさん2007/04/26(木) 18:39:23ID:???
ARって検索で大量のレコードがHitすると検索結果を全部Arrayに入れようとするので重くなりますよね。
ARでカーソルみたいなRecordSetのような概念はないんでしょうか?

WebアプリだったらそもそもそんなにHitする画面はねーよ、っていう思想なのかな・・
0266nobodyさん2007/04/26(木) 22:44:12ID:???
>>265
いまんとこないですな。
ぐぐるといろいろ工夫してる人がいるみたいですが。

MySQLのid割り当てのしかたを前提にしたちょっとインチキ。
http://weblog.jamisbuck.org/2007/4/6/faking-cursors-in-activerecord

ActiveRecordEnumerable(試作)
http://schuerig.de/michael/blog/index.php/2007/02/03/ar-enumerable/
0267nobodyさん2007/04/26(木) 23:27:48ID:???
すみませんが、質問です。

Railsで、アップロードされたファイルを受信する際に、ファイルのサイズに制
限をつけるにはどうしたらよいのでしょうか?巨大ファイルを送信されたとき
に拒否したいのです。
0268nobodyさん2007/04/28(土) 01:15:37ID:???
初歩的で恐縮ですが、質問です。

ファンクションテストで使う、assins には、メソッドと単なるハッシュの二種
類があるそうですが、この単なるハッシュのスコープは何でしょうか?

単なるローカル変数だとしたら、そのテストメソッドの中のスコープしかあり
ませんから、テストメソッドの実行前に価をセットしておけるはずがないと思
います。不思議です。
0269nobodyさん2007/04/28(土) 06:33:56ID:???
ゆっとることがよくわからんし、assinsがassinsertかassignsかも判然としないけど、
assignsのハッシュはViewのインスタンス変数のハッシュそのものじゃないか。
ソース見てないけど。

>>267
File.size(params[:uploaded_file].local_path) じゃだめかね
直接params[:uploaded_file].sizeでいけたかも。
0270nobodyさん2007/04/28(土) 14:21:10ID:???
CruiseControl.rbってRailsなのね。
0271nobodyさん2007/04/28(土) 14:21:31ID:weHXkhvg
>>265
この現象ってページングの時もですか?
1億件から30行とってくる場合に、1億件ARRAYに入れて30件抽出すると言う事ですか?
0272nobodyさん2007/04/28(土) 14:36:30ID:???
pagination は内部では
find(:all, ...
 :offset => paginator.current.offset, :limit => per_page)
という呼び出しをしているのでだいじょぶ。


0273nobodyさん2007/04/28(土) 15:27:33ID:???
ただ、デフォルトの pagenate は小さいオブジェクトをたくさん作るので、
そこでメモリ食ったり処理速度上のネックになったりはする。
表示する件数がやたら多い場合とかだけどね。
02742712007/04/28(土) 18:50:24ID:weHXkhvg
>>272-273
サンクスです
安心しました
■ このスレッドは過去ログ倉庫に格納されています