トップページ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/
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最強
0764nobodyさん2009/03/28(土) 11:33:05ID:???
何言ってるんですか
gitはgithubの専用クライアントですよ
0765nobodyさん2009/03/28(土) 21:33:38ID:???
Rails+PostgreSQL8.3で始めてみました。

フォームのテキストボックスで何も入力しないで更新すると、
DBにNULLじゃなくて空文字列が入ってくるんですが、
これは設定でNULLにできないんでしょうか。

コントローラーで変換してもできると思うんですが、
毎回同じ修正をするのはバグがでそうなので。
0766nobodyさん2009/03/28(土) 21:57:39ID:???
>>765
そこはモデルで指定だろ。
0767nobodyさん2009/03/28(土) 22:06:48ID:???
例外なく空文字列が入ってきたらNULL(nil)に変換したいので、
ApplicationControllerに定義すればできるかなと。
モデルならなおいいんですが、すべてのカラムで毎回指定するのはちょっと。。。

でも、考えてみたら数値型や日付型に空文字列が入ってきたらNULLになるので、
どこかにモデルの設定があるのかなと思いました。探してみます。
0768nobodyさん2009/03/29(日) 02:28:12ID:???
Web系やってるやつなんて、nullと空文字の区別なんてほとんどしてないよ
区別があるってことすら知らないやつも結構いると思う
0769nobodyさん2009/03/29(日) 02:45:12ID:???
そんなわけないだろw
0770nobodyさん2009/03/29(日) 03:57:30ID:???
>>759
他の連中をgitに移行させようとするのが面倒なので
とりあえず自分だけ git-svn 使って我慢してる
0771nobodyさん2009/03/29(日) 05:33:23ID:SRpsbxpf
Web系やってるやつなんて、nullと空文字の区別なんてほとんどしてないよ
区別があるってことすら知らないやつも結構いると思う
0772nobodyさん2009/03/29(日) 06:00:30ID:???
phpレベルだしな。DBAの常識はコボラー並みに通用しない。
0773nobodyさん2009/03/29(日) 10:04:29ID:7sf+X/id
WEBアプリはNULLを扱うより空白を使った方が色々と使い勝手がいいよ
内容の空チェックには「hoge.blank?」を使えばおk
0774nobodyさん2009/03/29(日) 10:39:06ID:???
色々の具体的な例ってどんなだ?

blank?を使うのは、データをRailsで取得したあとだろ。
取得したくない場合は、「is not null」とか条件をつけたりするが、
NULLと空白を意識してないのに、両方混在するときついんだが。
「論理的には同じ意味でーす」みたいな感じだから条件が増えてばかにならん。

それにユニーク制約とかどうするのよ。
NULL許可でも空文字で入ってきたらはじかれるじゃん。

でもそんなことを意識してるWebプログラマーは少数派。
0775nobodyさん2009/03/29(日) 10:44:52ID:???
>>774
仕事でWebやっているけど、
そんな連中には会ったことないぞ。
プログラム未経験の新卒くらいじゃないのか?
07767752009/03/29(日) 10:46:50ID:???
ん、なんか書き方おかしいな。
NULLと空白の違いを意識しないやつには会ったことないって意味ね。
しかし、本当にそんな変なやついるのかな。
素人以外で。
0777nobodyさん2009/03/29(日) 10:53:35ID:???
>>776
そういうレベルの人間がいるような環境で仕事してるんだろ。
0778nobodyさん2009/03/29(日) 13:38:45ID:???
俺もnullと空文字列を同じものだなんて捉えてる奴は見たこと無いな
大学になら居たかも知れん
0779nobodyさん2009/03/29(日) 14:08:29ID:???
PHPだとどっちもfalseだからね。
PHPしか知らないエンジニアなら、区別がつかんかもしれん。
0780nobodyさん2009/03/29(日) 14:33:09ID:???
じゃあPerlしか知らないエンジニアは 0 と "" と undef の区別がつかないんだね
0781nobodyさん2009/03/29(日) 14:38:02ID:???
区別してるって言ってるやつは、DBにどっち入れてるの?
0782nobodyさん2009/03/29(日) 14:39:19ID:???
NULLの伝搬はいやらしいから、可能なものはNOT NULLがいいなぁ。
0783nobodyさん2009/03/29(日) 14:41:57ID:???
×伝搬(でんぱん)
○伝播(でんぱ)
0784nobodyさん2009/03/29(日) 14:45:44ID:???
NULLの伝播って意味わからん。
伝播ということはどこかをNULLにするとほかに波及するってことか?
0785nobodyさん2009/03/29(日) 14:47:11ID:???
Rubyにはnilがあるじゃんよ
0786nobodyさん2009/03/29(日) 15:02:00ID:???
migrationファイルで、

t.string hoge :null => false
t.string hage :default => nil

みたいに、nullとnilの表現が混在して、一瞬どっちがどっちだったか
まぎらわしくなることがある。
0787nobodyさん2009/03/29(日) 17:58:33ID:Uytn6itq
今度初めて Rails を使ったプロジェクトにアサインされることになりました。(Rails 2.1.1)
(自分は、Rails や Ruby は未経験)
本を一冊買おうと思うのですが、どれがいいでしょうか?

Ruby の本と、Rails の本をそれぞれ1冊ずつ買おうと思います。
(Ruby の本はム板の「Ruby 初心者スレ」で検討しています。)

自分は Java は経験が長く、PHP / C / Perl はある程度書けます。

amazon で調べると
「RailsによるアジャイルWebアプリケーション開発(第二版)」が定番の本らしいですが、
この本は Rails 2.0 系に対応してないのですよね?
できれば 2.1 系に対応している本がいいのですが、(そうでなくても)いい本があれば教えてください。
0788nobodyさん2009/03/29(日) 18:23:57ID:???
>>787
http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
その本の原書第3版が出たばかりで、これは当然2系を扱っている。
(URLのrails3てのはrails ver3じゃなくて、この本の第3版という意味)

英語が気にならないならどうぞ。

0789nobodyさん2009/03/29(日) 18:24:36ID:???
対応してなくても、初心者にとってそれ以上の本は今のところない。
2系の追加機能については最後のほうでちょこっと触れてたはず
なので、補完しながら読めば問題ない。
0790nobodyさん2009/03/29(日) 18:36:08ID:???
一から作るのか既存のシステムのメンテか、
教えてもらえる人がいるのかいないのかで違ってくるんじゃないだろうか。
どっちにしてもリファレンス本は別に1冊あった方がいいよ。

リファレンスなら、

Railsレシピブック(ソフトバンク) ←ものすごく無難な感じ
The Rails Way(翔泳社) ←少しがっつりやりたい人向け。RSpecを使うならこれ
Ruby on Rails 逆引きクイックリファレンス(毎コミュ) ←割と実戦的

があるね。一応どれも2.0に対応してるよ。
07917872009/03/29(日) 18:53:47ID:Uytn6itq
レスどうもありがとうございます。
いま amazon を必死に眺めてますが、
「10日でおぼえる Ruby on Rails入門教室」が気になってきました。
あと少ししたら本屋に行ってこようと思います。

>>790
新規システム開発で、プロジェクトそのものは製造フェーズに入り始めたところらしい。
人が足りない&デスマになってきたのでアサインされたそうです。

まだ中身を見ていないのですが、
> Ruby on Rails 逆引きクイックリファレンス(毎コミュ) ←割と実戦的

これは逆引きとのことですが、これを使って勉強するのは、ちょっと目的が違いますか?
0792nobodyさん2009/03/29(日) 19:56:48ID:???
前提知識がないところに参加ってのは、ブルックスの法則を実体験する羽目に
なるおそれがあるから、基本から予習しておいたほうがいいな。
07937582009/03/29(日) 20:02:37ID:P4wqMwA6?2BP(0)
>>762
おお!ありがとうございます!
0794nobodyさん2009/03/29(日) 20:30:33ID:???
>>779
それはあいまいチェックの場合だろ===でやれば通らない
0795nobodyさん2009/03/29(日) 21:31:31ID:???
>>791
製造フェーズに入り始めなのにデスマになりかけとはご愁傷様

リファレンスは部分部分を解説してるから、
全体が分からないときついと思うよ。
逆引き〜はいい本だと個人的には思うけど、それだけで勉強するのは無理だと思う。


「10日でおぼえる Ruby on Rails入門教室」は、
徹底してテスト駆動開発のスタンスをとってて、
Railsでの開発の基礎固めにはいいと思うよ。
デスマだとテスト駆動とか無視される可能性大だけど。

ちょっとだけどRubyの基礎みたいなものも触れてるから、
買うならはじめはそれ1冊をやるといいかもね。

欠点は

・1.2系が対象。2系との差は意外と無視できない。
違いを知らないとスキャフォールドの生成すら苦労する。

・目次が不親切。リファレンスとしては使えない
「あれやるのってどこに書いてあったっけ?」と思って後から探しても見つからない。

・広範囲にやりすぎて、まとまりがない
7,9,10日目はいらないと思う。「ゲームアプリの作成」とかいらんちゅーの。
その代わりActiveRecordとかについて、もっと突っ込んだりしてほしかった。


Rubyそのものの入門書はオライリーの「はじめてのRuby」がダントツおすすめ。
多言語の経験ある人むけだけど、Javaメインで結構あるみたいだから。
0796nobodyさん2009/03/29(日) 22:23:24ID:???
電波の伝播
0797nobodyさん2009/03/29(日) 23:24:14ID:???
ここのスレの住人に聞いてもあまりいいものは得られないぞ
本気でRailsやってるやつは少ないと思う。過去のレス見てみ
ほとんどは趣味レベル
0798nobodyさん2009/03/30(月) 04:15:36ID:???
rubyでデスマってる時点で危険だよな。どんだけ低レベルなのかと。
あとRoRなんて採用しちゃって運用も大変だと思う。

ゲームは販促上は重要。実践的ではないにしろ。
0799nobodyさん2009/03/30(月) 08:53:57ID:???
RailsやRubyだからとか、言い訳するのは確かにレベル低いね。
0800nobodyさん2009/03/30(月) 11:17:58ID:???
>>799
じゃあ全部Cでやればいいじゃん

Cでなんてありえねーよ、と思ったのなら、それは道具の必要性の傍証
08017872009/03/30(月) 14:13:17ID:???
>>795 詳しいレスどもありがとうございます。
本屋で「10日〜」と「RailsによるアジャイルWebアプリケーション開発」を
読み比べてましたが、2冊買ってもそこまで読む暇もないだろうということで、
「Railsによるアジャイル〜」を買ってきました。
「10日〜」のほうが読みやすそうだったのですが、 >>795 さんの言うとおり
・こっちも 1.2 系準拠だったのと、最後の方は業務で使わなさそうと思った
・scaffold や migratoin が知りたかったが、「Rails によるアジャイル〜」のほうが載ってるっぽい
・「Rails によるアジャイル〜」も、前半部分は、「10日〜」と同じようにチュートリアル形式で
 勉強していけそう
「逆引き〜」は、もうすこし RonR がわかってから、必要であれば読もうと思います。

あと多少スレ違いですが、Ruby そのものの入門書は、「初心者スレ」でも好評だった
オライリーの「初めてのRuby」を買ってきました。

>>798- Ruby でデスマ
すでに加入している人に聞いたところ、いまデスマっている要因は、上流工程によるもの
(設計書が全然fixしない。こっちのヒアリングの仕方が悪いのか、顧客が無理を言っているのかはわからないけど)
だそうですが、RonR(というかRuby)経験者もほとんどいなく、1機能だけ先行して開発しているが、
これも全然うまくいっていないそうです。

上流工程がうまくいっていなくても、開発に入った段階でリスクが少ない技術を
選んでいれば(自分だったら Java になりますが)、ある程度リスクや工数を読めますが、
今の状態だと、開発に入ってからも全然安心できない、と言っていました。

余談ですが RonR を指定してきたのは顧客だそうです。
# それを言い訳にしたいというわけではない。あきらかに案件に RonR が合っていないのならば
# 顧客にそういうべきだし、そもそも自分たちが RonR でやれる自信がないのであれば
# 受注しないほうがいい

まぁこれを機に RonR が覚えられればと思って、大変そうだけどがんばろうと思っています。
0802nobodyさん2009/03/30(月) 15:50:15ID:bIKocM1V
>>774
ちょっと勘違いしてないか?
テキストエリアの値が空文字でDBに保存さてれるのは、未入力の場合該当パラメータが空文字で送られてきてるから
該当カラムの値をnilにして保存すればDBにはNULLが格納される
なぜ未入力が空文字で送られてくるのかというと、そのほうが色々都合がいいから

・nilを許可する場合、メソッド実行前にnilチェックが必要になる
・空で更新されたのか、本当にNULLなのか見分けがつかない
・IS NULL検索時にインデックスがきかないケースが存在する
・NULLの扱いがDBの実装によって異なる

俺からしたら空白で統一されているものを、なぜわざわざ
コアをいじってまでNULLを混入させようとするのか謎なんだが
ユニーク+NULL許可というレアなケースを実現したいならなら、その場合だけ
フィルタ使ってnilに置き換えたらいいんじゃない?
0803nobodyさん2009/03/30(月) 16:39:00ID:???
・nilを許可する場合、メソッド実行前にnilチェックが必要になる

すまん、これよくわからん。なんのメソッドだ?
バリデーションが必要ということか?:allow_nilオプションのことだろうか。

・空で更新されたのか、本当にNULLなのか見分けがつかない

実際はNULLかもしれないのに、
空が入ってくると見分けがつかないとも言える。実際混乱する。
データがWeb経由のみから入ってくるとは限らない。

たとえば、
select count(column_name) from table_name
とやると、column_nameの値がNULLの時はカウントされない。
有効なデータ件数のカウントすらつまらん条件を入れることになる。間違いのもと。

・IS NULL検索時にインデックスがきかないケースが存在する

ビットマップインデックスならきく。
B-Treeの場合、カーディナリティーが重要になる。
絞り込み条件によってデータがざっくり15〜20%くらいまでは最低でも絞り込まれないと、
フルスキャンの方が速くなる。
形だけNULLにするとインデックスがきくことによって逆に遅くなったりする。

・NULLの扱いがDBの実装によって異なる

Oracleあたりは両者を区別してないね。というより空白はNULLで格納される。
それと空白が都合がいいという結論とどう結びつくのかわからん。
むしろ空白だと思ってたのに、NULLが入ってましたなことになるんだぞ。
where column_name = '' とかやっても絞りこまれんぞ。

Web系は特にDBまわりの扱いがおおらかすぎ。データが汚いと余計な苦労が増える。
0804nobodyさん2009/03/30(月) 16:40:11ID:???
形だけNULLにするとインデックスがきくことによって逆に遅くなったりする。

形だけNULLを空白にするとインデックスがきくことによって逆に遅くなったりする。
0805nobodyさん2009/03/30(月) 17:32:33ID:???
ActiveForm 以外にフォームを作る DSL はありませんか?

できれば YAML, 配列, ハッシュなどで記述できると嬉しいです。
0806nobodyさん2009/03/30(月) 23:07:22ID:???
>>801
がんがれ
0807nobodyさん2009/03/31(火) 00:58:24ID:1AlmVzbD
書籍を見て以下のようにコントローラとモデル、ビューも書いたのですが、
salable_itemsが見つからないと怒られます
コントローラに、@products = Product.find(:all, :order => "date_available desc")
のように記載すると動作します。
アクセス修飾子等考えたのですがわかりません、何が原因なんでしょう?
Railsは2.1を使っています。

class StoreController < ApplicationController
def index
@products = Product.salable_items
end
end

class Product < ActiveRecord::Base
def self.salable_items
find(:all, :order => "date_available desc")
end
end
0808nobodyさん2009/03/31(火) 01:23:58ID:???
コントローラは一部ソースを切り出してるのかなと思うけど、
モデルはそれで全部なの?実際にブラウザで確認した結果、そのエラーが出たのかな?
0809nobodyさん2009/03/31(火) 01:42:31ID:oWRq8GzN
>808
ブラウザで確認した結果上述のエラーがでました。
モデルでは、入力された値のチェックを行っていますが
StoreコントローラではProductに入力は行われないので省きました。
情報を書ききれてなくて申し訳ないです。
0810nobodyさん2009/03/31(火) 01:48:09ID:???
というか、エラーメッセージとスタックトレースはいずこ。

コード的には間違ってないと思う。(salableはsellableのような気がするけど)
0811nobodyさん2009/03/31(火) 02:08:55ID:???
>>809
暇だからproductsテーブルを作って試してみたが普通に動くよ。
CentOS5.2、Ruby1.9.1、Rails2.3.2。
コントローラで元の「@products = Product.all」をコメントアウトしたけど、
コメントを入れ替えれば挙動も当然かわる。

推測ではモデルのほかの部分が問題なんじゃないだろうか。
可能な限り情報を出さないと、ほかの人間からは分からないと思う。
自分では問題ないと思ってる部分が問題なことは多いからね。


***** おれが試したソース *****

コントローラ(一部、変更部分は完全コピペ)

def index
# @products = Product.all
@products = Product.salable_items

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end

モデル(全部、完全コピペ)
class Product < ActiveRecord::Base
def self.salable_items
find(:all, :order => "date_available desc")
end
end
0812nobodyさん2009/03/31(火) 02:23:02ID:???
脱線だけど、2.1ならnamed_scopeで書くことも出来るね。
0813nobodyさん2009/03/31(火) 08:50:54ID:???
>>812
たいしたことない省力化のようにみえて、何気に便利だよな
0814nobodyさん2009/03/31(火) 13:01:11ID:ZMAhYize
初心者質問すいません。
viewからcontrollクラスのメソッドを使うことってできないのでしょうか??
例えば、ApplicationControllerクラスに現在自分がログインしているユーザーのIDを取得するメソッドを定義しておいて、それをviewから使いたいようなことがあると思うのですが、どうするのがベストなのでしょう??
教えて頂けると幸いです。
0815nobodyさん2009/03/31(火) 14:53:49ID:???
コントローラでインスタンス変数に代入しておく。
0816nobodyさん2009/03/31(火) 15:01:58ID:???
restful_authenticationとかを使ってるなら、
current_user.id みたいにヘルパで取れる
0817nobodyさん2009/03/31(火) 18:35:45ID:???
コントローラーで
@hoge = now_login_user
みたいにインスタンス変数に入れておけばViewで以下のように使える
<= @hoge >
0818nobodyさん2009/03/31(火) 19:09:06ID:???
helper_method :my_method
08198092009/03/31(火) 21:29:42ID:???
>811
文法的にはあっているということでまるまる書き直してみたら動きました。
有難うございます。
0820nobodyさん2009/04/01(水) 03:46:07ID:i7k4rzu/
>>803
・nilチェック
アプリケーション層の話だな。フォームの未入力項目がnilでくるなら、
カスタムバリデーションを書くときになどに、常にそれを想定して
メソッドを呼び出す前にnilチェックをする必要がある。
空文字でくるなら、その必要がない(不正なデータなので例外で一括キャッチできる)

・count
NULLを表すデフォルト値を省くのがそれほど複雑な条件とは思えないし、
明快さを望むなら有効/無効を表すフラグを持てばいいかと

・NULLの扱い
意図としては、アプリ層のロジックがDBの実装に依存するのはいやよネーという話だったんだが
Oracleが手元にないので確かめられないけど、SQL直たたきでないfindをつかって
column_name = '' でNULLを引っ掛けられませんか?
だとすると空文字/NULLでレコードの有効無効を判断する処理はDB依存になるな・・・
面倒なorz

しかし、オブジェクト指向的(というかRuby的?)には空文字とnullが別物というのは自然なように思えるんだが、
DBな人にはそうでもないんだろうか
0821nobodyさん2009/04/01(水) 09:51:57ID:???
SQLのIS NULLをたまには思い出してあげてください。
0822nobodyさん2009/04/01(水) 12:02:24ID:???
「有効/無効を表すフラグ」はあり得ないだろw

オラクルは古いDBというのもあって負の遺産も引きずってるからな。
長さゼロ文字列とNULLは今後区別するかもしれません、
と何年も言ってるが影響がでかすぎて一向に変わらん。
たぶんずっと変わらないと思う。その点Railsはやりたい放題だよなw
0823nobodyさん2009/04/01(水) 14:41:12ID:???
実務に使うには貧弱な validation に悩んでいて

ttp://d.hatena.ne.jp/tsuyoshikawa/20090325/1237977001

を見つけたのですが、こういうやり方が正解なのでしょうか?
0824nobodyさん2009/04/01(水) 15:06:34ID:???
めちゃくちゃです
0825nobodyさん2009/04/01(水) 16:29:41ID:???
どんなのがベストプラクティスでしょう?
08268142009/04/01(水) 19:55:35ID:TXtYORpd
ありがとうございます!

すいませんもう一個質問させてください。

Sampleモデルクラスのオブジェクトが入っている配列 arr からSampleクラスがbelongs_toしているTestモデルクラスのオブジェクトを配列の要素ごとに全て得たい場合は、

arr2 = []
arr.each do |v|
arr2 << v.test
end

みたいにループ文を回して取得するしかないのでしょうか??

arr2 = arr.ほにゃらら

みたいな形式で取得できたら便利だなーと思うのですが・・
0827nobodyさん2009/04/01(水) 21:39:09ID:???
arr2 = arr.collect(&:test)
ちょっと暗号じみてるけど、これは
arr2 = arr.collect {|v| v.test }
と同じ。collectはmapと書いてもいい。

0828nobodyさん2009/04/01(水) 22:11:54ID:???
>>826が欲しいのは、もしかすると
arr2 = arr.collect{|v| v.test}.flatten
じゃないかな。違ったらごめん。
Smalltalkを習ったので、俺もcollect派。
BagやSetが時々欲しくなる。
0829nobodyさん2009/04/01(水) 23:05:43ID:???
>>825
モデルにカスタムのバリデーションを追加する手段はちゃんと提供されてる。
コントローラーは振り分けを行ったり、全体の制御を行うところ。
こんなごちゃごちゃのめちゃくちゃにするなら、
最初からRailsなんて使わなきゃいいのにと思う。
0830nobodyさん2009/04/02(木) 08:49:27ID:6GTBW0dp
>>829に同意。
>>825は絶対やってはいけない。
08318252009/04/02(木) 09:29:35ID:???
>>829-830
ありがとうございます。了解しましたー。

モデルにカスタムのバリデーションを追加する情報 ( ドキュメント ) なりを教えてもらえませんか。。。
0832nobodyさん2009/04/02(木) 10:25:19ID:???
モデルクラスの中にオーバーライドして使ってね

つvalidate
つvalidate_on_create
つvalidate_on_update
08338252009/04/02(木) 11:42:16ID:???
>>832
ご親切にありがとうございます。
ちゃんと用意されているのですね。素晴らしい。
0834nobodyさん2009/04/02(木) 14:47:58ID:???
Google Docs にプログラム不要マウスだけでフォームを作る機能があります。

ttp://journal.mycom.co.jp/news/2008/02/08/019/index.html

そういった Rails で作られたソースの公開されているアプリやプラグインをご存じありませんか?
08358342009/04/02(木) 18:14:31ID:???
Rails というより JavaScript 寄りなので http://pc11.2ch.net/test/read.cgi/php/1166751613/759 で聞いてみることにしました。
0836nobodyさん2009/04/03(金) 19:47:58ID:???
質問です。
あるフィールド(複数の場合も)からの計算結果を表示したいとき、
メソッドはモデルに置くのとビューのヘルパーに置くのと、どちらが適当なのでしょうか。
例えば、purchase_dateという日付のフィールドがあるとき、
どこまで正確なのかを表すのにpur_date_qualというフィールドにY, M, Dの
どれかを入れておいて、Yなら年だけ、Mなら月までを表示させたいとき、
このメソッドはモデルとヘルパーとどちらに属すのでしょうか。

モデルに置いた場合は他のデータベースでもよくある計算フィールドのイメージで、
オブジェクト指向的にはこちらが正解のような気がするのですが。
0837nobodyさん2009/04/03(金) 21:12:20ID:0BZVS1Kz
モデルに別名でアクセサつけるか
面倒くさそうならヘルパ使うかなー
0838nobodyさん2009/04/03(金) 23:11:23ID:gpEgAnUB
http://www.pixa.cc/ ここのサイトRuby製だそうですが
糞重くて仕方ないです。どうしたらよくなるのか運営に言いたいんですが
0839nobodyさん2009/04/03(金) 23:13:07ID:???
「scalaでも使え」と言ってみたら?
0840nobodyさん2009/04/04(土) 01:56:19ID:???
>>838
トップから画像数枚眺めてみたけど別に重くはなかったぞ
0841nobodyさん2009/04/04(土) 02:22:46ID:???
最近こういう画像投稿サイト多いね
しかもどこもそこそこ盛況なようで結構なことですな
うちの会社の自社サービスなんて2年たって会員数2桁ですよwww
マネージャは冷や飯くらったらしい
0842nobodyさん2009/04/04(土) 03:25:38ID:???
アクティブユーザーは2人くらい?
0843nobodyさん2009/04/04(土) 08:24:37ID:???
>>841
どうやったらそんな奇跡的な会員数になるのか興味あるな。
0844nobodyさん2009/04/04(土) 15:01:46ID:???
会員全員社員
08458262009/04/04(土) 15:52:57ID:ZJouk0fd?2BP(0)
>>827
>>828
ありがとうございます。どちらでもできました。

また、疑問ができてしまたのですが、
arr2 = arr.collect(&:test)
の:testの前の&はなんでしょうか??
http://www.ruby-lang.org/ja/man/html/_A5AFA5E9A5B9A1BFA5E1A5BDA5C3A5C9A4CEC4EAB5C1.html#a.a5.e1.a5.bd.a5.c3.a5.c9.c4.ea.b5.c1
ここらへん見るとproc辺りが関係してるのかと思うのですが、そもそもブロックが定義されてない??
railsっていうよりrubyの質問っぽいですが、教えていただけると幸いです><
0846nobodyさん2009/04/04(土) 16:08:10ID:???
つーか自社サービスにすればおkって見通しがそもそも甘い。
0847nobodyさん2009/04/04(土) 17:06:49ID:???
&は、最後の引数に対して使うもので、指定したものをブロックとしてメソッドに引き渡す。
そのときどういうブロックに変換されるかを、引数(今回はSymbolである:test)の#to_proc
メソッドで定義できる。

http://www.ruby-lang.org/ja/man/html/_A5E1A5BDA5C3A5C9B8C6A4D3BDD0A4B7.html#a.a5.d6.a5.ed.a5.c3.a5.af.c9.d5.a4.ad.a5.e1.a5.bd.a5.c3.a5.c9.b8.c6.a4.d3.bd.d0.a4.b7
08488452009/04/04(土) 17:41:25ID:ZJouk0fd?2BP(0)
>>847
なるほど〜。ありがとうございます!
複雑ですがやっぱり便利ですねruby・・
08498362009/04/04(土) 22:55:38ID:???
>>837
ありがとうございます。とりあえず、モデルに定義することにします。
0850nobodyさん2009/04/05(日) 00:59:52ID:???
Railsで Access のような業務アプリを作るとき,帳票印刷はどうしてますか?
あと,ショートカットキーで入力フォームを行き来したりするのはHTMLだと難しいと思うんですが,
そういうインターフェース面はフォームのボタンをマウスでクリックしてもらうしかないのでしょうか?
0851nobodyさん2009/04/05(日) 02:09:32ID:???
そういうのはクライアントサイドだから言語はあまり関係がないぞ。
0852nobodyさん2009/04/05(日) 03:14:38ID:???
まずウェブベースで出来なきゃ他の方法検討するしか無い。
つーかRoR関係ないだろ。

http://pc11.2ch.net/test/read.cgi/php/1025346267/
Webアプリで帳票印刷
0853nobodyさん2009/04/05(日) 20:17:58ID:???
Rails直接関係ないのですが、関連性があると思いここでおききします。
autotest + rspec + ($KCODE = "u") + cygwin(UTF-8化) + ck.exe(or Poderosa)

rspecのログがUTF-8で流れてくるので、UTF-8のcygwinターミナルを使っているのですが、
autotestを実行時に Ctrl+C でautotest自体が終了してしまいます。
Ctrl+Cではテストの再実行を期待しています。
ただ、コマンドプロンプトでautotest実行した場合は、Ctrl+Cで期待通りテストが再実行されます。
(通常、終了は Ctrl+C→Ctrl+Cですよね。コマンドプロンプトでは期待通り)

autotestでイベント時にサウンドを鳴らすようにしているのですが、cygwinターミナルからだと、
autotest終了音がやはりなりません。

これはどういった対応策がとれるものでしょうか?
Windowsやその他の環境の皆様はどうしておられますか?

もし、他に該当スレがあれば誘導してください。
■ このスレッドは過去ログ倉庫に格納されています