【Agile】Ruby on rails相談所 part2【DRY】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/06/26(月) 01:52:58ID:???<英語>
本家: http://www.rubyonrails.org
API: http://api.rubyonrails.com/
Documents&Tutorials: http://documentation.rubyonrails.com/
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
ActiveRecordの記事(データベースの操作):
http://jp.rubyist.net/magazine/?0004-RLR
http://jp.rubyist.net/magazine/?0006-RubyOnRails
0367nobodyさん
2006/08/28(月) 01:27:07ID:???ここはWebProg板だと認識しておりますが、
いつからWebProg板はドザ専用になったのでしょうか?
ポインタだけでも構いませんので、
よろしければ教えていただけませんでしょうか?
0368nobodyさん
2006/08/28(月) 02:48:08ID:???0369nobodyさん
2006/08/28(月) 19:21:49ID:???マカ出て行けよ。
0370nobodyさん
2006/08/28(月) 21:07:01ID:glqUT493ぃぬ派は...
0371nobodyさん
2006/08/28(月) 21:10:44ID:lr/e1KW3http://news18.2ch.net/test/read.cgi/news7/1156419324/
0373nobodyさん
2006/08/29(火) 22:18:26ID:???0374WindowsXP使ってますw
2006/08/30(水) 01:49:38ID:???Windowsには、Rubyがバンドルされておりません。
どうもありがとうございました。
0375nobodyさん
2006/08/30(水) 02:54:49ID:???現実にはunixマシンなのにcuiすら使ったこと無く過ごすのが典型的なマカ。
言語系では、xcodeだかのgccなobjcよりアップルスクリプトとかいうののほうが使われるらしいよ。
0378nobodyさん
2006/08/30(水) 08:12:50ID:???http://www.rubyonrails.org/down
の一番下とか
"The entire Rails core team is using TextMate on Mac OS X."
0379nobodyさん
2006/08/30(水) 08:15:18ID:???RubyCocoa
レパードでは標準搭載。
アプリではobjc >>>> アップルスクリプトだろ。
ちなみに私は・・・SUSEがメイン
0380nobodyさん
2006/08/30(水) 15:59:56ID:???インタフェースビルダーがそのまま使えるらしいね
0381nobodyさん
2006/08/31(木) 03:21:20ID:w28lq1g1まじぽん!?
0382nobodyさん
2006/08/31(木) 04:19:29ID:???恥ずかしいリアクションだなぁ…
0384nobodyさん
2006/08/31(木) 05:25:43ID:???結局Objective-Cで書かれたソースを読まなければいけないので、
それなりに知識が必要になってくる。Objective-CをRubyで置き換えて
みるメリットってそんなにないかもね。
0385nobodyさん
2006/08/31(木) 08:21:45ID:???>>382
おれもマジポンってリアルで使う。はずかしいのか・・・ orz
0386nobodyさん
2006/08/31(木) 16:55:30ID:???0388nobodyさん
2006/08/31(木) 20:03:03ID:m7COpn7Kそれこそ自分で作れだろう
0389nobodyさん
2006/08/31(木) 21:44:17ID:j5vOjSqDお尋ねしたい事があり書き込みさせて頂きます。
色々なサイトでIDやPassを自動配信するシステムがありますよね?
そのシステム方法を教えて頂けないでしょうか。
探してみて無料配布しているところなど探してみたのですが
見当たりませんでした。配布されているものじゃなく作る物なのでしょうか?
もし、作る物であるのならわかる方に教えて頂きたく思います。
どうぞ宜しくお願い致します(*- -)(*_ _)
0390nobodyさん
2006/08/31(木) 21:46:57ID:???で、その顔文字はなんとかならんのか?
0391nobodyさん
2006/08/31(木) 21:47:44ID:???login_engineを探せ。
0393nobodyさん
2006/09/01(金) 00:06:57ID:???先日バルサン炊いたばかりなのに。
0395nobodyさん
2006/09/01(金) 00:46:06ID:???typo は?
http://tam.qmix.org/wiki/TypoInstall.html
http://www.typosphere.org/
0396nobodyさん
2006/09/01(金) 11:42:29ID:???0398nobodyさん
2006/09/01(金) 13:40:29ID:???donrails
http://www.araki.net/wiki/donrails-wiliki.cgi
simplelog
http://simplelog.net/
http://oss.moongift.jp/review/i-1989.html
あと、typo
ですなー、Rails勉強に使えるかと思って・・・
サンクスです。
0399nobodyさん
2006/09/06(水) 00:26:18ID:???0401nobodyさん
2006/09/06(水) 01:16:37ID:???ちまちま変換がんがれ。
0402nobodyさん
2006/09/06(水) 09:58:17ID:???Rubyの仕様ですか。ちと辛いですが、考えます。
0403nobodyさん
2006/09/07(木) 02:59:47ID:???http://release.nikkei.co.jp/detail.cfm?relID=140017&lindID=1
0404nobodyさん
2006/09/07(木) 06:25:17ID:???例えば mgr というカラムがあるけど、これを manager_id としてアクセスしたいとか、
カラム名が syuukei のようにローマ字になっているけどRailsでは total という名前でアクセスしたいとか。
0408nobodyさん
2006/09/08(金) 20:26:19ID:???二、三十年の後追いだぜ…。よく恥ずかしげもなく「時代を先取り」とか…。
こういうアホさ加減が、Ruby 使いとか作っている教祖の愛すべきところだけどな。
0409nobodyさん
2006/09/08(金) 20:30:25ID:???0410nobodyさん
2006/09/11(月) 21:56:01ID:???をやってみているのですが、TodoController に destroy メソッドを定義するところで
ハマってしまいました。app/views/list.rhtml 中の link_to(... :action => "destroy" ...)
で表示される http://127.0.0.1:3000/todo/destroy/<N> へアクセスしても destroy メソッドが
実行されないのです。breakpoint を destroy メソッド定義の最初に加えてみたりしたところ、
どうもそもそも destroy メソッドの呼出しが発生していないようです。試しに destroy ではなく
別の名前(ex. destroy2)で app/views/list.rhtml と app/controllers/todo_controller.rb を
書き直してみたところ、チュートリアル通りの結果になったので、どうも destroy という名前が
まずいような雰囲気なのですが、これはなにが原因なのでしょうか?
ちなみに実行環境は Debian etch 上で↓のようになっております。
Todo$ script/about
About your application's environment
Ruby version 1.8.4 (i486-linux)
RubyGems version 0.9.0
Rails version 1.1.6
Active Record version 1.14.4
Action Pack version 1.12.5
Action Web Service version 1.1.6
Action Mailer version 1.2.5
Active Support version 1.3.1
Application root /home/user/usr/src/ruby/Todo
Environment development
Database adapter sqlite3
0411nobodyさん
2006/09/13(水) 04:38:35ID:???後付けの定義なんて誰でもできる。
0412nobodyさん
2006/09/13(水) 12:28:27ID:???0413nobodyさん
2006/09/13(水) 13:30:15ID:???0414nobodyさん
2006/09/13(水) 20:26:54ID:???http://www.ruby-lang.org/ja/
Rails製のCMSを使っているらしい
http://radiantcms.org/
0415nobodyさん
2006/09/13(水) 22:16:44ID:???今見てみました。
綺麗なデザインですね。(ルビーのロゴマークがイイ!)
Web上のRuby資料が整っていくことを期待致します。
0416nobodyさん
2006/09/13(水) 22:33:19ID:???0417nobodyさん
2006/09/13(水) 22:35:13ID:???0418nobodyさん
2006/09/14(木) 07:39:07ID:???0419nobodyさん
2006/09/14(木) 11:34:08ID:???試しに次のようなテーブルを作り、
create table accounts (
code integer not null primary key,
name varchar(30) not null,
password varchar(30) not null
);
そしてruby script/generate scaffold accountを実行し、app/models/account.rbにset_primary_keyを追加しました。
class Account < ActiveRecord::Base
set_primary_key 'code' # 追加
end
そのあと http://localhost:3000/users/ にブラウザでアクセスすると、/list はうまく表示されるのですが、/new だと次のようなエラーがでます。
undefined method `code_before_type_cast' for #<Account:0x22ebadc>
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1789:in `method_missing'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/form_helper.rb:340:in `value_before_type_cast'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/form_helper.rb:253:in `to_input_field_tag'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/form_helper.rb:160:in `text_field'
#{RAILS_ROOT}/app/views/users/_form.rhtml:5:in `_run_rhtml_users__form'
#{RAILS_ROOT}/app/views/users/new.rhtml:4:in `_run_rhtml_users_new'
なんか「code_before_type_castというメソッドがない」というエラーなので、モデルに
def code_before_type_cast; code; end
を追加したらエラーはでなくなったんですけど、あまり正しい解決法には見えないので、詳しい人のアドバイスお願いします。
0420nobodyさん
2006/09/14(木) 11:38:57ID:???scaffoldの仕様変更で、destroyとcreateとupdateはPOSTメソッドでしか受け付けなくなったから。
これはセキュリティ上の理由(CSRF対策)による。
app/controllers/foo_controller.rb をみると、以下のようなコードがあるはず。
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
verify :method => :post, :only => [ :destroy, :create, :update ],
:redirect_to => { :action => :list }
これをコメントアウトすれば、destroyも動作するようになる。
ただし、セキュリティ的には弱くなるのであまりおすすめしない。
scaffoldが、GETメソッドでdestroyアクションを呼び出しているのが悪いのだから、
これをPOSTメソッドを使うように(つまりフォームを使うように)変更するのが望ましい。
0421nobodyさん
2006/09/14(木) 13:58:15ID:???0422nobodyさん
2006/09/14(木) 15:16:43ID:???0423nobodyさん
2006/09/14(木) 16:16:30ID:???0424nobodyさん
2006/09/14(木) 16:44:13ID:???0425nobodyさん
2006/09/14(木) 17:17:46ID:???Ruby on Railsを使ってSNSを作れますか?
http://pc8.2ch.net/test/read.cgi/php/1158167579/l50
0426nobodyさん
2006/09/14(木) 20:19:50ID:???0427nobodyさん
2006/09/15(金) 00:09:44ID:???new と create とを分ける、あるいは edit と update とを分けるという方法の利点は何でしょうか。
自分としては、new と create は同じアクションにして、GETかPOSTかで分岐する(GETならnewの動作、POSTならcreateの動作)という方法しか知らなかったので、
scaffoldが生成したコードをみてこういう方法があることを初めて知りました。
それで、それぞれの方法にどのような利点や欠点があるかを知りたいと思うのですが、どなたか簡単に解説してくれませんか。
自分で考えたぶんでは、scaffoldのやり方だとcreateに失敗したときnewにリダイレクトする必要があるのでちょっと複雑かなと思いました。それ以上はわかりません。
詳しい人教えてください。
0429nobodyさん
2006/09/15(金) 04:11:32ID:???Railsによるアジャイル(ry にいろいろ書いてある。
かなり面倒ということはわかった(つまりその設定だけじゃダメってこと)。
おれなら素直にid使って、
validates_uniqueness_of :code
0430419
2006/09/15(金) 05:23:51ID:???>Railsによるアジャイル(ry にいろいろ書いてある。
書いてあった?set_primary_keyのことしか書いてなかったけど。
どこに書いてあったかページ番号教えてください。
>おれなら素直にid使って
レガシーなテーブルだからそんなことできません。残念!
0432nobodyさん
2006/09/15(金) 16:19:26ID:???料理人を雇うようにPGを雇う必要があるけどな。
0435nobodyさん
2006/09/16(土) 11:56:16ID:???perlでもphpでも好きなの使った方がいいよ。
無知を自慢するその態度は、もしかしてマカ?
0436nobodyさん
2006/09/16(土) 18:12:07ID:???0437nobodyさん
2006/09/16(土) 23:05:54ID:???0438nobodyさん
2006/09/16(土) 23:07:41ID:???0439nobodyさん
2006/09/17(日) 00:17:36ID:???0440419
2006/09/17(日) 01:30:21ID:???set_primary_keyの設定だけじゃだめだけど、ごちゃごちゃ設定したらできるということでいいんだよね。
本読み直したけど、やっぱそれらしい記述ないよ。ほんとに書いてあるんだよね?
これで「実はできません」とかだったら泣く。
0441nobodyさん
2006/09/17(日) 03:10:58ID:???0442nobodyさん
2006/09/17(日) 16:17:37ID:???http://llamerada.ty.land.to/brails.html
Railsのデスクトップアプリ
0443nobodyさん
2006/09/17(日) 16:23:44ID:???みんなXP使ってるから困らない。
日本語訳サイトって誰か作ってないの?
ブックマーク程度ではあんまり便利と呼べるかどうか微妙。
0445419
2006/09/18(月) 11:18:30ID:???どうもありがとう。そのページは読んでるけど、set_primary_keyのことしか書いてなくて、ほかにどんな設定が必要かは書いていないです。
自分でもよく探したんですけど、プライマリキーの名前を変えることについて書いてあるのはそのページぐらいしかないですよね。
しかし>>429は「その設定だけじゃだめだ」と言い切っているので、ほかに必要な設定があるはずで、それがどっかのページに書かれているのも知っているんだろうけど、教えてくれないんだよね。
>>419のエラーにあるように、「キー名+'_before_type_cast'」というメソッドがないというエラーなので、これを自分で定義すればいいんじゃないかと思うんですけど、
どう定義すればいいのかがわからないし、そもそもこれはActiveRecordが動的に定義するメソッドだから自分で定義していいのかどうかもわからない。
今は
def code_before_type_cast
read_attribute(:code)
end
としてるんですけど、この設定でいいのかどうか。
で、きっといろんなことを知っている429ならこのへんの設定が書かれてるページを知ってるはずなんだけど、教えてくれないんだろうな。
0447429
2006/09/18(月) 13:45:40ID:???そのページにあるように、「主キーが一意な値になるように設定」してますか?
そのあたりをよく読めば、scaffoldそのままじゃ動かないことはわかるはず。
ほかに必要な設定が具体的にどこかに説明されてるとは言ってない。
0448nobodyさん
2006/09/18(月) 15:33:11ID:???1. プライマリキーがid以外の場合は set_primary_key 'xxx' 以外に xxx_before_type_cast の定義が必要
2. プライマリキーはauto_incrementまたはserialのように自動設定されなければならない
>>419だとプライマリキーの名前がcodeであり、かつauto_incrementがないので、両方にひっかかってました。名前だけの問題だと思ってたけどそうじゃなさそうです。
今のテーブルだと、(いいか悪いかは別にして)プライマリキーの値はユーザが入力することになってるんですけど、ActiveRecordではそういうのは想定してないっぽい。
試行錯誤して、モデルにいろいろ追加していちおう動くようにはなったんですけど、正しい保証はまったくないです。
class Account < ActiveRecord::Base
## 1. プライマリキーをidではない名前にする
set_primary_key 'code'
def code_before_type_cast
read_attribute(:code) # or code
end
## 2. ユーザ入力値をプライマリキー値に設定する
def initialize(attributes=nil)
super
self.id = attributes[:code] if attributes
end
# def before_create
# self.id = code
# end
end
0449419
2006/09/18(月) 15:34:46ID:???主キーが一意になっているかどうかではなくて、主キーの値が自動的に設定されるかどうかが大事みたいです。
主キーが一意でも、ユーザが入力した値を使うようなことは想定してなさそうでした。
0450nobodyさん
2006/09/18(月) 15:40:55ID:???Ajax でカレンダーと時計が出てきて、クリックするだけで入力できるようなのが欲しいのー。
0451nobodyさん
2006/09/18(月) 16:12:33ID:???0452nobodyさん
2006/09/18(月) 16:21:01ID:CAbpHFIG0453nobodyさん
2006/09/18(月) 18:21:11ID:???0454nobodyさん
2006/09/18(月) 18:29:20ID:???オブジェクト指向に不慣れだと、どんなメゾットを記述すれば良いかがわかりにくいかもな。
いろんなソース見て弄りながら覚えるしか無いけど。
0456410
2006/09/19(火) 02:50:07ID:f4BK69oY>>420
> app/controllers/foo_controller.rb をみると、以下のようなコードがあるはず。
>
> # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
> verify :method => :post, :only => [ :destroy, :create, :update ],
> :redirect_to => { :action => :list }
rails-1.1.6/lib/rails_generator/generators/components/scaffold/templates/controller.rb ですかね、なるほど。1年半以上前のチュートリアルを鵜呑みにしてはいかんわけですなあ。
0457nobodyさん
2006/09/19(火) 05:39:43ID:???verifyに失敗したら :action=>'list' にリダイレクトするんじゃなくて render '/403.html' するべきのようなきがする。
scaffoldに文句つけても仕方ないけど。
0458nobodyさん
2006/09/19(火) 15:16:24ID:???データベースの状況と照らし合わせながらちょっと複雑な処理をする部分があって、
当然スレッドセーフにする必要があるだろうからControllerに@mutexを作って
クリティカルセクションを実行したいのだけれど、呼出し毎に新しいインスタンスを作ったりするのかな?
仮に今はしていないとしても、将来的にそうなる可能性が無いわけではないだろうし、
こういう場合ってどういう風に実装するのが正しいのでしょうか?
0459nobodyさん
2006/09/20(水) 00:12:32ID:???鵜呑みにすると嵌ることが多い。リリースエンジニアリングが弱いよな。
0460nobodyさん
2006/09/20(水) 01:58:57ID:???DBの排他制御使うとか
オンメモリのテーブルにロック用オブジェクト置くとか
よくわからないけど Singleton とか知ったかしてみるテスト
0461nobodyさん
2006/09/20(水) 07:19:12ID:???内部からでは問題ないスピードです。
遅いときでも別ポートで立ち上げているapache2は外部からでもすぐつながる状況です。
Fedora5とmongrelですが、何から調べていいのやら、何を勉強すればいいのか、若しくは回答をご教授ください。
0462nobodyさん
2006/09/20(水) 09:23:14ID:???CPU3GHz超でメモリ詰めるだけ積んで、DBはディスアクセスせずにオンメモリで検索できてる?
0463461
2006/09/20(水) 13:50:31ID:???DBのオンメモリは勉強してみます。
内部からのアクセスは速度的に全然問題ないので、原因が良くわかりません。
vsftpdへの外部からのアクセスも、かなり遅いです。ポート113は開いています。
今私の中では原因は光プレミアムです。
0464nobodyさん
2006/09/20(水) 15:11:31ID:???普段は Rails アプリもサクサク動いてるの?
0465nobodyさん
2006/09/20(水) 19:13:00ID:???>Controllerってシングルインスタンスなの?
ちがうんじゃね?
Controllerのインスタンス変数にバリバリ代入しているのに、シングルトンはありえん。
0466nobodyさん
2006/09/20(水) 19:55:05ID:???DBはポスグレでマスタ系1000レコード、トランザクション系20000レコード
(pg_dump取ると20MBぐらい)程度、Ajaxも適度に使用したWebアプリが
PentiumIII-600MHz/256MBで健気に動いてます。
Rails,なかなかたいしたものだと思います。
■ このスレッドは過去ログ倉庫に格納されています