【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/
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:???0310nobodyさん
2007/05/02(水) 16:46:46ID:???と言った感じでInner JoinとLeft joinを使い分けていたのですが、パフォーマンスを
調べていたところ、:joinsオプションで指定したテーブルはJoinこそしてくれてはいるものの、select句で
カラムをまったく指定しておらず、無駄になっている事が分かりました。
(結局参照するときにSelect投げなおしている)
んで、じゃあしゃーないと、:selectでカラムを指定してみてもまったく無視されているようで、SQLに反映されません。
ARでinner joinは茨の道なんでしょうか?DHHからの愛を感じません。
0311nobodyさん
2007/05/02(水) 19:53:46ID:???>>289
500万回のループを回して処理時間を計ってみたら
forとeachでは0.5〜1秒くらいforの方が早かったです。
そこまで気にしなくてもいい感じですね。
>>290
Σ(゜д゜;)
>>294
<% hoge.each do |v|
foo <%= bar() %>
<% end %>
こんな感じですかね?
言われてみればなんとなく気持ち悪い気もします。
0312nobodyさん
2007/05/03(木) 00:05:55ID:n7bcDdTMRuby-MLで、重いって言われてたんですけど・・・
0313nobodyさん
2007/05/03(木) 01:05:02ID:???0314nobodyさん
2007/05/03(木) 01:16:51ID:???0315nobodyさん
2007/05/03(木) 01:18:01ID:???エッジのような気がする。
0316nobodyさん
2007/05/03(木) 01:38:43ID:nyRAYwv8犯罪者用フレームワークに選ばれた?
0317nobodyさん
2007/05/03(木) 01:47:29ID:???0318nobodyさん
2007/05/03(木) 16:30:40ID:???Perlはガツガツした現場主義マッチョ
PHPはにちゃんねら
ってイメージだな
0319nobodyさん
2007/05/03(木) 18:07:37ID:???基本はviewから呼ばれるものの、ユニットテストとかできそう。
なんだけど機構がないよね。
0321nobodyさん
2007/05/04(金) 02:07:15ID:???なんか個人が片手間で、しかもRailsじゃなくても簡単に
作れるようなサイトしか表に出てないから、
イマイチ実績がわからん…
0322nobodyさん
2007/05/04(金) 03:56:44ID:???http://rails100.pbwiki.com/
0323nobodyさん
2007/05/04(金) 03:58:23ID:???0324nobodyさん
2007/05/04(金) 08:47:54ID:???なんかデザイン最悪、アクセシビリテ悪し、ってやつが多いなあ・・・
0325nobodyさん
2007/05/04(金) 10:04:27ID:DRYOcLVNオブジェクト指向スクリプト言語 Ruby
http://www.ruby-lang.org/ja/
0326nobodyさん
2007/05/04(金) 10:06:14ID:DRYOcLVN>>322にもあるけど、今はやりのSNS(?)twitterがRailsだね。
Twitter: What are you doing?
http://twitter.com/
パフォーマンスあげるのにいろいろ苦心してたみたいだけど。
0327nobodyさん
2007/05/04(金) 11:05:10ID:???これじゃMVCじゃなくてMCだ。
0328nobodyさん
2007/05/04(金) 13:25:54ID:???Vのデザインまでフレームワークが作ってくれると
思ってるのか
0329nobodyさん
2007/05/04(金) 13:37:14ID:L0mwz8+Zちょwwww
Rails関係なくない?
0330nobodyさん
2007/05/04(金) 13:58:19ID:???Vのデザイン開発クオリティを支えるのも含めてMVCのVだよ。
0331nobodyさん
2007/05/04(金) 14:10:18ID:???で、RailsにDreamweaverやホームページビルダー的なものを期待しているのか?
0332nobodyさん
2007/05/04(金) 14:57:30ID:???いまはないな
0333nobodyさん
2007/05/05(土) 01:34:23ID:???rails以外のrails派生フレームワークはscaffoldである程度整ったもん出してくれるし。
もちろん「設定より規約」に従って、そのデフォルトデザイン自体も指定可能だし。
0334nobodyさん
2007/05/05(土) 02:21:57ID:???0335nobodyさん
2007/05/05(土) 03:34:46ID:q6FwsdVVコードに落とすのは、マの役目じゃねーのか?
MVCのVっつったて、まさか、HTMLでデザインするとこまで、マがやるわけじゃあるまいに・・・
0336nobodyさん
2007/05/05(土) 06:39:53ID:???0337nobodyさん
2007/05/05(土) 09:31:19ID:???Dreamwaverなんかでちゃんと見れるHTMLを。
あとさ、scaffoldなら、データベースのフィールドが増えたら
自動的にビューに反映される。
その便利な機能を、独自のテンプレートでも反映させられるようにしろと。
たとえば独自で作ったrhtml内に特殊なタグ<% scaffold %>を書いておけば、
そこがscaffoldで生成したようなフォームになる。
ただし、rhtmlですでに項目を使用しているのならそれは除く。
一度作ったrhtmlそのままで、データベースのフィールドの追加に
追尾できるような仕組みがあるといい。
もちろん追尾した部分のデザインは汚いだろうが、それはあとから直せば良い。
それよりも動作チェックを早くしたい。
0338nobodyさん
2007/05/05(土) 09:47:26ID:???0340nobodyさん
2007/05/05(土) 10:02:57ID:???フィールドが途中で増える様な、仕様すら決定してない段階でV作りこんで、何するつもり?
0341nobodyさん
2007/05/05(土) 10:06:57ID:???だから、作ったビューに対して、仕様変更が発生した場合、
それをデータベースに反映させられるといい。
具体的に言えば、ビューにテキストボックスを追加したら、
データベースでもフィールドが追加される。(手動で追加するのではない)
0342nobodyさん
2007/05/05(土) 10:10:24ID:???最初から仕様を決定するウォーターフロー的な開発は現代に合わない。
アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、
1つの反復 (イテレーション) で1機能を開発する(⇒反復型開発)。 こ
の反復のサイクルを継続して行い、1つずつ機能を追加開発してゆくのである。
おのおのの反復は、小規模なソフトウェア開発プロジェクトに似ている。
各反復では、それまでに開発した成果物に1つの小さな機能を追加する。
計画、要求分析、設計、実装(コーディング)、テスト、文書化といった、
ソフトウェアプロジェクトに要する全ての工程を、1つの反復内で行う。
場合によっては、1つの反復内で開発すると計画していたソフトウェア機能を、
必ずしも期間内で充分に実現できるとは限らない。 このように時にはうまくゆかない反復もあるが、
アジャイル開発手法では、各反復が終了するごとに、機能追加された新しいソフトウェア (ビルド) を
リリースすることを目指す。 各反復が終了するごとに、プロジェクトチームは、
プロジェクトにおける優先度を評価し直す。
■ このスレッドは過去ログ倉庫に格納されています