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