【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/
0210nobodyさん
2007/04/15(日) 00:54:17ID:VaZuR0Twirbが入っていませんでした。
ruby1.8-devは入れたんだけどな。
というわけで,
#apt-get install irb
でAbout your application’s environmentから動作環境が表示されるようになりました。
ありがとう。
0211nobodyさん
2007/04/15(日) 01:01:29ID:???0212nobodyさん
2007/04/15(日) 01:10:39ID:???irbのライブラリ側でバイナリあるかみてるのかね
0213nobodyさん
2007/04/15(日) 01:47:46ID:bwS+3MUr0214nobodyさん
2007/04/15(日) 10:33:07ID:???0215nobodyさん
2007/04/15(日) 11:17:24ID:???#<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:???dispatcher.rb:117がまさに
Breakpoint.deactivate_drb if defined?(BREAKPOINT_SERVER_PORT)
だな。ここでRailsの自動ロード(const_missingから↑の処理)によって
breakpoint.rbが読まれて、最初(18行目)のrequire 'irb'に引っかかるってことか。
0217216
2007/04/15(日) 11:23:32ID:???Debianのruby-irbってバイナリ(というか/usr/bin/irbはスクリプトだが)
しか入ってないらしいから、requireが失敗するのは変だな。
0218nobodyさん
2007/04/15(日) 11:45:56ID:???インストールファイル一覧みると拡張子.rbなスクリプトが結構あるようです。
ちなみにVine4,1でも同じ現象に悩んでて、irb追加で動作しました。
0219nobodyさん
2007/04/15(日) 11:51:45ID:???0220212
2007/04/15(日) 13:33:24ID:???irbのライブラリも入ってるのか
debian使ってるのでdebianかと思って早とちった
debianはirbパッケージがbinの分だけの構成
納得
0221nobodyさん
2007/04/15(日) 13:49:53ID:???依存情報みると、
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:R7zqEagRgemは、面倒だが更新が早い(というか即更新)
面倒っつーか、正式にはgemだけど
0224nobodyさん
2007/04/15(日) 22:48:47ID:???gem 面倒かなあ。
gem のインストールを1回やれば、あとは手間というほどのものは
ないとおもうけどなあ
0225nobodyさん
2007/04/15(日) 23:16:06ID:???0226nobodyさん
2007/04/16(月) 16:54:04ID:Cp2bXGKb@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:beYyUphlRubyを選んでRailsという素晴らしいアイデアを
実現したDHHって今更ながら凄い。
多分、RailsがなければRubyという言語の良さに
一生気づく事も無かったかもしれない。
Railsについてはまだまだ知らない事だらけだが、
こいつのやる事なら勉強してみる価値ありそうだ
そう思わせてくれる。
0229nobodyさん
2007/04/16(月) 21:24:33ID:3HLa8xFU0230nobodyさん
2007/04/16(月) 21:59:48ID:a8d2FLrtそれとも、両方手元のあった方が良い?
0231nobodyさん
2007/04/17(火) 05:11:40ID:???0232nobodyさん
2007/04/17(火) 07:24:14ID:57xOi4kkaa
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:???0235230
2007/04/17(火) 08:18:58ID:65SxndUC0236nobodyさん
2007/04/17(火) 08:46:27ID:57xOi4kkbbにもccにも
belongs_to :aa
があります。
ちなみに、cc.saveをするとちゃんとvalidateが動いて差し戻すので
addしてるerrorsが違うオブジェクトなのでしょうか…。
0237nobodyさん
2007/04/17(火) 16:43:35ID:???0238nobodyさん
2007/04/19(木) 17:09:42ID:???hogehoge.comにリダイレクトする方法ありませんか?
mongrelのみでアプリ立ち上げているもんで、、、
0239nobodyさん
2007/04/19(木) 21:14:27ID:???0240nobodyさん
2007/04/20(金) 01:06:03ID:???RadRailsで、右下のペインのタブ(Servers, Generators, Rake Tasksなど)を
閉じてしまった場合、どうすれば元に戻せるでしょうか?
タブを閉じるボタンはあるのに、再度開く方法が分からず、
タブを移動する際に誤って、閉じる(×)ボタンを押してしまわないか心配です。
0241nobodyさん
2007/04/20(金) 03:46:08ID:???目から鱗でした。ありがとうございます。
valuedomainでのdnsだったので
http://seesaa.info/
を参考に無事完了です。
0243240
2007/04/20(金) 22:48:25ID:???ありがとうございます。
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#M000510
いいか、びっくりすんなよ。なんとその情報はリファレンスマニュアルに実例つきで書いてあるんだ!
0247nobodyさん
2007/04/24(火) 20:18:46ID:???適用したいと思い、継承したクラス内でクラス変数の設定をしたのですが、
親クラスのクラス変数も上書きされてしまっています…。
↓ソースだとこんな感じです
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何でなんだろ・・・
コマンドラインからだと、そこまで遅くないんだけどな
0251nobodyさん
2007/04/25(水) 00:59:22ID:???class Model < ActiveRecord::Base
def self.pluralize_table_names
false
end
end
>>248
1.9 では親クラスと共有しなくなった。
0252nobodyさん
2007/04/25(水) 10:02:52ID:???http://capsctrl.que.jp/kdmsnr/wiki/bliki/?ClassInstanceVariable
0253nobodyさん
2007/04/25(水) 13:55:01ID:???実装者からはid触れなくするってことなんかな?
バッチとかでtrancateしてinsertし直す時に困りそうな気がするんだが…。
0254nobodyさん
2007/04/25(水) 14:17:42ID:???自己レス
warning: Object#id will be deprecated; use Object#object_id
よく嫁よ俺…orz
0255nobodyさん
2007/04/25(水) 15:55:33ID:l0yezZx4debugってどうやればいいんでしょう?
サイトをいじりながらデバッグしたいんですけど、
出来ないのかな?
0256244
2007/04/25(水) 20:29:04ID:???<%= 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' %>
の方がいいね。
0260244
2007/04/25(水) 21:51:46ID:???<%= radio_button 'send', 'type', 'mail' %>aaa
<%= radio_button 'send', 'type', 'login' %>bbb
no method name given
だめでし
0262244
2007/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:7y5iCbkB0264nobodyさん
2007/04/26(木) 09:48:50ID:???単に@send.typeがObject#typeを呼んでるだけなんじゃないの?
method_missing経由でカラム名のアクセサがあるように見せているので、
すでにメソッドがあったり、自分で上書きしたりすればデフォルトのアクセッサは
動かなくなる。
0265nobodyさん
2007/04/26(木) 18:39:23ID:???ARでカーソルみたいなRecordSetのような概念はないんでしょうか?
WebアプリだったらそもそもそんなにHitする画面はねーよ、っていう思想なのかな・・
0266nobodyさん
2007/04/26(木) 22:44:12ID:???いまんとこないですな。
ぐぐるといろいろ工夫してる人がいるみたいですが。
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:???assignsのハッシュはViewのインスタンス変数のハッシュそのものじゃないか。
ソース見てないけど。
>>267
File.size(params[:uploaded_file].local_path) じゃだめかね
直接params[:uploaded_file].sizeでいけたかも。
0270nobodyさん
2007/04/28(土) 14:21:10ID:???0271nobodyさん
2007/04/28(土) 14:21:31ID:weHXkhvgこの現象ってページングの時もですか?
1億件から30行とってくる場合に、1億件ARRAYに入れて30件抽出すると言う事ですか?
0272nobodyさん
2007/04/28(土) 14:36:30ID:???find(:all, ...
:offset => paginator.current.offset, :limit => per_page)
という呼び出しをしているのでだいじょぶ。
0273nobodyさん
2007/04/28(土) 15:27:33ID:???そこでメモリ食ったり処理速度上のネックになったりはする。
表示する件数がやたら多い場合とかだけどね。
0274271
2007/04/28(土) 18:50:24ID:weHXkhvgサンクスです
安心しました
0275nobodyさん
2007/05/01(火) 00:45:09ID:???あんまりみたことないし、作者のサイトがPHPなんだけどw
この言語はネタかww
0276nobodyさん
2007/05/01(火) 01:32:32ID:???0277nobodyさん
2007/05/01(火) 01:53:04ID:???0278nobodyさん
2007/05/01(火) 03:36:54ID:???0279nobodyさん
2007/05/01(火) 03:41:15ID:???0280nobodyさん
2007/05/01(火) 04:18:42ID:???所詮何使っても同じだよ
0281nobodyさん
2007/05/01(火) 04:20:28ID:???0282nobodyさん
2007/05/01(火) 05:18:34ID:???PHP
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
Ruby
a = [1, 2, 3, 4, 5]
p a.map {|x| x**3}
実装の多重継承を行う仕組みがないところ
あとは組み込み関数にオブジェクト指向が全然活用されてないところ、
Perlに中途半端に似てるシンタックス
0283nobodyさん
2007/05/01(火) 05:30:41ID:???それを言うならclosureがないのがアホだろう。
0284nobodyさん
2007/05/01(火) 05:34:45ID:???けどこれもなんとかなるんだよね、実は。requireを使えばできる。
組み込み関数にオブジェクト指向が活用されてないのは仕方ないよ。
だって全部がオブジェクトじゃないし、元々の出自が違うもの。
そこは割り引いてあげなきゃ。
Perlに文法似てる? 全然そんなことないと思うけど。
Perlの文法で特徴的なのは文脈で変数の解釈が変わることで、
PHPにはそれがないよ。
0285nobodyさん
2007/05/01(火) 05:36:35ID:???だからといってPHPがいいとはちっとも思ってない。
アホ言語仕様とまでは思わないけど、
まあ文法はださいけど結構色々できるよってことね。
0286nobodyさん
2007/05/01(火) 11:21:05ID:???AWDwRのサンプルコード見てもそうですし。
これがどうにもRubyぽくない(というかほとんどJSPに見える)ので嫌なんですが、どうにもならないところなんですかねぇ。。。
イテレータ拡張してブロックの評価結果を戻り値で返すって言うのはダメですか?
0287nobodyさん
2007/05/01(火) 11:35:23ID:???使いたくないなら使わなければ良いっていうか、好きにすれば良いっていうか...
でもViewで凝ったループを使いたくなることは無いし、forだとだれにでも判り易くていいんじゃない。
表記の好みだけが問題ならどっちでもいいじゃん?
0288nobodyさん
2007/05/01(火) 12:02:04ID:???0289nobodyさん
2007/05/01(火) 13:54:13ID:???0290nobodyさん
2007/05/01(火) 17:54:57ID:???それは知らなかった。横で見ていたものだが教えてくれてありがとう。
でもforみたいに新たな文法を導入するよりeachの方が好きなんだよね…。
0292nobodyさん
2007/05/01(火) 21:15:17ID:???validates_presence_of :name, :message=>"名前がありませんよ"
みたいにしてるんですけど、カラムが全部未入力の場合だけエラーとしたい場合、
どんなふうにするんでしょ?
0293nobodyさん
2007/05/01(火) 21:26:44ID:???レコードとして不正だったら、
errors.add_to_base(エラーを伝えるメッセージ)
という呼び出しをすればOK。
0294nobodyさん
2007/05/01(火) 21:27:32ID:???これるびまの誰かへのインタビューで
なんか理由が書いてたような記憶あるなー
forとendが対照的で見やすいのもあるんじゃねとかそういう話
別にeachでも全然いいんじゃないの
0295nobodyさん
2007/05/01(火) 21:27:57ID:???定義したvalidateは必要に応じてフレームワークから呼ばれるので
自分で呼ぶ必要はないです。
0296292
2007/05/01(火) 21:42:12ID:???def validate
if gakunen_id.empty?
validates_presence_of :name, :message=>"名前がありませんよ."
end
end
とすると以下のエラーが・・
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.empty?
なぜに。
0297nobodyさん
2007/05/01(火) 21:50:04ID:???if self.gakunen_id.empty?
でどうだ?
0298nobodyさん
2007/05/01(火) 21:51:30ID:???blank? 使え。
0299292
2007/05/01(火) 22:14:29ID:???You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.inject
Extracted source (around line #6):
6: <%= collection_select 'seller', 'gakunen_id', @gakunen, 'id', 'gakunen', :include_blank => true %><br>
なぜー
0300nobodyさん
2007/05/01(火) 22:21:38ID:???0301nobodyさん
2007/05/01(火) 22:28:19ID:???injectでエラーになってるようだが、
collection_select(..., ..., choices...)
=> to_select_tag(choices,...)
=> options_for_select(choices,...)
でchoices(引数としてはcontaienr)に対してinjectが呼ばれる。
ここでエラーになってないか?
0302nobodyさん
2007/05/02(水) 02:22:46ID:???0303nobodyさん
2007/05/02(水) 03:16:56ID:???0304nobodyさん
2007/05/02(水) 03:23:00ID:???0305nobodyさん
2007/05/02(水) 04:05:09ID:???0306nobodyさん
2007/05/02(水) 08:24:11ID:???matzにっき?(tDiary)
ruby-lang.org?(Radiant=Rails)
0307nobodyさん
2007/05/02(水) 08:48:15ID:???どうせ何もわかっちゃいないんだし。
0308nobodyさん
2007/05/02(水) 11:26:38ID:???■ このスレッドは過去ログ倉庫に格納されています