【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/
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つの反復内で開発すると計画していたソフトウェア機能を、
必ずしも期間内で充分に実現できるとは限らない。 このように時にはうまくゆかない反復もあるが、
アジャイル開発手法では、各反復が終了するごとに、機能追加された新しいソフトウェア (ビルド) を
リリースすることを目指す。 各反復が終了するごとに、プロジェクトチームは、
プロジェクトにおける優先度を評価し直す。
0343nobodyさん
2007/05/05(土) 10:13:52ID:???データベース設計なんか関係ないだろ。
そのフィールドが外部キーとかになっているのなら話は別だが。
0344nobodyさん
2007/05/05(土) 10:15:33ID:???あー、ここにフィールド1個追加したいなぁって言って出来るのは、初めから、そう言うデータベース設計をしてある時だけだよ。
つーか、その為にscaffoldがあるんだろうが…。
0345nobodyさん
2007/05/05(土) 10:17:52ID:???本気で疑うぞ。そのフィールドに関して、どう言う負荷してるんだ?
つか、何でそのフィールドが必要か?ってのが、データベース設計と言うか、アプリケーションの肝だろ。
0347nobodyさん
2007/05/05(土) 10:27:42ID:???テキストボックスを追加したら…。と簡単に言っているが、これの意味する所を理解しているか?
このアプリケーションで、どう言う情報を収集、蓄積するか、決まっていない。こう言う意味なんだぜ?
そんな段階で、Vなんか作りこむより、scaffoldででも検討して、データベース設計に落とし込めよ。
0349nobodyさん
2007/05/05(土) 12:14:50ID:???アジャイルに対して何のコメントもしてないね。
もしかして知らないのかな?
必要な情報ってのは、あとで変るもの。
スピードの早い今、最初に決めるなんて不可能。
仕様変更が全く無いということが
現実に起こりえるのか考えてみれば良い。
繰り返し言うが、最初に決めるなんて不可能。
そういう現実的な前提に立った開発がアジャイル
0351nobodyさん
2007/05/05(土) 12:27:28ID:???そのまま受け売りでこれ見よがしに
アジャイルアジャイル言ってみたい年頃なんだよ
ほっといてやれ
0352nobodyさん
2007/05/05(土) 13:00:58ID:???まともな反論が
無い事が何よりの証拠。
0353nobodyさん
2007/05/05(土) 13:01:53ID:???0355nobodyさん
2007/05/05(土) 15:11:10ID:???先進的なソフトウェア会社も言っているよね。
0356nobodyさん
2007/05/05(土) 15:29:48ID:???>無い事が何よりの証拠。
ん?反論がなければ俺の勝ちだぞ?
という名言を思い出した
0357nobodyさん
2007/05/05(土) 15:36:50ID:???scaffoldの意味を英和辞典で調べてみ。scaffoldで生成されたコードは、
そこから手を入れていくことを前提とした、ただの土台の役割だよ。
データベース定義を変えるだけで、ぜんぶ面倒をみてくれるような、全自動なフレームワークが
欲しいなら、無理してRailsを使わないで、デジエでも使ってたほうがいいと思うよ。
まじで。
0358nobodyさん
2007/05/05(土) 15:44:55ID:???> このアプリケーションで、どう言う情報を収集、蓄積するか、決まっていない。
べつにその段階で作り始めてもいいじゃん。AWDwRでも顧客の要求に従ってテーブルに項目をばんばん追加してるし。
変更があってもそれに柔軟に対応できるのがRailsのいいとこじゃん。そのためにARやmigrationがあるんだろ?何のためにRails使ってるんだ?
>>337がいってるのは一理あるだろ。RailsはActiveRecordやmigrationがあってDBまわりは仕様変更に強いようにできてるけど、
viewまわりはerubyをほぼそのまま使っているだけで、まだまだ改良の余地があるじゃん。
337はそれについて提起しただけだろ。なんでこんな拒否反応でるかな。問題点を指摘されたら、それについてどういう解決方法があるかを考えようぜ。
それから>>337は言い方悪い。便所の落書きに言い方も糞もないけど、もし俺が作者なら337の言い方はやる気なくす。もし337が上司なら喧嘩してる。
ただいってることは同意。テーブルの仕様変更がModelに自動的に反映されるなら、同じことがViewでもできないかと考えるのは自然なこと。
それがわからず拒否反応示すだけの奴らは想像力が欠落してるかわいそうな奴らだからほっとけ。
0360nobodyさん
2007/05/05(土) 18:39:07ID:???そっちでフィールド追加で自動的にViewにも反映されるしさ、
んである程度プロトタイプができたら自分で手入れてくために
ジェネレータの方で生成してコード加えていくわけでしょ
全部自動で処理しきれないところも出てくるから手を加えていく
そんなのはちょっとrails触った事あるなら誰だって分かる事だろう
一理あるも何もどう見たって>>337も>>358も
アジャイルアジャイル言ってる奴もrailsを
使ったことないようにしか見えねーよ
0361nobodyさん
2007/05/05(土) 19:03:33ID:???特にユーザーなんか、見せて最初に指摘するのは、
”見た目”だぞ。
見た目ダサくて英語ですけど、ちょっと使ってみて
感想教えてくれませんか?じゃ通じません。
エンドユーザー交えて仕事した事ありませんね?
0362nobodyさん
2007/05/05(土) 20:53:11ID:???アジャイルとは、データベースを変えると、すべて良きにはからってくれる機能だと勘違いし、
Railsスレに文句を「提案」すれば、解決方法をだれかが実装してくれると勘違いする。
ずいぶん人任せ、フレームワーク任せだなー。
まあ、ぜんぶ、同一人物なんだろうけど。
Rails作者のDHHの言葉をmatz日記から引用するから、ちょっと考えたほうがいいよ。
「RubyもRailsもオープンソースだし、簡単に手を入れられるんだから誰かが自分の問題を解決してくれないか、
口をあけて待ってるんじゃなくて自分で解決して世界に貢献したらいいのに」
0363nobodyさん
2007/05/05(土) 21:19:41ID:???どれを見てそう思ったんだ?
つまり、お前が勘違いしているだけじゃん。
viewを一旦作った後でもscaffoldのように
DBにフィールドを追加したら、それがすぐに反映されるといいだろ
としか、どこにも書いてない。
0364nobodyさん
2007/05/05(土) 21:20:56ID:???こんなことも思ってないし。
なんだこいつ。自分一人が、勘違いして空回りしているだけかよ。
0367nobodyさん
2007/05/05(土) 21:37:23ID:???ここはRuby on Railsに関する事なら
なんでも書いていいところですが?
それとも、お前が気に食わないことを言ったら駄目と
どこかに書いてあるのか?
意味。じゃあお前が書き込んでいる意味は?w
■ このスレッドは過去ログ倉庫に格納されています