1 名前:nobodyさん [2009/09/13(日) 20:49:34 ID:kz4rC4Dx] ■前 Ruby on Rails Part7 pc11.2ch.net/test/read.cgi/php/1241100447/ ■参考サイト <英語> 本家:www.rubyonrails.org API document:api.rubyonrails.com/ 開発者のblog:weblog.rubyonrails.org/ 参考wiki:wiki.rubyonrails.org/rails <日本語> Rails' wiki: wiki.fdiary.net/rails/ ■参考スレ(プログラム板) Rubyについて Part 37 pc12.2ch.net/test/read.cgi/tech/1251029267/ Ruby 初心者スレッド Part 30 pc12.2ch.net/test/read.cgi/tech/1249687283/
622 名前:nobodyさん [2009/12/30(水) 06:18:07 ID:p1BkGZKi] 【PHP】フレームワーク Akelos pc11.2ch.net/test/read.cgi/php/1187333485/l50
623 名前:nobodyさん [2009/12/30(水) 10:01:16 ID:+1QPHe9X] あけおめ
624 名前:nobodyさん [2009/12/30(水) 11:20:23 ID:p1BkGZKi] Rails and Merb Merge: Performance (Part 2 of 6) | Engine Yard Blog www.engineyard.com/blog/2009/rails-and-merb-merge-performance-part-2-of-6/
625 名前:nobodyさん mailto:sage [2009/12/30(水) 11:30:17 ID:???] 毎日1本ずつかと期待してたがやっとパート2が来たか。
626 名前:nobodyさん mailto:sage [2009/12/30(水) 15:10:49 ID:???] Ruby1.9.2が正式リリースされないと、Railsも正式リリースされないんだろうな 1.9.2はpreview2も出ないし、まだ先なのかね
627 名前:nobodyさん mailto:sage [2009/12/30(水) 15:57:14 ID:???] RubySpec走らせようぜぇ
628 名前:nobodyさん [2009/12/31(木) 06:41:41 ID:0ZeyyLVy] dhh @37signals is already running a few minor apps on Rails 3. We've just started playing w/ porting Basecamp. Exciting times! twitter.com/dhh/status/7208264678 twitter.com/dhh/status/7107817801 Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change. about 1 hour ago from Echofon
629 名前:nobodyさん [2009/12/31(木) 06:58:56 ID:0ZeyyLVy] @sockmonk 1.8.7. Rails 3 requires 1.8.7. twitter.com/wycats/status/7138079908 dhh @37signals is already running a few minor apps on Rails 3. We've just started playing w/ porting Basecamp. Exciting times! twitter.com/dhh/status/7208264678 Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change. twitter.com/dhh/status/7107817801
630 名前:nobodyさん [2009/12/31(木) 08:31:33 ID:0ZeyyLVy] Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change. twitter.com/dhh/status/7208225785 dhh
631 名前:nobodyさん mailto:sage [2009/12/31(木) 14:23:44 ID:???] 何度も書くほどの事かね. dogfooding出来る程度動くようにはなってきたというのはわかった
632 名前:nobodyさん [2009/12/31(木) 22:48:13 ID:0ZeyyLVy]
633 名前:nobodyさん mailto:sage [2010/01/03(日) 01:04:56 ID:???] railsでleft join whereって使えないよな。 has_manyとかはidしか条件にしないし、他の条件を使えない気がする。
634 名前:nobodyさん [2010/01/03(日) 17:24:17 ID:Kv5gn0C+] github.com/rails/arel
635 名前:nobodyさん mailto:sage [2010/01/04(月) 00:12:50 ID:???] >>634 ほほぅ
636 名前:nobodyさん mailto:sage [2010/01/04(月) 00:15:11 ID:???] >>633 :joins 指定すればいいという話ではなく?
637 名前:nobodyさん mailto:sage [2010/01/04(月) 00:32:56 ID:???] Railsの勉強で、簡単なブログツールを作っています。 記事のモデルオブジェクト(Post)にコメント数を表すカラム(comment_count)を作成しているのですが、これの更新方法がよくわかりません。 たぶんトランザクションを使って、コメントが保存できたらcomment_countを1増やすという方法になると思うのですが、 以下のようなコードであっているでしょうか。どなたか添削をお願いします。 def add_comment # ブログ記事のモデルオブジェクトを検索 post = Post.find(params[:id]) or raise ActiveRecord::RecordNotFound.new # コメントオブジェクトを作成し、記事IDを設定 comment = Comment.new(params[:comment]) comment.post_id = post.id begin # トランザクション開始 Post.transaction do # コメントをセーブ comment.save! # コメントがセーブできたら、コメント数を1増やす post.comment_count += 1 post.save! end # エラーがなければ 'OK' を出力 render :text=>'OK' rescue ActiveRecord::RecordInvalid => ex # エラーがあれば、エラーメッセージを出力 errmsg = comment.errors.collect{|arr| arr.join(': ')}.join("¥n") response.status = 422 render :text=>errmsg end end
638 名前:nobodyさん [2010/01/04(月) 01:57:03 ID:14ehE+TL] 無駄が多くて全然railsっぽくない。以下のようにするといいよ。 def add_comment # ブログ記事のモデルオブジェクトを検索 post = Post.find(params[:id]) # raise は明示的に書く必要はない。 # アソシエーションを利用してコメントオブジェクトをビルド(post_idは自動的に代入される) comment = post.comment.build # パラメーターでアップデート(うろ覚えなのでシンタックスエラーがあるかも) comment.update_attributes!(params[:comment]) end コメント数はcomment_countカラムを作らずに以下で数えるほうがいいと思うけど。よほど膨大な(100万単位の)コメントがつかない限り。 Comment.count(:conditions => 条件)
639 名前:nobodyさん mailto:sage [2010/01/04(月) 02:01:50 ID:???] >>636 なるべく生のsql文は使いたくなくて でもまぁこれが一番手っ取り早いか
640 名前:nobodyさん mailto:sage [2010/01/04(月) 02:08:21 ID:???] 営業能力も上げていかないと技術だけでは35歳以上はこの業界では生き残れないと断言しよう 40歳過ぎにもなれば、営業能力70%技術力30%くらいの割合になるマジで 同じ会社で死ぬまで雇ってもらえるなら別だが そんな保障はどこにもない
641 名前:nobodyさん [2010/01/04(月) 02:09:27 ID:14ehE+TL] それに def add comment でなくて、 restfulに書くならばComment Controllerを作って、createアクションで処理する方がいいよ。 before_filter でPost.find(:post_id) を常にしておくべき。 そうすればその情報を使ってアソシエーションに沿ってコメントを作成できる。
642 名前:nobodyさん [2010/01/04(月) 14:14:39 ID:CMnexdc2] Rails 3.0.pre で遊ぶ準備 sakuro.tumblr.com/post/305322764/rails-3-0-pre
643 名前:nobodyさん [2010/01/04(月) 20:11:46 ID:CMnexdc2] Getting a New App Running on Edge weblog.rubyonrails.org/2010/1/1/getting-a-new-app-running-on-edge So people have been attempting to get a Rails app up and running recently. I also have some apps in development on Rails 3
644 名前:nobodyさん mailto:sage [2010/01/04(月) 20:48:54 ID:???] >>637 自習するのは止めないけど、belongs_to の :counter_cache も忘れないで。
645 名前:nobodyさん mailto:sage [2010/01/04(月) 23:22:51 ID:???] >>639 亀レスだが has_many :people, :foreign_key=> 'original_key_name' とかじゃダメなのか?
646 名前:nobodyさん mailto:sage [2010/01/05(火) 02:00:40 ID:???] >>645 おぉ。これでkeyを指定できるようになるのか。便利。
647 名前:nobodyさん mailto:sage [2010/01/05(火) 06:24:05 ID:???] >>638 どうもありがとうございます。raiseは書かなくていいんですか。なるほどー。 > コメント数はcomment_countカラムを作らずに以下で数えるほうがいいと思うけど。よほど膨大な(100万単位の)コメントがつかない限り。 > Comment.count(:conditions => 条件) すべての記事を、コメントやトラックバックの多い順でソートする機能を付けようとしています。 その場合、記事ごとにコメント数がついていたほうが簡単かつ高速なので、comment_countカラムを作っています。 とりあえず、トランザクションまわりについては>>637 であってるのでしょうか。 詳しい方、お願いします。
648 名前:nobodyさん mailto:sage [2010/01/05(火) 10:27:07 ID:???] >>647 コメント削除したらコメントカウントのカラムもupdateしないといけない 面倒くせ
649 名前:nobodyさん mailto:sage [2010/01/05(火) 10:42:18 ID:???] ソートする機能を考慮しても コメント数はcomment_countカラムを作る必要性がわからん また高速性を考えるならrailsを使う意味がない、生産性重視ならcomment_countカラムはいらん
650 名前:nobodyさん [2010/01/05(火) 10:57:18 ID:DXl89df8] イノベーションのジレンマ - Wikipedia ja.wikipedia.org/wiki/%E3%82%A4%E3%83%8E%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%B8%E ディスラプティブ技術 - Wikipedia ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%82%B9%E3%83%A9%E3%83%97%E3%83%86%E3%82%A3%E3%83%96%E6%8A%80%E8%A1%93 スタートアップの始め方 www.aoky.net/articles/paul_graham/start.htm テクノロジーの世界では、常にローエンドがハイエンドを食っている。 安価な製品をより強力にするほうが、強力な製品を安くするよりも簡単なのだ。 だから安価でシンプルというところから始めた製品は徐々に強力なものへと成長していき、水が部屋に満ちるように、 「ハイエンド」の製品を天井の方へと押し込めることになる。 Sunはこれをメインフレームに対して行い、IntelはSunに対して行っている。
651 名前:nobodyさん [2010/01/05(火) 14:54:37 ID:s5/1mF78] Twitter創始者が語るWeb 2.0の要諦 ― @IT www.atmarkit.co.jp/news/200711/16/twitter.html Railsを使って2週間でプロトタイプが完成 ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。 Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。 Twitterをはじめると2週間でブログの更新が止まる理由 そしてはじまる(かもしれない)総表現社会 - mizchi log d.hatena.ne.jp/mizchi/20090711/1247265579
652 名前:nobodyさん mailto:sage [2010/01/05(火) 22:42:48 ID:???] >>647 transactionの使い方はそんな感じでいいと思う。 do..endのなかでsave!とかupdate_attributes!ね。AR::RecordNotSaved系の 例外が飛んで、transctionがrollbackする。 ただ、検索したり保存したりは >>638 の書いているコードのほうがキレイなので それを参考にした方がいい。 コメント件数は>>644 のいうとおり、counter_cacheを使うと同じようなことを ARが勝手にやってくれるので、プロダクションコードではそちらを使う方がいいと思う。 あと >>649 > また高速性を考えるならrailsを使う意味がない、生産性重視ならcomment_countカラムはいらん んなこたない。 counter_cacheなり、それの自作なりを使わないでソートするためには、 Rubyでゴリゴリ書くか、相関サブクエリ使うことになると思うんだけど、 前者はさすがに遅い/無駄だし、後者は面倒なだけだと思うんだけどどうか。
653 名前:nobodyさん mailto:sage [2010/01/06(水) 03:03:28 ID:???] >>652 コメントカウント出すサブクエリなんてなんて1分もあれば書けるだろ 面倒なのかな?
654 名前:nobodyさん [2010/01/06(水) 12:25:42 ID:3+83O9QS] Rails 3 in Action www.manning.com/katz/ Yehuda Katz MEAP Release: 2009 Softbound print: April 2010 (est.) | pages ISBN: 9781935182276 1. Building Your First Rails 3.0 Application 2. Overview of the Rails stack(s) + architecture 3. Creating Rails Applications 4. Using DataMapper for Models 5. Using ActiveRecord for Models 6. Other Choices for Models 7. Processing Requests 8. Routing in Rails 3 9. Customizing Views 10. Working on the Client Side 11. Supporting Characters 12. Using the Plugin API 13. Testing Your Applications 14. Deploying a Rails Application 15. Scaling Rails Appendix A Just enough advanced Ruby Appendix B The migration story Appendix C Rails 2 to Rails 3 Appendix D Merb 1 to Rails 3
655 名前:nobodyさん [2010/01/06(水) 16:39:08 ID:3+83O9QS] www.engineyard.com/blog/author/yehudakatz/
656 名前:nobodyさん [2010/01/06(水) 16:45:50 ID:3+83O9QS] Rails 3 beta eyed for late January release www.computerworld.com/s/article/9143084/Rails_3_beta_eyed_for_late_January_release?taxonomyId=1
657 名前:nobodyさん [2010/01/07(木) 09:51:46 ID:acpOW5s0] David Heinemeier Hansson Bibliography www.amazon.com/David-Heinemeier-Hansson/e/B001JS19Y8/
658 名前:nobodyさん mailto:sage [2010/01/08(金) 02:25:13 ID:???] SQLite3で排他制御する場合どうすればいいですか? SQLite3にはSELECT FOR UPDATEはないので find(:lock => true)は使えないですよね。 トランザクションを BEGIN IMEDIATE TRANSACTION で開始すればいいのじゃないかと思うんですが どこに書いたらいいものか分かりません。
659 名前:nobodyさん [2010/01/09(土) 14:09:25 ID:C3iGMVdd] SELECT FOR UPDATE なんて使わないから、使える
660 名前:nobodyさん [2010/01/09(土) 18:20:07 ID:eVooFF5+] Phusion Passenger 2.2.9 released blog.phusion.nl/2010/01/08/phusion-passenger-2-2-9-released/ Fixed compatibility with Rails 3.
661 名前:nobodyさん mailto:sage [2010/01/10(日) 02:02:57 ID:???] >>659 すいません。 だれ(なに)が使わないので だれ(なに)が使えるのでしょうか?
662 名前:nobodyさん [2010/01/10(日) 12:04:22 ID:shGxwVTU] intertwingly.net/projects/dashboard.html
663 名前:nobodyさん [2010/01/10(日) 12:10:39 ID:shGxwVTU] intertwingly.net/projects/AWDwR4/
664 名前:nobodyさん mailto:sage [2010/01/10(日) 21:44:08 ID:???] >>659 小学生でもわかる日本語でおねがいします
665 名前:nobodyさん mailto:sage [2010/01/11(月) 11:52:44 ID:???] 馬鹿にはrorは無理。
666 名前:nobodyさん mailto:sage [2010/01/11(月) 17:01:28 ID:???] config/environment.rb にいろんな設定書くけど、 独自に設定を追加してもいいんでしょうか。 Rails::Initializer.run do |config| config.my_value = 'foobar' end みたいな。 あと、それを追加したとして、読み出す方法を教えてください。
667 名前:nobodyさん [2010/01/11(月) 19:32:25 ID:yaZxWBJR] ActiveModel: Make Any Ruby Object Feel Like ActiveRecord yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/
668 名前:nobodyさん mailto:sage [2010/01/11(月) 20:46:07 ID:???] >>666 config(Rails::Configuration)はRails本体の設定しか受け付けない。 定数使って MY_CONFIG = { :foo => 'bar', :hoge => 'fuga' } のようにするのが手っ取り早い。 ちなみにアプリの利用者が変更する必要がない設定は config/environment.rbやconfig/enviroments/*.rbに書く。 利用者が変えられる設定ならconfig/initializers/*.rbに書く(2.0以降のみ)。 設定が大量になりそうならYAMLファイルで外に出してenvironment.rbなどから読み込むか、 configatronのようなプラグインを使うか。
669 名前:nobodyさん mailto:sage [2010/01/12(火) 00:22:34 ID:???] 質問主ではないが、勉強になった。 ありがとん > 668
670 名前:nobodyさん mailto:sage [2010/01/12(火) 03:14:39 ID:???] ここでアホな質問してる人らって、わからんことあったらまずここに書いて のんびりテレビでも見てんの?
671 名前:nobodyさん mailto:sage [2010/01/12(火) 04:35:12 ID:???] アホな質問続きだが railsで使用しているpluginのバージョンを一括表示する方法ってない? script/about みたいな感じで。
672 名前:nobodyさん [2010/01/12(火) 04:46:22 ID:609VTkN+] Rails and Merb Merge: Plugin API (Part 3 of 6) | Engine Yard Blog www.engineyard.com/blog/2010/rails-and-merb-merge-plugin-api-part-3-of-6/
673 名前:nobodyさん mailto:sage [2010/01/12(火) 19:07:46 ID:???] Paginateを使いたいのですが以下のエラーが出ます。 --- undefined method `total_pages' for #<Array:0x5bcc4d8> Extracted source (around line #42): 42: <%= will_paginate @items %> --- scaffoldで新しくひな形を作り、 environment.rb の一番下に require 'will_paginate' index.html.erb の一番下に <%= will_paginate @items %> pages_controller.rb に def list @items = Item.paginate :page => params[:page], :per_page => 10 end これらを追加しただけなのですが、何が原因でしょうか。
674 名前:nobodyさん mailto:sage [2010/01/12(火) 20:02:14 ID:???] 質問させてください。 テストサーバー(staging環境)用にproduction環境でRailsアプリを動かしているのですが、 エラーが出たときにサーバーにもぐっていちいちlog/production.logを見るのが面倒です。 また、サーバーのログイン権限が無い開発者にもローカルの開発サーバー(webrickやmongrelのdevelopment環境)のように エラー内容を人目でわかるようにしたいのですが、そのようにエラーを表示する方法はないものでしょうか?
675 名前:nobodyさん [2010/01/12(火) 20:27:20 ID:4XZzyMEc] >>666 configatron www.moongift.jp/2008/09/configatron/
676 名前:nobodyさん mailto:sage [2010/01/12(火) 22:54:24 ID:???] >>673 なぜpages_controller.rb? その説明だけだと、items_controllerになりそうな感じだけど。
677 名前:nobodyさん mailto:sage [2010/01/12(火) 22:57:41 ID:???] >>671 これ使うとか。自分はまだ使ったことないけど。 github.com/grosser/tracked_plugins >>673 ヘルパーメソッドのwill_paginateに渡すのはArrayじゃなくて、 paginateの戻り値のWillPaginate::Collectionじゃないといけない。 なので、コントローラかビューのなかで@itemsをArrayにしちゃってないか確認してみて。 >>674 ・Exception Logger:DBにエラーを保存してアプリ上で閲覧 ・Exception Notifier:エラーをメールで送信 ・Syslogに記録:blog.s21g.com/articles/229 ・Clarity:ログ監視ウェブアプリ www.moongift.jp/2009/11/clarity/
678 名前:nobodyさん [2010/01/14(木) 21:03:02 ID:MmCuc8fs] Do One Thing for Rails 3 on January 16th and 17th railsbridge.org/news_items/10
679 名前:674 mailto:sage [2010/01/14(木) 21:35:26 ID:???] >>677 たくさんありがとうございます! 一番下の見ていて、webでログ監視すればいいのかって気づいて tailコマンドのphp版設置してみました。部内LANサーバーなので問題ないです。 php1ファイルで設置らくちんw ちょっと不便ですが、致命的になるまではこれで試してみます。 jQueryとPHPでLinuxのtailコマンドを実装する - EC studio 技術ブログ techblog.ecstudio.jp/tech-tips/phptail.html
680 名前:nobodyさん mailto:sage [2010/01/15(金) 16:09:17 ID:???] MYSQLで以下のようなテーブルを使っています。 | id | name | email | check(boolean型) | restful_authenticationプラグインのsignupでユーザーを新規登録した時、 "check"に自動的に0の値を入れたいのですがどのようにすれば良いでしょうか?
681 名前:nobodyさん mailto:sage [2010/01/15(金) 17:33:21 ID:???] スキーマ定義を触れるならMySQLのcreate tableのほうで、 checkカラムにデフォルト値0を設定しておけばいいと思う。 create/save時に未指定なら0が入る。 あとはbefore_saveとかafter_initializeとかのフック。
682 名前:nobodyさん mailto:sage [2010/01/16(土) 04:57:42 ID:???] >>680 はてなのタケルンバさんのblogで丁寧にまとめられていますよ
683 名前:nobodyさん mailto:sage [2010/01/16(土) 20:30:35 ID:???] 基本的にJava屋で、今年からRailsをやってます。 find_by_sqlってのを見つけた瞬間、 find_by_sql("select col1, col2 from table") って感じで使いまくってんだけど、これっていいのだろうか? だっせー、かっこわりーって思われないだろうか?
684 名前:nobodyさん mailto:sage [2010/01/16(土) 20:37:30 ID:???] 求めるタスクがこなせてるならいーんじゃない?
685 名前:nobodyさん mailto:sage [2010/01/16(土) 21:25:58 ID:???] >683 ダサい。 なんでリファレンスをちゃんと読まないんだ。自称Java屋のくせに。
686 名前:nobodyさん mailto:sage [2010/01/16(土) 22:29:46 ID:???] >>683 ほんとにその程度のSQLで使ってるのなら、 ださいとかじゃなくてありえない
687 名前:nobodyさん mailto:sage [2010/01/16(土) 23:25:29 ID:???] もう転職考えた方がいいレベル
688 名前:nobodyさん mailto:sage [2010/01/17(日) 00:01:02 ID:???] >>683 >find_by_sql("select col1, col2 from table") あれ、Table.find() って col1, col2 の指定ってできたっけ? できなかったと思うから、自分もfind_by_sqlよくつかうよ。
689 名前:nobodyさん mailto:sage [2010/01/17(日) 00:04:41 ID:???] 外のカラムが不要な場合は Table.find(:all, :select => 'col1, col2')
690 名前:nobodyさん mailto:sage [2010/01/17(日) 00:05:44 ID:???] うおっ × 外(ほか) ○ 他(ほか)
691 名前:nobodyさん mailto:sage [2010/01/17(日) 03:56:17 ID:???] タケルンバに失笑されるレベル Javaフレームワークは使ったことないんだろか
692 名前:nobodyさん mailto:sage [2010/01/17(日) 10:33:43 ID:???] >>688 間違えた、find_by_sql()じゃなくてActiveRecord::Base.connection.select_rows(sql)だった。 group byやhavingが入るようなsqlだとこっちのほうが楽なんだけど、そんなことない?
693 名前:nobodyさん mailto:sage [2010/01/17(日) 10:41:10 ID:???] AR::Baseとして取り出す必要がないならそれも手ではある。
694 名前:nobodyさん mailto:sage [2010/01/17(日) 11:30:47 ID:???] パフォーマンス(笑)のためだったりするんだろうか。
695 名前:nobodyさん [2010/01/17(日) 16:13:12 ID:mYKzzqeT] 683です。 なるほど、やっぱりダサいのか ちなみに例に上げたのは簡単なやつだけど 実際に使ってるのは、サブクエリーが絡むような複雑なやつなんだけどね >> 691 Hibernate使ってたけど、あまり好きじゃないね >> 694 find_by_sqlの方が、パフォーマンスよくなるん?
696 名前:nobodyさん [2010/01/18(月) 09:03:43 ID:BApO165G] 日本の富豪40人(2010年) - フォーブス長者番付・億万長者ランキング memorva.jp/ranking/forbes/201001_japan_richest40.php 田中良和 グリー創業者 IT 32 1.60 1456億円 笠原健治 ミクシィ創業者 IT 34 0.72 655億円
697 名前:nobodyさん [2010/01/19(火) 13:32:36 ID:aU7LUmun] passengerでrails動かしたいのですが、 DocumentRootにアクセスしてもdispatcher.fcgiのソースが表示されてしまいます。 これって正しくモジュールが読み込まれてないからなんでしょうか。 httpd.confにはLoadModuleもしてるしapacheのエラーは出てません。 LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9 PassengerRuby /usr/bin/ruby どなたか原因解明の手がかりwご存知の方ご教授願います。
698 名前:nobodyさん mailto:sage [2010/01/19(火) 23:30:34 ID:???] .htaccessはどうなってる?
699 名前:nobodyさん mailto:sage [2010/01/20(水) 16:17:25 ID:???] railsを勉強しようと思うんですが、初心者向けで お勧めの本はありますか?あるいは、これは読んで おくべき本でも構いません。
700 名前:nobodyさん mailto:sage [2010/01/20(水) 17:16:39 ID:???] ちょっと古いかもしれないけど かんたんRuby on RailsでWebアプリケーション開発 著者 arton さん ttp://www.amazon.co.jp/dp/4798111570
701 名前:nobodyさん mailto:sage [2010/01/20(水) 17:53:46 ID:???] >>699 ム板で回答しておいたのでそれを貼っときます。 Ruby 初心者スレッド Part 33 pc12.2ch.net/test/read.cgi/tech/1259990485/804 804 名前:デフォルトの名無しさん[sage] 投稿日:2010/01/20(水) 16:21:54 >>800 初心者が最低限これだけあればまずはなんとかなる!って書籍を3つ。 というか俺が実際にRails初心者レベルで仕事で使った本 ・RailsによるアジャイルWebアプリケーション開発 www.amazon.co.jp/dp/4274067858/ ・Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応 www.amazon.co.jp/dp/4839928266/ ・Railsレシピブック 183の技 www.amazon.co.jp/dp/4797336625/ あとは、webサイトだけど公式のガイド。ちょっとしたわからんことはまずこれ見たら大体すむ Ruby on Rails guides guides.rubyonrails.org/ 毎回聞かれてるんで、Railsスレテンプレに入れといていいと思うんだ・・・
702 名前:nobodyさん mailto:sage [2010/01/20(水) 17:58:26 ID:???] ついでに質問いいでしょうか? script/serverで開発用のmongrelなどを立ち上げた場合は、 動的に読み込んでくれているためか大概は開発中にファイルの編集後でも コードの反映はサーバーを立ち上げ直さずにブラウザのリロードで済みますよね? こういうのをscript/consoleでする方法ってないもんでしょうか? script/consoleの再起動はそんなに重くないとはいえ、何回もやってたらけっこう面倒です。 再度requireする?のがよいんでしょうか?
703 名前:nobodyさん mailto:sage [2010/01/20(水) 17:58:49 ID:???] >>699 最近、Head First Railsて本の翻訳が出てて、洋書を読んだ感じだとだいぶよかった。 Rails 2.3にも対応している唯一?の本なので、独特のテンションが嫌いじゃなきゃかなりオススメ。
704 名前:nobodyさん mailto:sage [2010/01/20(水) 18:50:18 ID:???] 質問させてください。 コントローラーのbefore_filterのような感じで、レンダリング前にメソッドを実行するようなフィルタは定義できないものでしょうか? layout/application.html.erb 内でコントローラーのメソッドを(ヘルパー化して)呼ぶしか無いでしょうか?
705 名前:704 mailto:sage [2010/01/20(水) 18:57:33 ID:???] > layout/application.html.erb 内でコントローラーのメソッドを(ヘルパー化して)呼ぶしか無いでしょうか? これダメでした。 ヘルパー内で @hoge = 1234 のようにしてもerbの方に反映されませんね…。 layout/application.html.erb の最初の行にロジックを直書きして対処しました。 何かいい方法ないもんですかね
706 名前:nobodyさん mailto:sage [2010/01/20(水) 19:46:07 ID:???] >>699 Head First Railsが今一番新しくて初心者向けの本、オススメ。 これでわからなかったらRailsは諦めて別なのをやった方がいい。 あと RailsによるアジャイルWebアプリケーション開発の第三版がオススメ 第二版と初版は古いバージョンのRails用だから間違って買うと泣くはめになる。
707 名前:nobodyさん mailto:sage [2010/01/20(水) 19:47:15 ID:???] Rubyスレで質問して、Railスレ逝けと言われて来ました。 今回初めてRubyを仕事で扱うことになり、 RailsによるアジャイルWebアプリケーション開発のT部を読んで Smarty使って、PHPで開発するのとそう変わらないなと思い、 本ちゃんプログラムの解析にかかったのですが・・・ ・ controllers,models,viewsともにjsファイルばかり。 ・ ブラウザでソースをみたら、ログイン画面なのに1万行近くソースがある。 ・ 画面遷移しても、URLは変わらない。 ・ サーバーとクライアントのソースがある? 等、ちょっと見かけたことのない構成でした。 こりゃわからんと思い、参考書の続きを読もうとしましたが、 そもそも参考書読んでわかる内容なのか疑問を持ちまして・・・ そこで、質問なのですが 1.上記のような構成はRailsでは一般的で初心者レベルの話 2.それなりに高度な技術で初心者が参考書を読んだ程度で 太刀打ちできるレベルの内容ではない 3.製作者が変態。そんな作り聞いたことがない。まず見かけない。 いずれですか。 1なら参考書読んで調べます(キーになる単語を教えてくれると助かります) 2ならダメぽと上に報告します。 3なら・・・頑張ります。 以上、教えて下さい。。。
708 名前:nobodyさん mailto:sage [2010/01/20(水) 19:49:37 ID:???] あとRails始めるなら RSpecも同時に調べておいた方がいい。 BDD、TDDなどの開発手法を要チェック。 cucumberも
709 名前:nobodyさん mailto:sage [2010/01/20(水) 19:51:53 ID:???] >>707 >>706
710 名前:nobodyさん mailto:sage [2010/01/20(水) 19:58:41 ID:???] >>707 たぶんほとんど全機能をAJAXで実装しているんじゃないかね。 Railsがその中でどう使われているかは質問だけでは分からないけど…
711 名前:nobodyさん mailto:sage [2010/01/20(水) 20:38:09 ID:???] >>710 ありがとうございます。 確かに、ブラウザの戻るボタンがグレーアウトしてる等 思い当たる節はあります。 AJAXを使用しまくっているという前提に立ってもう一度 解読してみます。
712 名前:nobodyさん [2010/01/20(水) 22:19:08 ID:Qj1mXafK] >>702 reload!
713 名前:nobodyさん mailto:sage [2010/01/21(木) 00:05:32 ID:???] >>704 レンダリング前ってつまりcontrollerのアクション内がそうだけど、 ビューのレンダリングのタイミングで処理したい理由は? >>707 これだよね? www.amazon.co.jp/dp/4274067858/ ソースコード↓を見ても、Ajaxなんて使ってないけど。 www.ohmsha.co.jp/data/link/978-4-274-06785-3/ 第1版しか読んでないけど、最初から全部Ajaxで作るみたいな珍妙な本ではないはず。
714 名前:nobodyさん mailto:sage [2010/01/21(木) 00:14:02 ID:???] >>713 本で学んだ後「本ちゃんのプログラム」にとりかかっている、と解釈した。
715 名前:704 mailto:sage [2010/01/21(木) 08:26:59 ID:???] >>713 ありがとうございます。 layouts/application.html.erbのサイドバー内に サイドバーなどにDBからクエリーしてきた最新の結果を常に表示したい、という感じです。 例えが難しいのですが、例えば睡眠時間を記録するサイトで サイドバーに今日の睡眠時間、といったような数値を表示したいとします。 その場合、application_controllerにbefore_filterかまして 毎度呼ばれるのメソッド内にて今日の睡眠時間を取得する処理を書くと、 コントローラー内で処理をする前の数値を取得してしまいます。 コントローラー内で処理をした後の数値を表示したいのです(つまりできるだけレンダリング前に)。 なので、layouts/application.html.erbの先頭に、 今日の睡眠時間を取得する処理を書いちゃえ!ってことなんですが、 (できるだけモデル依存部はモデルに書くとしても)そういうロジックをviewに各のはどうなんだ、と思った次第です。
716 名前:nobodyさん mailto:sage [2010/01/21(木) 08:32:44 ID:???] >>707 適当に予想します。 jsばっかり=フロントエンドがAJAX(JavaScript)、バックエンド処理がRails (それでもmodelsがjsばっかりはない気が?) JS(AJAX)がクライアント処理、サーバーがRailsと見た。 RSSリーダーのOpen Fastladder(Livedoor ReaderのRails実装でソース公開されてるやつ) みたいなのをイメージしたんだけど違うかな。 つまり、RailsでwebアプリのAPIをガリガリ書いて、JavaScriptでガワを作るような構造。 まずは、テストコードを読むことから始めたらどうかな? ちゃんとしたアプリならテストがたくさん書かれているはずなので、 どんな感じにモデルを扱っているかとか仕組みがわかるはず。
717 名前:nobodyさん mailto:sage [2010/01/21(木) 09:21:00 ID:???] >>715 after_filterじゃいかんの?
718 名前:nobodyさん mailto:sage [2010/01/21(木) 11:03:39 ID:???] scaffoldした時のshowアクションの挙動を止めたいんですが、何か方法はありますか? 新しい独自のアクション(hoge)を追加したときに、コントローラ名/hogeというアドレスに アクセスすると、showアクションでIDがhogeという風に動作してしまいます route.rbにて:exceptや:onlyなどを用いてshowアクションを取り除くようにしてみましたが、いずれも駄目でした
719 名前:nobodyさん mailto:sage [2010/01/21(木) 19:03:10 ID:???] migrationの質問です。 DBのmigrationでself.downに元に戻す処理を書くと思うのですが、 カラムの追加や変更等簡単な処理は元に戻す処理は簡単にかけるのですが、 例えば、仕様変更であるキーの重複するレコードを削除するとか、その処理を元に戻す場合だと 処理が複雑で簡単には元に戻せなかったりしませんか? そのような場合、self.downをどのように書いたものでしょうか? self.upで変更するレコードを外部ファイルにまるごと(mysqldumpとかで)ダンプして、 self.downで戻すときはダンプしたのを(mysqlコマンドに)つっこむとかそういうったことしないといけないものなのでしょうか? 今は、整合性が取れなくならない場合(カラムとかをいじらないとか)で元に戻す処理が複雑な場合は、 self.downを書かなかったりしますが、どうしたものかなーと。 運用サーバーの方ではcapistranoでデプロイでdb:migrateをかけるときには 自動でmysqldumpするようにしかけてあるのでバックアップ自体は大丈夫なのですが・・・
720 名前:nobodyさん mailto:sage [2010/01/21(木) 19:22:34 ID:???] >>718 rake routesしてルーティングを確かめるんだ!!
721 名前:707 mailto:sage [2010/01/21(木) 22:01:06 ID:???] >>716 >jsばっかり=フロントエンドがAJAX(JavaScript)、バックエンド処理がRails そんな感じでした。 フロントエンドで、SproutCore(始めて知ったのですが)を使用してました。 サーバーがRailsで、作りとしては、 最初にガサっとサーバーからデータを取ってきて、 フロントエンドで加工して使いまわして、 必要なときだけサーバーとデータをやり取りする感じでした。 >(それでもmodelsがjsばっかりはない気が?) クライアント側を見ていました。 SproutCoreの構成がRailsによく似てたので。。。 サーバー側では、ちゃんとrbファイルがありました。 また、ブラウザでソースみたら1万行近く云々と言っていたのは どうも、SproutCoreはビルドできるらしく、1つに固められた rhtmlファイルのソースを閲覧していたみたいです。 今、試しに元のソースをビルドしようとしたら、文法エラー undefined local variable or method 'output' でビルドに失敗したので、このソースは本当にビルドできるのか 先方に確認中です。 まさかとは思いますが、Windowsではビルドできない(Ruby1.8.6.111) なんてことはないですよね。。。 また何か進展がありましたら、報告させて頂こうと思ってます。 ありがとうございました。
722 名前:nobodyさん mailto:sage [2010/01/22(金) 01:43:39 ID:???] >>715 いまのところ rails 標準にはないので、github.com/xtoddx/before_render のようなのを使うしか。 before_renderで検索するとこれの他にもいくつか実装が見つかる。 >>718 map.resources :items, :collection => [:hoge] などと書けば良いかと。 詳しくはこの辺で d.hatena.ne.jp/zariganitosh/20080203/1202091772