トップページphp
1001コメント336KB

【Ruby】Ruby on Rails Part6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/10/24(金) 17:46:53ID:???
■前 Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1207425569/

■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/

■参考スレ
Rubyについて Part 33
http://pc11.2ch.net/test/read.cgi/tech/1223709050/
Ruby 初心者スレッド Part 22
http://pc11.2ch.net/test/read.cgi/tech/1221467121/
0664nobodyさん2009/03/20(金) 00:54:53ID:???
>>653
数十人→数人
何ヶ月→1〜2ヶ月

何十倍なんだよ。計算もできない低脳が。
おまえがくるんじゃねーよ。
「現場のエンジニア」でひとくくりにするなwアホ。
0665nobodyさん2009/03/20(金) 00:58:39ID:???
なんだこのゆとりは。
こんなとこ来てないでちゃんと学校の勉強しろ。
0666nobodyさん2009/03/20(金) 01:09:49ID:???
Javaが登場してオブジェクト指向が注目を集めたときも、
生産効率が○○倍になったとかやってたな。結局は能力。
例外なく生産効率を劇的に押し上げたのはRDBくらいかな。
0667nobodyさん2009/03/20(金) 04:46:56ID:???
rubyも登場した頃は、生産効率が○○倍になったとかやってた。結局は能力。
何も変わらない。

億単位の案件取って儲けたほうが給料いいのに、数百万の案件にして給料安くしてるから底辺だろ。
0668nobodyさん2009/03/20(金) 06:40:32ID:???
>>667
億単位の案件て何人月くらいになるん?
0669nobodyさん2009/03/20(金) 07:23:33ID:???
割り算すれば出るだろ
0670nobodyさん2009/03/20(金) 09:54:50ID:???
億単位の案件なんて責任ばっか多くてやる気しねぇわ。
底辺でも数百万乱発の方がいいな。
少人数で好きなようにできるし。
0671nobodyさん2009/03/20(金) 10:17:50ID:???
生産性○倍とか幻想。

実際は、仕事量○倍が関の山w
0672nobodyさん2009/03/20(金) 12:03:36ID:???
>>663
500万の損益って言ったら益に決まってるだろ。
損なら、マイナス500万の損益か、500万の損失だ。
0673nobodyさん2009/03/20(金) 12:13:59ID:???
開発だけ見れば生産性は確かに上がるよね。
仕事量n倍は無いな。

うちは早めに仕上げてお客さんに使ってもらうようにしてるんだけど、
そうするとちょこちょこ修正依頼や仕様変更が来る。
期間内でお客さんと一緒に細かく詰めて、仕上げて行く感じ。
同じくらいの工数をかけても、お客さんの満足度は高いと思う。

あと政府系とか金額が大きい案件は、そんなに技術要らなかったりする。
金額が大きい割に暇だった。
儲けられても、技術的にはあまり面白くない感じ。
0674nobodyさん2009/03/20(金) 13:59:42ID:???
研修でJavaを詰め込んだだけのエンジニアの頭数を大量投入して人月費を稼ぎ、
客に買わせたベンダー謹製のバカ高いプラットフォーム上で、ネームバリューで
取ってきた技術力のいらない案件で何億も請求するような仕事のやり方がこの先
も続くと考えられるエンジニアはおめでたいな。

まあでもここに来て情報収集してるだけマシかもね。

自分で技術書を買うこともしなければ、新しく言語を身につけようなどという考えを
持ったこともないエンジニアが上記のような会社では大半を占めているようだが、
さっさとそういうのは淘汰されてほしい。
0675nobodyさん2009/03/20(金) 14:11:00ID:???
>>674
3年先まで有効であるだけで充分だ
見下さないと精神の安定を保てないならやめちまえ
0676nobodyさん2009/03/20(金) 14:43:05ID:???
3年やってダメになったら他にジョブチェンジすればいいと考えてるような
君と違って、こっちは一生エンジニアでやっていこうと思ってるからね。
そんくらいでやめられないんだよ。
0677nobodyさん2009/03/20(金) 14:58:53ID:???
そういう泥臭い話はマ板で。
0678nobodyさん2009/03/20(金) 16:20:14ID:???
>>676
童貞はこれだから困る
0679nobodyさん2009/03/20(金) 17:23:46ID:???
>>676
よう初心者
0680nobodyさん2009/03/20(金) 17:31:31ID:???
ピュッピュッ
0681nobodyさん2009/03/20(金) 18:55:04ID:???
エンジニア()笑
0682nobodyさん2009/03/20(金) 19:47:02ID:???
条件反射的に煽るしか能のないゆとり脳がたくさん湧いてるな。
いいから涙拭けよ。そんなに慌てずに、括弧のズレくらい投稿前に確認したほうがいいぞ。
0683nobodyさん2009/03/20(金) 20:10:53ID:???
・・・
0684nobodyさん2009/03/20(金) 20:30:24ID:???
涙 拭 け よ
0685nobodyさん2009/03/20(金) 21:04:41ID:???
いくら拭いても止まらないよ
0686nobodyさん2009/03/20(金) 21:12:27ID:???
クリステンセンくらいは読んどいたほうがいいぞ。おもちゃと思われてた技術が市場をひっくり返した事例がたくさんある。
0687nobodyさん2009/03/20(金) 22:01:39ID:+2bPeyVS
そういえばJSP/Servletも当初はおもちゃおもちゃと冷笑されていたな
いやたしかに最初の頃は本当にひどかったが
0688nobodyさん2009/03/21(土) 03:01:08ID:???
今のうちに億稼いでおいたほうが、いい暮らし出来るだろ。
数百万の案件なんてピンハネだけして下請けに丸投げしたほうが儲かる。
0689nobodyさん2009/03/21(土) 09:32:16ID:???
すばらしく日本のゼネコンSIer的思考の典型で清々しいが、なんでここに
来てるのかがわからん。
市場の変化を感じられるポジションにいないんだろうが、3年先と言わず
すでにそのやり方は通用しなくなりつつあるよ。

ttp://japan.cnet.com/blog/0026/2009/02/27/entry_27020722/

秋田でベンダーが2億円と見積もりしたIP電話の導入を、市の職員が
オープンソースを活用することで800万で構築した例がちょっと前に
騒がれたが、今後見積もりの際に客からああいう例を引き合いに
出されるようになるよ。

通常、不景気の影響はIT業界に押し寄せるのは1年のブランクが
あるというが、今回は半年とたたずに影響が出てる。
あと半年もしないうちに、大手のネームバリューだけで億の案件が
受注できる時代は、もう過去のものになってるよ。
0690nobodyさん2009/03/21(土) 10:04:53ID:???
Rails won
ttp://withoutane.com/rants/2009/03/rails-won

信者のおかげかー。
0691nobodyさん2009/03/21(土) 10:21:40ID:???
RubyやRailsは、大手SIerから中小が客を奪うための武器になるとおも。
まあせいぜい今の内に、下請けが使うおもちゃとバカにしていてくれ。
そのほうがやりやすい。
0692nobodyさん2009/03/21(土) 11:08:41ID:???
馬鹿が一人でレスしてるな…
0693nobodyさん2009/03/21(土) 11:26:02ID:???
現在のrailsはunstableだから、いくら開発効率が高くてもrailsのバージョンアップによる保守で帳消しになってしまう。

railsがstable(になることあるのか疑問だが)になったらおもちゃから脱却できるとは思うが。
0694nobodyさん2009/03/21(土) 11:38:27ID:???
>>676
他の業種にジョブチェンジも悪くないなと思ったんだが、
エンジニア失格ですか。
0695nobodyさん2009/03/21(土) 11:41:27ID:???
うちは稼働中のやつで1.2.6から2.2まで面倒見てるけど
それなりになんとかなるもんだよ。
0696nobodyさん2009/03/21(土) 11:51:01ID:???
2.2→2.3の一番の変更点は、デフォルトのコントローラが application.rb から
application_controller.rb に変わったとこだろう。

いきなり意味不明なエラーが出るので、この変更点を知らないとハマる。
0697nobodyさん2009/03/21(土) 12:18:16ID:???
>>696

つ rake rails:update
0698nobodyさん2009/03/21(土) 12:35:40ID:???
>>697
なるほど。そんな便利なコマンドがあったのか。
サンクス。
0699nobodyさん2009/03/21(土) 14:38:08ID:???
>>695
そりゃ力技なりで「なんとか」なるけどさ、
その必要がない選択肢があるからねー。

なんとかしなくても RoR で出来るようになると LoL
0700nobodyさん2009/03/21(土) 15:39:31ID:???
>>690
口は悪いけど弱気な奴だな。
0701nobodyさん2009/03/21(土) 17:48:54ID:???
説得するのに必要なことはテスト方法だと思う
0702nobodyさん2009/03/21(土) 21:37:28ID:???
2.2.2→2.3.2にしたらvalidates_uniqueness_ofに
日本語を格納しているカラムを指定するとSQL実行エラーで例外が発生するになったので、
$RUBY_HOME/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/validations.rb
を見たら、こうなってた。
729  value = column.limit ? value.to_s[0, column.limit] : value.to_s
この部分をとりあえず、
value = column.limit ? value.to_s.split(//)[0, column.limit].join : value.to_s
と書き換えて対応した。
varchar(255)→255文字を意味するDBMSの場合だけど(PostgrSQL+UTF-8)とか。
varchar(255)→255バイトという意味になるDBMSなら、単にvalue.to_sだけするほうが良さそう。
07037022009/03/21(土) 21:43:36ID:???
ちなみに上記のエラーの根本的な原因はコレだと思う。
$KCODE = 'u'
require 'jcode'
s = 'テスト'
s[0,5]
=> "テ・"
文字化けというか文字が壊れた状態でSQLが投げられて、
SQLの構文エラーが発生するみたい。
0704nobodyさん2009/03/21(土) 22:10:22ID:???
また互換性が・・・
0705nobodyさん2009/03/21(土) 22:25:54ID:???
>>703
Rubyのバージョンはいくつなの?
0706nobodyさん2009/03/21(土) 22:44:43ID:???
>>705
1.8.7-p72。
スクリプトのエンコーディングはUTF-8。
ところで、文字列の扱いってエンコーディングごとに異なるのかな。
いつもUTF-8しか使っていないから、以下の動きを想定していつもコーディングしてる。

$KCODE = 'u'
str = 'あいえうお'
=> "あいえうお"
str.split(//)
=> ["あ", "い", "え", "う", "お"]
str.split(//)[0, 2]
=> ["あ", "い"]
str.split(//)[0,2].join
=> "あい"
str[0,2]
=> ""
0707nobodyさん2009/03/21(土) 22:48:46ID:???
1.8系でstr[0,4]とかやるとバイト基準になるから、
バイト数が違うとダメだろうな。
1.9系なら文字基準だけど。

試してないからなんとも言えないんだが、
>>702を見る限りRails2.3はRuby1.9系がふさわしいな。
0708nobodyさん2009/03/21(土) 22:55:50ID:???
>>707
DBMSがvarchar(255)→255バイトまたは255文字という
感じで仕様が分かれているから、あえてここは何もしないほうがいい気がしてきた。

実際、2.2.2のvalidates_uniqueness_ofの定義は同じ729行目でこうなっていた。
729 value = value.to_s
0709nobodyさん2009/03/22(日) 04:17:57ID:???
中小ITだと、客が相手にもしてくれないけどな。
0710nobodyさん2009/03/22(日) 05:42:49ID:CRGV4RkC
担当者によるな
でその担当者が辞めると同時に仕事もなくなる
0711nobodyさん2009/03/22(日) 05:56:27ID:???
スレ違いの話題をまだ続けるのか・・・
0712nobodyさん2009/03/22(日) 11:30:23ID:???
今2.1使ってるけど3が出るまではバージョンアップしない予定
夏頃には出るんですよね?
0713nobodyさん2009/03/22(日) 11:43:11ID:???
Merbとの統合という大手術になるから、その頃安定して使えるとは思えんな。
5月のRailsConfでβという希望的観測だったかな。

正直な話、新規プロジェクトでない限りあえて最新を追いかける必要もないんじゃ。
0714nobodyさん2009/03/22(日) 13:32:32ID:???
提案に行って、最終2社あたりまで残って、
競合の事を聞いたら向こうもRailsだったみたいなことが出てきた。
結構みなさんがんばっているんだな。
0715nobodyさん2009/03/22(日) 13:50:19ID:???
Rails本体はともかくプラグインが3に対応するのに時間がかかりそう。安定するのは年末ぐらいかな
0716nobodyさん2009/03/22(日) 14:33:05ID:???
3 が安定する前に、大掛かりな修正を加えた 3 の軌道修正をするための 3.1, 3.2 を追いかけないといけないだろうな。
0717nobodyさん2009/03/22(日) 20:12:44ID:???
手元で最新版の機能を使えるのに、運用で使えないのはストレス堪ると思うが。

値段ではJavaの案件は高額だしな。RoRのほうが残るだろう。
0718nobodyさん2009/03/23(月) 00:41:13ID:???
最新の機能ってそんなに需要あるのかな?
それよりメモリ食いを押さえる方が喜ぶ人は多いと思うんだ

機能が肥大化して習熟コストが高くなるのも歓迎されないと思う
0719nobodyさん2009/03/23(月) 04:41:04ID:???
>>717
言語指定されてる時点で、下っ端なのが分かるな。
0720nobodyさん2009/03/23(月) 04:59:55ID:???
>>718
開発効率が上がるような機能であれば歓迎するけどね。
2.1から使えるようになったnamed_scopeはかなり重宝してる。
0721nobodyさん2009/03/23(月) 19:32:08ID:???
今から始めるなら2.2でいいの?
0722nobodyさん2009/03/23(月) 20:17:29ID:???
まあ2.2か2.3じゃね
どっちにしろ日本語リソースのみでは勉強にならないけどね
0723nobodyさん2009/03/23(月) 20:34:54ID:???
日本語リソースってなんじゃ?
0724nobodyさん2009/03/23(月) 21:14:00ID:???
ここでのリソースは参考資料・情報源といった意味でしょうな。



0725nobodyさん2009/03/23(月) 21:55:47ID:???
今さら2.2はないだろ常考。
Rack対応やらi18nやら重要なアップデートが多いので、これを使わない手はない。

そしてRuby1.9.1にRails2.3.2。これ最強。
しかし日本語の資料がほとんどないという諸刃の剣。素人にはお薦めできない。
0726nobodyさん2009/03/23(月) 21:59:07ID:???
Ruby1.9って開発版だろ。
0727nobodyさん2009/03/23(月) 22:24:53ID:???
はあ?
0728nobodyさん2009/03/23(月) 22:29:25ID:???
>>726
1.9.1は安定版
0729nobodyさん2009/03/23(月) 22:35:45ID:???
使ってるライブラリが1.9.1対応するまでは1.8.7つかっとけ。

hpricotとrspecが対応したから個人的にはそろそろ移行のタイミング。
0730nobodyさん2009/03/23(月) 22:48:10ID:???
今からやる初心者に2.3勧めない方がいいんじゃないかな
0731nobodyさん2009/03/23(月) 23:48:39ID:???
本がないから?
0732nobodyさん2009/03/24(火) 01:30:01ID:???
>>724
それはソースじゃなくて?
0733nobodyさん2009/03/24(火) 03:41:22ID:???
1.9.xは互換性無いからな。
普通は偶数のほうが安定板。1.9.2を待つのが正しい。
0734nobodyさん2009/03/24(火) 08:47:33ID:???
>>732
リソースであってる。
>>733
そんなコンベンションはとっくになくなっている。
0735nobodyさん2009/03/24(火) 10:05:09ID:???
そんなに急がないなら5月に出るRails 3.xから追いかけたほうがいいかも
0736nobodyさん2009/03/24(火) 11:03:13ID:???
きりがないからおれはもう追いかけてる
0737nobodyさん2009/03/24(火) 13:17:24ID:???
下痢した
0738nobodyさん2009/03/24(火) 23:49:43ID:???
常に片思いも辛いな。がんがれ。
0739nobodyさん2009/03/26(木) 09:15:38ID:???
きもちわるい…
http://www.atmarkit.co.jp/news/200712/25/ruby01.jpg
0740nobodyさん2009/03/26(木) 20:24:41ID:gX082xc4
そうか?普通のおっさんだと思うがなー
でもDHHはガチのイケメン
0741nobodyさん2009/03/26(木) 23:44:57ID:???
アニメと漫画しか見たことがないんだろ
0742nobodyさん2009/03/26(木) 23:55:23ID:???
kokomomousuguitendesune
0743nobodyさん2009/03/27(金) 09:30:58ID:???
>>741
いや、そりゃお前は毎日鏡で見慣れてるからいいだろうけど
0744nobodyさん2009/03/27(金) 09:48:00ID:???
脳みそないよりは、はるかにいいけどな
0745nobodyさん2009/03/27(金) 10:28:27ID:???
そんな書き込みに食いつくなよ恥ずかしい。
0746nobodyさん2009/03/27(金) 15:31:41ID:???
簡単なブログを作りました。
自分一人が使うなら一覧、新規作成や編集はこんな感じで済みます。

http://localhost:3000/
http://localhost:3000/new
http://localhost:3000/edit

これを複数人で使いたいと思ってます。
ユーザに tanaka, yamada がいた場合は次のようにしたいです。

http://localhost:3000/tanaka/
http://localhost:3000/tanaka/new/
http://localhost:3000/tanaka/edit/
http://localhost:3000/yamada/
http://localhost:3000/yamada/new/
http://localhost:3000/yamada/edit/

DB も分けたいので config/database.yml も

if 山田なら
 production:
  :
elif 田中なら
 production:
  :
end

としたいのですが、どうすればいいでしょうか。
config/routes.rb を何とかするのだとは思うのですが…。
0747nobodyさん2009/03/27(金) 15:45:06ID:???
すごい構成を考えるな。
複数ユーザーで使うなら「users」テーブルを作るんじゃダメなのか?
0748nobodyさん2009/03/27(金) 15:56:52ID:???
ですね。DB はシンプルにやってみます。

山田、田中的には URL を
はてなダイアリーのようにしたいそうで、
これだけは譲れないそうです。

この URL の実現方法分かりませんか。
0749nobodyさん2009/03/27(金) 15:58:46ID:???
1人1DBとな…

ワロタw

画期的だが、ユーザ数増える毎にDBから悲鳴が聞こえてくるぞwww

普通は>>747のように、
userテーブルとか、blogテーブルと、entryテーブル用意するもんジャマイカ?

ちなみにroutes.rbで書くなら
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
の下に、
map.connect ':user_name/:action' ,:controller=>'コントローラー名'

って感じになるかの?
0750nobodyさん2009/03/27(金) 16:03:14ID:???
なんで下なんだ
0751nobodyさん2009/03/27(金) 16:09:51ID:???
> 1 人 1 DB

数人しか使わないし、
各テーブルの select や書き込み時に
user_name の条件を書くの面倒だなーと思いましたが、
佐藤&鈴木と相談し、正攻法で 1 DB にしてみます。

> map.connect ':user_name/:action' ,:controller=>'コントローラー名'

なるほどー。佐々木&森田と調べてみます。

ありがとうございましたー。
0752nobodyさん2009/03/27(金) 16:26:31ID:???
上から順に評価されて、マッチした所に行くから。

map.connect ':controller/:action/:id'
の上に書くと、

他のコントローラーに送りたくても
map.connect ':user_name/:action' ,:controller=>'コントローラー名'
の方が有効になる


どうしても上に書きたいなら
map.connect ':user_name/:action' ,:controller=>'コントローラー名' , :user_name=>/tanaka|yamada/
と限定させれば有効になるけど。

ユーザ増える度にroutes.rb追加するのはダリィ
0753nobodyさん2009/03/27(金) 16:36:46ID:???
usersテーブルのidカラムを文字列にしちゃえよ
やったことないから実はめんどいのかもしれんが
0754nobodyさん2009/03/27(金) 17:06:22ID:???
1人1DBにする必要が全く無いな。
07557512009/03/27(金) 17:36:57ID:???
>>752
下に書くのでバッチリでした。堀江&三木谷も喜んでます。

>>753
select & update の時に自動で user_name の縛りを入れてくれる仕組みがあるといいんですけどねー。忘れるとエラいことに。
0756nobodyさん2009/03/27(金) 20:12:28ID:1ySFVXM2
質問させてください。

script/console で User.all ようにしてDBのレコードの配列を取得したのですが、このあと同じカラム、例えばidカラムのレコードだけ抽出した場合はどう書けばよいでしょうか??
ご教示いただきたくm(_ _)m
0757nobodyさん2009/03/27(金) 22:11:30ID:???
>>755

user = User.find_by_name(params[:user_name])
articles = user.articles
な話?
>>756

User.find(id1, id2, ...) したいのか
User.all.map(&:id) したいのか
User.find(:all, :select => 'id') したいのか
07587562009/03/27(金) 22:18:50ID:1ySFVXM2
レスありがとうございます。

>User.find(:all, :select => 'id')
これです。

User.all... のような書き方で同じことはできないのでしょうか??
0759nobodyさん2009/03/27(金) 22:55:31ID:???
バージョン管理でgit使ってる人いる?
よほど巨大なプロジェクトでも無い限り、メリットなさそうなイメージなんだけど…
0760nobodyさん2009/03/28(土) 00:54:57ID:???
githubからzipやtarで落とすなんて耐えられないから使ってる
0761nobodyさん2009/03/28(土) 03:23:43ID:???
ユーザいっぱいだと、グーグルクローラが来ただけで氏にそうだなwww
あとユーザ名の所のURLとかから攻略できそう。
0762nobodyさん2009/03/28(土) 03:58:33ID:???
>>758
def all(*args)
find(:all, *args)
end
なので(定義はAR/lib/active_record/base.rb)
User.all(:select => 'id')
と出来るね。
0763nobodyさん2009/03/28(土) 06:52:47ID:fhVnMpn3
>>760
ローカルでコミットできるのでそれだけでも超便利
あとgithub最強
■ このスレッドは過去ログ倉庫に格納されています