【Agile】Ruby on rails相談所【DRY】
■ このスレッドは過去ログ倉庫に格納されています
00011
2005/06/13(月) 20:51:40ID:hOTuU4T5まだまだ、日本語の情報が少ないですが、
みんなで、意見を出し合いましょう!!
<英語>
本家: 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
0427426
2006/02/19(日) 07:05:20ID:???app/application.rb に
include LoginEngine
helper :user
model :user
の記述が抜けていたのが原因っぽいです。
0428nobodyさん
2006/02/19(日) 15:38:28ID:???解決したっぽいけど、むちゃくちゃ老婆心で言うと、
> if user?
っていうのは、「user? というメソッドの返り値が真か?」という意味で、
user という変数とは関係ない。"user?" で一つのメソッド。
0429nobodyさん
2006/02/19(日) 20:27:29ID:???テストとかで使ってるんだけどやたら遅くない?
あれなんとかなんないの?
0430nobodyさん
2006/02/19(日) 20:54:08ID:u7ixHIRh目をつぶらないと・・・って思ってる自分はダメですか?
0431nobodyさん
2006/02/19(日) 21:00:45ID:???Ruby 自体が実行速度に重きを置いていない上に、Rails は開発効率最優先で
内部で eval を使いまくったりしてて、とても速く動くような設計じゃないし。
Rails で遅いのが嫌ならハードウェアを増強して富豪的に解決するしかないような。
0432nobodyさん
2006/02/19(日) 22:00:51ID:???___/ 冫 ∧_∧
∧_∧ _ __ (_ / (´∀` )
( ´∀`)/ ) ) | | // \
( ⊃/ // ∧_∧ (__(_/` |
\__// ( ´∀`) _///
 ̄ ∪ ̄∪ (__(__)
「レ」 「イ」 「ク」
0433nobodyさん
2006/02/20(月) 02:27:34ID:H8qNI+9f共通のテンプレートを使うにはどうすればいいんでしょう?
layouts/application.rhtml を使えば、
全部のコントローラーで同じテンプレートを使えるのは
分かったのですが、もう少し、細かい単位でまとめたいのです。
つまり、
a,b,cコントローラーは、共通テンプレート1
d,e,fコントローラーは、共通テンプレート2
という指定をしたいのですが、、
0435nobodyさん
2006/02/20(月) 18:58:57ID:vRXDRBjP0436nobodyさん
2006/02/20(月) 19:39:23ID:???0437nobodyさん
2006/02/20(月) 20:01:04ID:???0438nobodyさん
2006/02/20(月) 20:31:37ID:???0439nobodyさん
2006/02/20(月) 21:08:43ID:vRXDRBjPまだ出てないだろ?少なくてもジュンク堂にはなかった。
0440nobodyさん
2006/02/20(月) 23:19:43ID:???「rails layout」で検索して10件ぐらい見ればどこかに書いてあるだろ!
検索もせずに質問してもイチイチ誰も答えねーつーの。
コントローラ内で layout 指定するときに、メソッドかブロックで動的に指定できるんだよ。
例えば、app/views/layouts/{abc,def}.rhtml があるとして、
app/controllers/application.rb:
class ApplicationController < ActionController::Base
layout proc{|c| %w( a b c ) === c.controller_name ? "abc" : "def" }
end
て入れとけば動くから、あとは case 文でも何でも好きなようにやってくれ。
意味的に分類できるなら、コントローラをサブディレクトリに配置して、ディレクトリ名で
判断してもいいと思うぞ。コントローラ追加時に上記を変更しなくてもいいし。
もっともその場合は、サブディレクトリ毎に1つ継承用のコントローラを作っておいて
そいつが layout "dir1" して、各コントローラは Base でなくそいつを継承すればいいぞ。
あと、コントローラと同名のレイアウトファイルがあると、layout の制御無視でそっちを
読んでしまうので、注意して下さいね。
0442433
2006/02/21(火) 01:10:44ID:???>>440
ありがとうございます!
サブディレクトリ単位でもコントローラーをまとめられるんですね。
これは便利っすね。↓検索してみました
http://www.fdiary.net/ml/rails/msg/879
0443nobodyさん
2006/02/21(火) 15:33:55ID:???ttp://d.hatena.ne.jp/secondlife/20060221/1140500355
25日までワクテカで待つよ。
0444nobodyさん
2006/02/21(火) 16:05:16ID:???0447nobodyさん
2006/02/21(火) 17:15:02ID:???はてなの中のひと
http://d.hatena.ne.jp/secondlife/20060104/1136351145
0452nobodyさん
2006/02/21(火) 22:35:17ID:???0453nobodyさん
2006/02/22(水) 12:14:53ID:???0454nobodyさん
2006/02/22(水) 12:23:06ID:???0455nobodyさん
2006/02/22(水) 17:09:50ID:???0456nobodyさん
2006/02/22(水) 17:22:02ID:???はてなSNS (Powered By Ruby on Rails.)
http://sns.hatelabo.jp/
0457nobodyさん
2006/02/23(木) 01:04:46ID:???なれば、あなどりがたいかいしゃになるだろうなあ。
0458nobodyさん
2006/02/23(木) 02:56:35ID:???http://i.loveruby.net/d/20060220.html#p10
0460nobodyさん
2006/02/23(木) 06:04:48ID:???だれのあなをとるのでつか?
0461nobodyさん
2006/02/23(木) 09:38:03ID:???0462nobodyさん
2006/02/23(木) 09:39:59ID:???25日前に買った人からの報告ヨロ
0464nobodyさん
2006/02/23(木) 15:13:32ID:???アクション以外のメソッドを定義しちゃってもいいんでしょうか。
例えば class FooController で def bar() した場合、
ブラウザで http://localhost/foo/bar とかアクセスできてしまうわけですよね。
もちろん実際には対応するviewがなくてエラーになるんでしょうが、アクション以外のメソッドを起動してしまうのがなんか気持ち悪いんですが、そんなことないですか?
0465nobodyさん
2006/02/23(木) 15:20:29ID:???定義してよい。protected で定義すればアクセスできない。
いや、view から controller.bar とかしたいから public じゃないと
ダメなんすよ。というあなたには、、、
つ hide_action :bar
0466nobodyさん
2006/02/23(木) 16:15:05ID:???なるほど!アクセス制限かけちまえばいいのか。
大変参考になりました。
調子に乗って質問しますが、それではObjectクラスで定義されているようなメソッドはどうするんでしょうか。
これらはhide_actionで隠されている?
0467nobodyさん
2006/02/23(木) 16:37:22ID:???0469nobodyさん
2006/02/23(木) 17:17:15ID:???正解!!
実行可能なアクションは、大雑把に言うとこうなってます。
YourController.public_instance_methods - (ActionController::Base.public_instance_methods + [hide_action されたもの])
つまり、ApplicationController 以降のサブクラスで新たに定義された
public な instance メソッドだけがアクションとして認識されます。
なので、Object の public instance methods にあるものは予約語扱いで、
アクションとしては使えないことになりますね。例えば inspect とか。
って、別にあなたのために調べたんじゃないんだからね。
ちょっと興味あったからだけなんだから、勘違いしないでよね。
0470nobodyさん
2006/02/23(木) 17:44:01ID:???ちょっとだけスレに恩返し。*.rhtmlの文法チェックをするには
erb -x file.rhtml | ruby -c
とすればいい。どっかのblogに載ってたテクニックだけど。
0471nobodyさん
2006/02/23(木) 18:17:54ID:???0472nobodyさん
2006/02/23(木) 19:04:04ID:???0473nobodyさん
2006/02/23(木) 20:05:49ID:???viewの中に以下のような記述がありました。
<%= link_to 'Edit', :action => 'edit', :id => @recipe %>
ここで「:id=>@recipe」というのが気になるんですが、これは「:id=>@recipe.id」ではないでしょうか。
いや、動くんですけど、なんか違和感が。
チュートリアル(Rolling on Rails)だと :id=>@recipe.id なんですが、今の推奨は :id=>@recipe なんでしょうか。
教えてえらいひと。
0474nobodyさん
2006/02/23(木) 22:10:10ID:???って 書き方、どういう意味なの?
マニュアル探してもどこに書いてあるんやら。
0475nobodyさん
2006/02/23(木) 22:18:38ID:???本来は { :bar => "hoge" } という書き方の省略型です。
この場合、キーが「:bar」(Symbolクラス)、値が「"hoge"」(Stringクラス)であるハッシュオブジェクトになります。
例えば
def foo(x, y, options={})
puts "x=#{x}, y=#{y}"
options.each { |key, val| puts "key=#{key}, val=#{val}" }
end
というメソッドがあったとき、本来なら
foo(10, 20, { :key1=>"val1", :key2=>"val2" })
と書きますが、Rubyではこれを省略して
foo(10, 20, :key1=>"val1", :key2"=>"val2")
と書くことができます。 さらに丸カッコも省略して
foo 10, 20, :key1=>"val1", :key2"=>"val2"
と書けます。これがよく使われます。
なおこれはRailsとは関係なく、Rubyのはなしです。Rubyのマニュアルをご覧ください。またはRubyスレでお聞きください。
以上です。
0476nobodyさん
2006/02/23(木) 22:24:02ID:esbdwg11それよりも
Member.find_by_sql([<<-SQL, params[:name], params[:age]])
SELECT *
FROM members
WHERE name = COALESCE(?, name)
AND AGE(birthday) = COALESCE(?, AGE(birthday))
SQL
とかの <<-SQL をはじめてみたときのが、びっくりだった
0477nobodyさん
2006/02/23(木) 22:44:15ID:81PJfTdI0478nobodyさん
2006/02/23(木) 22:45:24ID:???0480nobodyさん
2006/02/24(金) 12:20:33ID:???実行結果が同じなのは実行してみればわかるんだけど、なぜそうなっているのかがわからないので、質問してみました。
ここ読めばわかる、というのでもいいです。
0481nobodyさん
2006/02/24(金) 12:49:05ID:???0482nobodyさん
2006/02/24(金) 15:42:14ID:???http://jp.rubyist.net/magazine/?0008-RubyOnRails#l13
0483nobodyさん
2006/02/24(金) 17:31:20ID:???どうもありがとうございます。この部分ですね。
> id に関連して、もうひとつ。 url_for の引数として :id をキーにして指定するとき、
> 値として渡す ActiveRecord オブジェクトに .id を付けて数値として渡す必要はなく、
> ActiveRecord オブジェクトのままでもよくなった。
>
> url_for は link_to や form_tag などの引数の処理に用いられているのだが、 例えば
> <%= link_to "Edit", :action => "edit", :id => @entry.id %>
> これを
> <%= link_to "Edit", :action => "edit", :id => @entry %>
> と書けるようになった。
> 初めてこれを見たときは違和感があったが、たった3文字でもタイプ数が減ると楽だ。
>
> この機能は、ActiveRecord の CHANGELOG によれば、 ActiveRecord::Base#to_param
> # Enables Active Record objects to be used as URL parameters in Action Pack automatically.
> alias_method :to_param, :id
> によるもので、1.9.0 以降で使えるようになった。
つまり link_to などでは引数のオブジェクトに to_param() を実行してHTTPパラメータ形式に変換するのだが、ActiveRecord::Base クラスではこれが id() へのエイリアスになっている。
そのため、link_to() の引数にモデルオブジェクトを指定すると、to_param() が呼ばれ、エイリアスである id() が呼ばれ、めでたく id に変換されるということですね。
ちょーわかりました。なんて役に立つスレなんだ。
0484nobodyさん
2006/02/24(金) 18:53:44ID:???0485nobodyさん
2006/02/24(金) 19:19:23ID:bCQSSv0+0486nobodyさん
2006/02/24(金) 22:22:44ID:???0487nobodyさん
2006/02/24(金) 23:24:46ID:???0488nobodyさん
2006/02/25(土) 10:39:00ID:???0489nobodyさん
2006/02/25(土) 14:02:31ID:???インストールして、一応動くようになったんだけど、なぜかIEでだけpermalink(個別記事)
の表示ができなくて真っ白な画面になる。Firefoxだと問題なく見ることができる。
不思議なことに、WEBrickベースで動かすとIEでも問題なく見ることができてApache+
FastCGIではpermalinkを見ることができない。
どこから手をつけて調べればよい?
0490nobodyさん
2006/02/25(土) 14:48:13ID:???0491nobodyさん
2006/02/25(土) 20:29:10ID:???0492nobodyさん
2006/02/25(土) 20:39:45ID:KnTTy4O7単純に発売日みて出してるだけかもしれないけど。
0493489
2006/02/25(土) 20:45:37ID:???どうやらエントリーのタイトルが日本語だと駄目っぽい。というわけで
Rails本訳本の日本語を扱うための注意事項を参考に、ApplicationControllerに
set_charsetを追加してやったところ無事に表示されるようになりました。
0494nobodyさん
2006/02/25(土) 21:00:12ID:???ttp://www-06.ibm.com/jp/developerworks/linux/050708/j_l-rubyrails.html (Ruby on RailsによるWebアプリケーションの高速開発)
↑を参考にしてやっているのですが、設定を終えてlocalhost:3000/contact/にアクセスすると
Mysql::Error: Lost connection to MySQL server during query: SELECT COUNT(*) FROM contacts
というエラーが出ます。
>215で同じ症状が出ていたので>223に出ていた対策をしようと思ったらその記述が見つかりませんでした。
どなたか同じような症状で改善された方、改善方法をご存知の方いませんか?
ちなみに環境は
・ruby 1.8.2
・rails 1.0.0
・MySQL 4.1.18
0495nobodyさん
2006/02/25(土) 21:27:08ID:???当方、MacOS X 10.4, ruby1.8.4, rails1.0.0 MySQL5で問題なく動いてます。
MySQLのサーバが上がってないってことじゃないよね。
Rubyは1.8.4のソースとってきて自分でコンパイル&インストールしたほうがいいです。
1.8.2だと問題ありじゃなかったっけ?違ってたらごめん。
0496494
2006/02/25(土) 21:37:55ID:???MySQLサーバは上がっています。
(netstattとpsで確認して、mysqlコマンドで操作ができたので上がっているかと…)
>Rubyは1.8.4のソースとってきて自分でコンパイル&インストールしたほうがいい
なるほど。今からやってみます。
0497nobodyさん
2006/02/25(土) 21:59:31ID:???渋谷のbook1stでは売り切れ。
「午前中はあったんですけどねー」とは店員さんの弁。
「何冊あったんですか?」
「昨日、7冊から10冊入ってきたばかりなんですけど。。。」
「まだ売れるはずだから、発注かけといたほうがいいですよ。」
「そうします。」
仕方ないんで、文教堂でGET。残り1冊だった。
0499nobodyさん
2006/02/25(土) 23:54:57ID:???まじで?すごいあてずっぽうな回答だったんだけど。
うごいてなによりです。
ところでjascaffoldなんていうものがあるんだね。本で紹介されていて、はじめてしった。
0500nobodyさん
2006/02/26(日) 00:59:06ID:???池袋ジュンク堂で買ったけど
残りは平積み1冊、棚に3冊でした。
平積みのところがRailsの本だけ明らかに
少なくなってたし明日には売り切れちゃうんじゃないだろうか。
0501491
2006/02/26(日) 05:14:46ID:???おお、俺も2軒まわったうちの1軒のうちが渋谷のbook1stです。
午後一番くらいで行って、店員に在庫あるか聞いたら
バタバタと走り回って時間かけて探してくれたけど、
結局、「売り場にはまだ入ってきてないみたいです」と
言われました。
0502nobodyさん
2006/02/26(日) 15:27:17ID:???0503nobodyさん
2006/02/26(日) 17:01:25ID:???0504nobodyさん
2006/02/26(日) 19:23:54ID:???Rubyエリアに10冊ほど。奥の新書コーナーに20冊ほど積んであった。
本当に欲しいならここで買うのがいいじゃない?
21時までやっているから仕事帰りでもこれそうだし。
0506nobodyさん
2006/02/27(月) 20:02:08ID:???0507nobodyさん
2006/02/28(火) 12:44:38ID:Topb4OwG私も本をよんで細々と勉強中。
会社のマシンでテスト環境つくれない(業務に関係が無い)から、
リナザウで勉強中。
結構大きな会社なのにASPでSQL埋め込みソースが一杯。
そんな私はサイト改編によばれた派遣屋さんですorz
0508nobodyさん
2006/02/28(火) 13:20:13ID:0HF5o3Qs0509nobodyさん
2006/02/28(火) 13:21:54ID:???0510nobodyさん
2006/02/28(火) 13:55:16ID:???おうちさーばに、っshするとかは?
0511nobodyさん
2006/02/28(火) 14:01:03ID:???すげえ。りなざうでも Rails できるんですね。
漏れも一応持ってるんだけどもっと使いこなさなくちゃだなあ。
0512nobodyさん
2006/02/28(火) 14:14:59ID:XcJ2qlTpproxyかかってるんで、できないんですよー
PHSsshでつなげますが、それならリナザウでやっても一緒かな、と。
自宅鯖には環境あるんですけど、通勤中の勉強中に便利
>>510
SL-C3100ですけどね
Ruby1-8-3で動いてマツ
0514nobodyさん
2006/02/28(火) 17:11:47ID:???> SL-C3100ですけどね
> Ruby1-8-3で動いてマツ
まじかよ。データベースはどうしてるの?
0516nobodyさん
2006/02/28(火) 18:18:39ID:???リナザウSUGEEE!!!
通勤時に電車で座れるなら最高の勉強ツールですね。
そんなことよりも、漏れとして
>結構大きな会社なのにASPでSQL埋め込みソースが一杯。
>そんな私はサイト改編によばれた派遣屋さんですorz
と言うところに、同じ環境で頑張っている人がいるんだなと
というところで、勇気がでたよ。
0517nobodyさん
2006/02/28(火) 19:53:55ID:6VXJbKB8DBはmysqlのver3.22でつ
あとはapache,samba,ssh-serverが動いてます
>>515
knopixはしらないけど、Free/BSDなら動きますよ
>>516
おー同じ境遇ですかぁ。
正直、MVCでの開発にしたいですが、予算が。。。
0518nobodyさん
2006/03/01(水) 12:47:10ID:???遅いし、打ちにくい欠点がありますが、
大きな利点としては、サスペンド、復帰がノートより手軽という所です。
うちは子供がいるんで、手軽にやめられるのが便利で愛用してますが、
そういった事情がないならノーパソのほうがいいでつよ。
スレ違いすみませんでした。
0519nobodyさん
2006/03/01(水) 13:10:36ID:???金ねーよ (´・ω・`)
0520nobodyさん
2006/03/01(水) 14:25:07ID:???もちろん土地とか時間にもよるだろうけど
0521519
2006/03/01(水) 15:51:20ID:???0522nobodyさん
2006/03/01(水) 15:59:30ID:zDukzy4np.71の画像を表示したいんですが、どう入力するんでしょうか。
今は、
images/sk_auto_small.jpg
と入力していますがエラーになってしまいます。
0524nobodyさん
2006/03/01(水) 17:18:24ID:???これ多分、外部のURLを想定してるみたいなので生々しく
http://localhost:3000/images/sk_auto_small.jpg
と image_url に入力すればいいと思う。
p.70 の表示部分見るとわかるけど、そのまま img src=... に表示されてる。
0525519
2006/03/01(水) 17:18:51ID:???うーん。ちと持ち運ぶには大きいかなと思う。
漏れとしては、CF-(Y|T)4 のサイズが限度かも。
この県で、rails で開発してる会社ってあんのかなあ。
0526nobodyさん
2006/03/01(水) 18:15:43ID:???うおーまさに今MacBookで練習中
横幅がでかいからなんか目立つ
新幹線で広げるのがためらわれる
でも画面が広いから、右半分にエディタ、左半分にブラウザでけっこう便利
それより環境設定が大変 CarbonEmacsは自前でコンパイルする必要あるし
Finkはまだバイナリが用意されてなくてすべてソースからコンパイルしなきゃいけない
でもMySQLのバイナリがあったのはびっくり
ちなみにAppleDeveloperCenterでRailsのチュートリアルが掲載 これもびっくり
http://developer.apple.com/tools/rubyonrails.html
■ このスレッドは過去ログ倉庫に格納されています