1 名前:nobodyさん mailto:sage [2009/04/30(木) 23:07:27 ID:???] ■前 Ruby on Rails のスレ が pc11.2ch.net/test/read.cgi/php/1224838013/ ■参考サイト <英語> 本家: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 35 pc12.2ch.net/test/read.cgi/tech/1238194350/ Ruby 初心者スレッド Part 27 pc12.2ch.net/test/read.cgi/tech/1238632943/l50
62 名前:nobodyさん mailto:sage [2009/05/12(火) 20:58:40 ID:???] elseとか考えなくて良いなら x.classify.constantize.find :all
63 名前:nobodyさん mailto:sage [2009/05/12(火) 21:02:44 ID:???] 977 名前:nobodyさん[] 投稿日:2009/04/27(月) 20:17:33 ID:ty2d5Btl すいません分かりにくかったかもしれないと思ったので書き直します・・ if x='friends' User.friends elseif x='pearents' User.parents else x='children' User.childern end を一行で書けないか・・みたいな感じです。 978 名前:nobodyさん[sage] 投稿日:2009/04/27(月) 20:24:34 ID:??? User.send(x) 979 名前:nobodyさん[sage] 投稿日:2009/04/27(月) 20:26:28 ID:??? > 977 User.method(x).call
64 名前:58 [2009/05/12(火) 21:04:34 ID:8mXS3koF] >>61 >>62 レスありがとうございますm(__)m >classify.con... うおぉぉ。。 rubyすごすぎる(笑)
65 名前:nobodyさん mailto:sage [2009/05/12(火) 21:18:38 ID:???] >>62 xが外部入力だったら超怖い気がするのです…w フィルタかける方法ないの?
66 名前:nobodyさん mailto:sage [2009/05/12(火) 21:29:38 ID:???] じゃ、 x.classify.constantize.find(:all) if ["dog", "cat", "horse"].include?(x)
67 名前:nobodyさん mailto:sage [2009/05/12(火) 21:36:33 ID:???] >>64 ビジネスロジック層で得意げにメタプログラミングを駆使とか絶対やめとけよ・・・ いつか刺されるぞ・・・
68 名前:nobodyさん mailto:sage [2009/05/12(火) 21:43:04 ID:???] それでソースがすごくすっきりするならいいと思うけど困るときもあるね 「使いたいから使う」みたいなのもたまに見かけるし
69 名前:nobodyさん mailto:sage [2009/05/13(水) 05:15:55 ID:???] >>50 >ユーザのrole機能 そんな機能があったんかー、しらんかった。pluginかな? ActiveRecord継承のRoleモデルつくってた。 まだ初めて半年だけど、もう以前の環境(php)には、戻れなウィッシュ。
70 名前:nobodyさん mailto:sage [2009/05/13(水) 08:44:50 ID:???] 単にrole based access controlを実装するという話だと思った。 確かにActiveRbacというプラグインもあるけど。 概念はRails Recipesにも載ってるね。
71 名前:nobodyさん mailto:sage [2009/05/16(土) 18:32:34 ID:???] よくわかっていない質問ですまないのですが、お聞きください。 こちらのwebベースrailsコンソールのgeneratorプラグインを使ってみようとしているのですが、 eviltrout's kawaii at master - GitHub github.com/eviltrout/kawaii/tree/master 通常のプラグインのインストールのように、 ruby script/plugin install git://github.com/eviltrout/kawaii.git とするのではなく、ダウンロードしきて、lib/generatorsに放り込め、とあるのですが、 つまりこれは、lib/generators放り込むところが手動になってしまいます。 こういうのって、上記のようにインストールしただけでgeneratorに組み込めるようなプラグイン側の仕組みってないものでしょうか? まあ、公式にも別途あるように、一度~/.rails/generatorsにいかに入れとけばいいという話もあるのでしょうが… kawaii公式のインストール項目抜粋 > 1. Install the Kawaii generator > > If you want to generate Kawaii in multiple rails apps: > Copy the kawaii directory to ~/.rails/generators > > To install for one rails app: > Copy the kawaii directory to your application's lib/generators directory. > (You might have to create lib/generators yourself.)
72 名前:nobodyさん mailto:sage [2009/05/16(土) 18:47:23 ID:???] vendor/plugins/プラグイン名/lib/generatorsにファイルがあれば、 generatorとして認識される。 こいつがそういう配置になってないだけ。
73 名前:nobodyさん mailto:sage [2009/05/16(土) 23:17:33 ID:???] @categories = Category.find(:all, :order => :category) 上記はcategory ascでソートされますが、これをcategory descで ソートされるようにするのにいい方法はありますでしょうか? :order => 'category desc' とすれば一応できたのですが、これだと テーブルのカラム名を直に入力してしまうので、これをやってしまっていいのか迷っています。 よろしくお願いします。
74 名前:nobodyさん mailto:sage [2009/05/16(土) 23:28:15 ID:???] :orderの値には「SQLの一部」を書くことになっているので、その方法でOK。 シンボルを書けるのは、単にSQLに埋め込むときにシンボルを #to_s した ものが入るから。
75 名前:nobodyさん mailto:sage [2009/05/16(土) 23:37:41 ID:???] なるほど、レスさんくす。 通常あり得ないとは思うけど、カラム名が変わったときにシンボルで指定できると 修正が1カ所ですむけど、カラム名直書きしてしまうと、そのカラムが含まれる すべての箇所を修正しないといけないから、何かスマートな方法あるかなと思っただけなんだ。
76 名前:nobodyさん mailto:sage [2009/05/17(日) 00:00:07 ID:???] class Category named_scope :by_category_asc, :order => 'category ASC' named_scope :by_category_desc, :order => 'cateogry DESC' end としておくと、 Category.by_category_desc.find(:all, :conditions => '...') などと書ける。 パラメータはマージされるので何度もSQLが走るということもない。
77 名前:nobodyさん mailto:sage [2009/05/17(日) 00:11:22 ID:???] なるほど、ありがとう! 上の方法の方がスマートなので、そっちで書いてみます。
78 名前:nobodyさん mailto:sage [2009/05/17(日) 00:18:09 ID:???] > カラム名が変わったときにシンボルで指定できると修正が1カ所ですむけど この意味が分からないのだが、 例えば「category」カラムの名前が「business_category」に変わったとしたら、 その1カ所をどういうふうに修正するの?
79 名前:nobodyさん mailto:sage [2009/05/17(日) 00:35:24 ID:???] すみません、シンボルをどこかに実体があって、それを シンボリックリンクのように参照しているものだと妄想してました…。
80 名前:nobodyさん mailto:sage [2009/05/17(日) 02:22:44 ID:???] >>79 なるほど、了解。自分が知らない重大なことかと思ったよ。
81 名前:nobodyさん mailto:sage [2009/05/17(日) 15:05:25 ID:???] >>72 なるほどやっぱりそうなんですね。 というか、railsのソース見てて思ったんですが Rubygemsでも特定の配置にしたら、railsのgeneratorとして読み込んでくれるんですね。 利用者としてはこっちの方が簡単だ。 ちゃんと動くの確認したら、gems化の要望出しときます…。
82 名前:nobodyさん mailto:sage [2009/05/17(日) 15:13:57 ID:???] ところでアプリケーションテンプレート使ってる? 何となくどんなの使ってるかしりたいんで皿島元々 plugin 'restful-authentication', :git => 'git://github.com/technoweenie/restful-authentication.git' plugin 'forgot_password', :git => 'git://github.com/greenisus/forgot_password.git' plugin 'role_requirement', :git => 'git://github.com/timcharper/role_requirement.git' gem 'mislav-will_paginate', :lib => 'will_paginate', :source => 'gems.github.com ' gem 'rubyist-aasm', :lib => 'aasm', :source => 'gems.github.com ' gem "capistrano-ext", :lib => "capistrano" rake("gems:install") generate("authenticated", "--include-activation", "--aasm", "user", "session") rake("db:migrate") generate(:controller, 'welcome', 'index') route "map.root :controller => 'welcome'" run "rm public/index.html" run "rm public/images/rails.png" file ".gitignore", <<-CODE .DS_Store log/*.log tmp/**/* db/*.sqlite3 doc/api doc/app CODE run "touch log/.gitignore" run "touch tmp/.gitignore" git :init git :add => "." git :commit => "-a -m 'Initial commit'"
83 名前:nobodyさん mailto:sage [2009/05/17(日) 15:21:02 ID:???] いかん。すげー中途半端なテンプレだな。 なにやりたいかってbortぽいのをアプリケーションテンプレート使って作りたいんだけど素人は一からコツコツやれってことだろなぁ。
84 名前:nobodyさん mailto:sage [2009/05/17(日) 17:37:58 ID:???] >>82 自分はまったく使ってないわ。 そんなに新規で作る事が少ないというのもあるけど、 一から設定するのもそれほど手間じゃないから。 今よく使うのはこんなもんかな。 mislav-will_paginate jpmobile postgres rmagick i18n_genrators mongrel mongrel_cluster バージョン管理はSubversion。 そのうちgitも試してみたいと思う。 公開する時は、Passengerを使う事が多くなってきたけど、 スペックが低いサーバだとPassengerよりmongrelを複数起動して、 Apacheのproxy_balancerで動かすほうがレスポンス早いので、mongrelもしばらく使うつもり。
85 名前:82 mailto:sage [2009/05/18(月) 00:04:25 ID:???] アプリケーションテンプレート集みつけたんで一応はっときますよ github.com/jeremymcanally/rails-templates/tree/master >>84 確かにPassengerの初回起動は遅いもんなぁ。 mongrel使った事ないから試してみるよ!
86 名前:nobodyさん mailto:sage [2009/05/18(月) 00:53:06 ID:???] >>85 mongrel 使ったことないということだけど、 普段(ローカルの開発環境) は webrick 使っていて、本番環境は Passenger を使っているの?
87 名前:82 mailto:sage [2009/05/18(月) 01:22:25 ID:???] >>86 うん 開発webrickで本番Passenger。 monoで開発してた時も開発XSP本番mod_monoだったなぁ。 なんとなくapacheの方が安定してるのかなぁという思い込みでt
88 名前:nobodyさん mailto:sage [2009/05/18(月) 01:24:25 ID:???] なぜ今さらMongrel? もう1年くらい開発止まってるでしょ。 今ならThinかEbbじゃないの。
89 名前:86 mailto:sage [2009/05/18(月) 02:32:23 ID:???] >>87 なるほど、どうもありがとう。 >>88 私はRailsはじめて2ヶ月弱なので、そういうのがわからないんです。 職場のプロジェクト環境が、ローカルの開発環境は mongrel で(gem install だけで入るし、Windows でも動くので)、 本番をどうしようかと話していてます(本番は passenger の予定) Passenger が出てくる前は、雑誌やwebを読んでいて、 fastCGI、lighttpd、apache + mongrel_cluster という組み合わせがあったけど、 いまは本番運用ではどれが定番なんですか?(Linuxの場合) Thin と Ebb というのは初めて知ったのでこれからググってくる。
90 名前:nobodyさん mailto:sage [2009/05/18(月) 08:33:09 ID:???] ここのスレ見て参考にしてPassengerにしたら1日半に1回くらい順調に落ちる。ありがとな。 ホスティングだからメモリの問題だとは思うけど。
91 名前:nobodyさん mailto:sage [2009/05/19(火) 06:26:08 ID:???] 2年前くらいにrailsはアジャイルだって騒がれてたけど 今でもrailsは開発早いの? それとも何か新しいのでた? ほかの言語もrails並に早くなった?
92 名前:nobodyさん mailto:sage [2009/05/19(火) 07:14:33 ID:???] 結局、腕の善し悪しに左右されます
93 名前:nobodyさん mailto:sage [2009/05/19(火) 08:26:28 ID:???] >>91 体制次第。
94 名前:nobodyさん mailto:sage [2009/05/19(火) 11:23:22 ID:???] バージョン頻度と、その互換性のなさに少し微妙な空気が流れている気がする
95 名前:nobodyさん mailto:sage [2009/05/19(火) 11:30:03 ID:???] ほんとバージョン管理しんどいな rails3がでてmerbと統合したら、、
96 名前:nobodyさん mailto:sage [2009/05/19(火) 11:55:09 ID:???] rails は黒魔術が多いなぁ。 複数人でやると、こんな書き方があるのかーというばかり。 聞けば分かるけど、読んだだけではすぐには分からない書き方が多いような気もする。
97 名前:nobodyさん mailto:sage [2009/05/19(火) 12:13:21 ID:???] 読んで分からんというか、そこだけ読んでもわからんというのはある。 動的にメソッド追加してて、どこに定義があるのかctagsで追えないとか。 でも勘とgrepでソース読めばなんとかなるレベルだとは思う。 ruby-debugがマシになってきて、railsの動的なコードの山もあまり怖くなくなってきた気がしなくもない。
98 名前:nobodyさん mailto:sage [2009/05/19(火) 12:57:37 ID:???] >>96-97 それも「開発効率が悪い」の一種だよね
99 名前:nobodyさん mailto:sage [2009/05/19(火) 17:55:25 ID:???] 始めて数日のひよっこだけどメソッドを追えないのは 規定を知らないだけで開発効率関係ないと思う 動的にメソッド入るならコメも入れてよって泣きながら探してる
100 名前:nobodyさん mailto:sage [2009/05/19(火) 22:26:10 ID:???] railsって始めるのに何をしたらいいの? rubyを書けること? MVCを理解すること? railsの統合開発環境をインストールして、どっかの本を見ながらいじればいいの?
101 名前:nobodyさん mailto:sage [2009/05/19(火) 22:34:10 ID:???] APIが理解できれば何とでもなる
102 名前:nobodyさん mailto:sage [2009/05/19(火) 22:38:35 ID:???] >>100 プログラム初心者だと大変かもしれない。 Ruby初心者でも他の言語の経験があれば大丈夫かな。 Rubyが理解できる事が必須だけど、Railsと一緒に覚えていけばいい。 まずは環境のインストール方法が分かりやすく載っている本を買って そのとおり進めていくほうが迷わないのでおすすめ。 本が扱っているバージョンはちょっと古いけど、そのバージョンに自分の環境を合わせる事が大切。 うっかり最新版を入れてしまうと、Railsの仕様が変わっているために迷子になってしまう。
103 名前:nobodyさん mailto:sage [2009/05/19(火) 22:39:09 ID:???] railsで何を作るかをまず決める
104 名前:nobodyさん mailto:sage [2009/05/19(火) 22:57:59 ID:???] 何が作れるか分からない 例えばPHPならデータベースへの接続がしやすいとか、 なんとなーくこういうのに向いてるよっていう指標は無いの? と、全くrubyを知らない俺が聞いてみる。
105 名前:nobodyさん mailto:sage [2009/05/19(火) 23:18:46 ID:???] PHPでやれることはRailsでもできる 好みの問題という気がする。
106 名前:nobodyさん mailto:sage [2009/05/20(水) 02:04:50 ID:???] Webで公開されているAPIがjavaのとき Railsでは使えないの? それとも使えるrailsのgemがあるの?
107 名前:nobodyさん mailto:sage [2009/05/20(水) 02:19:51 ID:???] Web APIということはHTTPを喋って何らかのボディを返すと いうことなので、ふつうは言語不問。 ボディの内容を解釈できるかは足回り(XMLとかJSONとかなら パーサが要るわけで)次第。
108 名前:nobodyさん mailto:sage [2009/05/20(水) 02:53:06 ID:???] レスをそのまま解釈すれば、 普通のAPI(どこかに落ちててWebでダウンロードできる)だと思うけど
109 名前:nobodyさん mailto:sage [2009/05/20(水) 06:03:49 ID:???] Rails3ってでた?
110 名前:nobodyさん mailto:sage [2009/05/20(水) 06:19:02 ID:???] 出たよ。なかなか好印象。
111 名前:nobodyさん mailto:sage [2009/05/20(水) 07:03:26 ID:???] RoRの開発環境って色々あるけど、 今は何を使ったらいいの?
112 名前:nobodyさん mailto:sage [2009/05/20(水) 10:18:11 ID:???] IDEは重いからエディター派 Rinari+emacsか macならtextmateがオヌヌメ
113 名前:nobodyさん mailto:sage [2009/05/21(木) 10:55:01 ID:???] time_selectとかdate_selectのデフォルト値ってどうやって変えればいいですか? from_forでf.time_selectだと:default => {:hour => }があるみたいですが、 time_selectだと上記オプションでは上手くいきません。 Controller側に設定したい時間オブジェクトがあるのでデフォルト値をそれにしたいのですが…。
114 名前:113 mailto:sage [2009/05/21(木) 13:29:08 ID:???] すみません、自己解決しました。
115 名前:nobodyさん [2009/05/21(木) 18:30:28 ID:Fhc0Zbqv] >>111 ・Aptana RadRails重い ・NetBeans めちゃ軽い ただし、rspec、autotest等最新版に対応してないので、小細工がいる。(動かせることは動かせる)
116 名前:nobodyさん mailto:sage [2009/05/21(木) 18:34:10 ID:???] 6.7で対応するんだろ?
117 名前:nobodyさん mailto:sage [2009/05/21(木) 18:50:04 ID:???] >>116 Betaで開発してもOKなら、6.7でもいいと思うよ
118 名前:115=117 mailto:sage [2009/05/21(木) 20:01:06 ID:???] NetBeansためしにNightlyにしたら、autospecとかrspecとかもちゃんと動いた…。 今までの苦労はなんなんだよw >>116 にはありがとうといいたい。 ・NetBeans 6.7m3 Download bits.netbeans.org/download/6.7/m3/ ・NetBeans Nighly ダウンロード bits.netbeans.org/download/trunk/nightly/latest/
119 名前:nobodyさん mailto:sage [2009/05/21(木) 20:43:24 ID:???] betaで良ければって言うけど、正式板リリースは6月じゃなかったか?