トップページ⇒php
1001コメント324KB

【Agile】Ruby on rails相談所【DRY】

■ このスレッドは過去ログ倉庫に格納されています
000112005/06/13(月) 20:51:40ID:hOTuU4T5
Ruby on rails に関する相談所です。
まだまだ、日本語の情報が少ないですが、
みんなで、意見を出し合いましょう!!

<英語>
本家: 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
0376nobodyさん2006/01/27(金) 10:24:08ID:???
初歩的な質問っぽくて申し訳ないのですが、
ruby on railsをWindowsXPにインストールしようとしてて、うまくいきません。

http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html
の手順に従っているつもりですが、
gem install rails --remoteすると

Attempting remote installation of 'rails'
Updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails_analyzer_tools, version 1.1.0
Installing RDoc documentation for rails_analyzer_tools-1.1.0...

で終わっちゃうんです。
何が間違っているのでしょうか?
0377nobodyさん2006/01/27(金) 16:32:32ID:???
>>374
できる。殆ど自分で答えを言ってる気もするけど、例えばこんな感じで。

main.rhtml:
<div id="x"><%= link_to_remote 'xx', :url=>{:action=>"draw_editor", :target=>"x_editor"} %>
<div id="x_editor"></div>
</div>

draw_editor.rjs:
page.replace_html params[:target], :partial=>"editor"

_editor.rhtml:
...
0378nobodyさん2006/01/27(金) 22:37:23ID:???
>>377
おーありがとう。できますた。:partialが使えたのね。
render :inline な力技でねじ伏せて動いたけど心が orz でもういいやとか思ってたですが
嘘のようにきれいなコードになってとても嬉しい。

で、遷移のためだけに .rjs 作るの面倒かったのでtrunkなのをいいことにちょっと変更。
def open_editor
render :update do |page|
page.replace_html 'x_editor', :partial=>"editor"
end
end

と同じ処理をメソッドとしてcontrollerに実装。Rails&Rubyすごいわ。
サーバ側コードと画面ファイルだけでブラウザがパカパカ動いてるよ姉さん。
1年前Strusで泣きながらコード書いてた俺はなんだったんだ。
03793762006/01/27(金) 23:32:50ID:???
自己解決しました。
http://blog.livedoor.jp/zep716/archives/21956177.html
ここの方法でインストールできました。
0380nobodyさん2006/01/28(土) 09:58:44ID:???
IISでrailsやりたいのですがBricksで動く所までインストール出来たのですがIIS上で上手くいきません。
通常のCGI設定ではダメなのでしょうか?
0381nobodyさん2006/01/28(土) 11:04:25ID:???
coLinux のほうが楽じゃね?
0382nobodyさん2006/01/28(土) 14:50:55ID:aNmZCgwm
Ruby on Railsで作られたサイトを開くとIEが必ず落ちるんだけど
どうして?
環境は
OS windows 98SE ,IE6
0383nobodyさん2006/01/28(土) 15:14:49ID:???
>>382
IEが落ちゃう画像ファイルもあるし、PCのメモリが32Mと言われても困るし、
そもそも98だし、、、とツッコミ所は満載だが、Rails の version や
サイトの内容がわからないと答えようがない。

とりあえず、もっと情報欲しいので、

* 自分で作った Rails アプリのページなのか?
* Rails製の全てのサイトで必ず落ちるのか?
* wget とかでコンテンツ(HTML)は取れる?(そもそも動作してるのかの確認)
* IE6 以外のバージョンでも落ちる?
* FireFox でも落ちる?
* 取得した HTML を保存しておいて、それをIEで開いても落ちる?

svn trunk の場合、js 周りで結構不具合が出てるので(sliderとか)、
↓を「crash」で検索してみるといいよ。
http://dev.rubyonrails.org/timeline
0384nobodyさん2006/01/28(土) 16:39:31ID:aNmZCgwm
このスレに出たruby関連のURLで言うと

http://www.rubyonrails.org/
http://map.rails2u.com/
http://wiki.rails2u.com/
http://docs.jpror.info/

をIE6で開くと必ず落ちます。
FireFoxでは落ちません。
保存したHTMLを開いた場合も落ちません。
0385nobodyさん2006/01/28(土) 16:47:02ID:???
railsでsqlite3を使っているんだけど、lockのタイムアウト時間を長くしたい。
ActiveRecordから .timeout を発行する方法ってある?
0386nobodyさん2006/01/29(日) 16:23:39ID:???
>>384
当方B版のIE7(タブブラウズ機能つき)だけど、おちないぞ
0387nobodyさん2006/01/29(日) 21:31:01ID:???
win98のせいなんじゃない?
0388nobodyさん2006/01/30(月) 03:29:51ID:???
>>385
SQLite3 の lock の仕組みを知らないのであれだけど、タイムアウト時間を
SQLで指定できるのであれば、ActiveRecord::Base かモデルクラスのクラス
メソッド 'connection' でアダプタを取得して 'execute' で実行できます。

# MySQL で文字コードを指定する例
ActiveRecord::Base.connection.execute("set names ujis")
0389nobodyさん2006/02/02(木) 00:34:51ID:UJUobkKz
キタ━━━━(゚∀゚)━━━━ッ!!

ttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06640-1
RailsによるアジャイルWebアプリケーション開発
・著者:Dave Thomas and David Hansson with Leon Breedt, Mike Clark, Thomas Fuchs, Andrea Schwarz 前田 修吾 監訳
・定価:3990円(本体3800円+税)
・B5変 550頁
・ISBN 4-274-06640-1
・発売日:2006/02
0390nobodyさん2006/02/02(木) 13:51:33ID:???
>>389
原著は古すぎてというか Rails の進化が早くて、もうあまり役に立たないんだよ
ねえ。訳本は最新情報に更新されているのだろうか。
0391nobodyさん2006/02/02(木) 14:15:16ID:???
一応ひととおり言及はしてあるんじゃないかな。

> 付録E Rails 1.0での変更点
0392nobodyさん2006/02/02(木) 17:37:27ID:mKkGWVcR
日本語のRails資料が少ないから、
個人的には期待age
0393nobodyさん2006/02/02(木) 23:50:33ID:???
これで日本でもブレイクするかな?
まわりにrailsって振っても誰も知らないの悲しす。
0394nobodyさん2006/02/03(金) 00:01:54ID:???
railsをなぜかラリスと読んでしまって修正がきかん。
0395nobodyさん2006/02/03(金) 01:42:48ID:???
頑張って原本を買ってまだ半分も読んでないのに(涙
0396nobodyさん2006/02/04(土) 00:38:45ID:???
ラリス
0397nobodyさん2006/02/05(日) 23:47:33ID:oNm7vcvw
今月の日経ソフトウエアのサンプルを動かしてみた人はいますか?
写真をアップロードするところで

undefined method `original_filename' for "hogehoge.jpg":String

というエラーが出て動きませんでした。
メソッドが未定義なのはわかるのですが、original_filenameという
メソッドを定義するようなポイントは書いてなかったのですが。。。
0398nobodyさん2006/02/06(月) 12:22:32ID:???
日経読んでないけど、original_filename は cgi.rb にあるね。
0399anonymous2006/02/07(火) 07:04:52ID:???
>>397
:multipart => true
0400nobodyさん2006/02/07(火) 12:13:45ID:???
誰か、typoの設置方法や運営方法を日本語で
懇切丁寧に書いているところを教えてくれ。
0401nobodyさん2006/02/08(水) 18:44:14ID:???
>>400
ないんじゃない?
使いたいなら自分でhackするくらいの気合いで
0402nobodyさん2006/02/08(水) 21:55:45ID:???
>400

http://blog.masuidrive.jp/articles/2005/10/29/test
0403nobodyさん2006/02/09(木) 14:55:36ID:???
rhtml-mode.elとかってないのかな。
0404nobodyさん2006/02/09(木) 15:27:01ID:???
>>403
おとなしくhtml-modeで我慢。
0405nobodyさん2006/02/09(木) 23:05:21ID:???
yahtml-modeが便利
0406nobodyさん2006/02/10(金) 00:27:26ID:???
近日発行のまま変わらないなあ。
いつ出るんだろ。
0407nobodyさん2006/02/11(土) 16:03:17ID:???
SoftwareDesign 2005/12
のRails記事を見て勉強してるんですが、下記のようなエラーが出ます、解決法はありますか。
記事の151ページの「検索」でhttp://localhost:3000/item/list?keyword=testにアクセス時

./script/../config/../app/views/item/list.rhtml:4: parse error, unexpected $undefined., expecting ')'
<%= end_form_tag ).to_s); _erbout.concat "\n"
^
./script/../config/../app/views/item/list.rhtml:5: parse error, unexpected $undefined., expecting ')'
_erbout.concat "\n"
^
./script/../config/../app/views/item/list.rhtml:6: parse error, unexpected $undefined.
_erbout.concat "<dl>\n"
0408nobodyさん2006/02/11(土) 18:56:03ID:???
>>407
エラー読まないの? それとも読んでもわからないの?
0409nobodyさん2006/02/11(土) 19:14:48ID:???
>>408
よんでもわからんです。
0410nobodyさん2006/02/11(土) 20:40:58ID:???
>>407
カッコを閉じてない所があるんだろ。
そう書いてあるじゃん。
list.rhtmlの3〜6行目辺りをチェックしてみれ。
0411nobodyさん2006/02/11(土) 21:02:21ID:???
>>410
おまいは優しいやつだなぁ
0412nobodyさん2006/02/11(土) 21:46:27ID:???
list.rhtmlの最初の6行です
おかしいとこありますか?

<%= form_tag :action=>"list" %>
キーワード: <input name="keyword" value="<%=h @params[:keyword] %>"/>
<%= submit_tag "検索" %>
<%= end_form_tag %>

<dl>
0413nobodyさん2006/02/11(土) 22:44:38ID:???
そのコードを貼り付けると表示されるので、そこはおかしくない。
だから、何か環境がおかしい。

他のページは動くのか?
3行目と4行目をそれぞれ削ってみてもエラーは変わらないか?
04144122006/02/11(土) 23:18:19ID:???
>>413
http://localhost:3000/item/にアクセスしても>>407と同じエラーが出ます
3行目と4行目をそれぞれコメントアウトしてもエラーがでます。

list.rhtmlの7行目以降です

<% for item in @items %>
<dt><%= link_to h(item.title), :url=>item.url %></dt>
<dd><%=h item.description %>
  <%= link_to '[Edit]', :action => 'edit', :id => item %>
  <%= link_to '[x]', { :action => 'destroy', :id => item }, :confirm => 'Are you sure?' %>
</dd>
<% end %>
</dl>

<%= link_to 'Previous page', { :page => @item_pages.current.previous,:keyword=>@params[:keyword] }
  if @item_pages.current.previous %>
<%= link_to 'Next page', { :page => @item_pages.current.next,:keyword=>@params[:keyword] }
  if @item_pages.current.next %>
<br />

<%= link_to 'New item', :action => 'new' %>
0415nobodyさん2006/02/12(日) 00:02:01ID:???
controller 側から、(viewで使うことの出来ている) helper のメソッドを使いたいんだけど、
どうしたらいいのか分からん。

誰か教えてくださいまし。
0416nobodyさん2006/02/12(日) 00:05:06ID:???
>>414
http://localhost:3000/item/でどのActionが動いてるのか分からないんですが。
で、あなたが作った環境で、テストページでも良いから動いたページはあるのですか?

あと、コメントアウトってどうやったのですか?
まさか、
<!--
キーワード: <input name="keyword" value="<<%=h @params[:keyword] %>"/>
<%= submit_tag "検索" %>
-->とか?

ってかRubyがParseに失敗してるんだから、確実なのは実際に行を削除することです。
0417nobodyさん2006/02/12(日) 00:24:38ID:???
>>415
helper は view のためのメソッドを突っ込むところだと思うのだけど。
0418nobodyさん2006/02/12(日) 01:28:22ID:???
Ruby on Rails グッズ
http://www.cafepress.com/rubyonrailsshop
0419nobodyさん2006/02/12(日) 02:12:51ID:???
>>415
手っ取り早く使いたいならこんな感じで。
class ApplicationController
include HogeHelper
include ActionView::Helpers::TextHelper
end
0420nobodyさん2006/02/15(水) 13:27:03ID:ym5jAylf
むかしのRailsのホームページにあった、モデルやビューやコントローラの
関係をあらわしたダイヤグラム図っぽいものって、今どこにあるかわかる人
いますか?
0421nobodyさん2006/02/15(水) 20:35:32ID:???
>>407,414
*.rhtmlファイルのままだと、エラーの原因がわかりにくいと思います。
そこで erb をつかって、*.rhtmlをRubyスクリプトに変換してみることをおすすめします。
具体的には次のようにしてください。
$ erb -x example.rhtml > example.tmp.rb # *.rhtmlをRubyスクリプトに変換
$ ruby -wc example.tmp.rb  # Rubyスクリプトをチェック
$ cat -n example.tmp.rb | less  # 該当箇所を眺める

あと >>416 がいっているように、行を削除していくことで原因を絞り込むのも有効な方法です。

なお >>407 のエラーから察するに、どこかで '%>' が抜けているものと思われます。
<%= form_tag %>
 <%= expr >  ← たとえばこんな感じで %> が抜けている
<%= end_form_tag %>
そのせいで、抜けた箇所の直後の '<%=' が残ったままエラーメッセージに含まれているのでしょう。

以上です。遅いレスですが、お役に立てれば。
0422nobodyさん2006/02/17(金) 13:25:50ID:???
Rails批判だそうで。
http://discuss.joelonsoftware.com/default.asp?joel.3.309321.3
英語あんまり読めんのですが、どんなもんですか?
0423nobodyさん2006/02/17(金) 13:25:55ID:???
「RailsによるアジャイルWebアプリケーション開発」
の本、近日から全然かわらねぇ……

なんとなく書店に通っているオイラが通りますよ
0424nobodyさん2006/02/17(金) 22:55:54ID:???
>>418
欲しいんだけどどうやって買えばいいの?
0425nobodyさん2006/02/18(土) 00:43:24ID:???
>>422
1. IT TAKES THE RELATIONAL OUT OF RELATIONAL DATABASE MANAGEMENT SYSTEM
外部キーを自動検出して has_many belongs_to を自動的に設定してほしい、など
(schema の情報だけではどういうリレーションなのか分らないと反論されている)

2. RAILS DOESN'T PLAY WELL. WITH ANYONE. NOT EVEN ITSELF.
一々ウェブサーバを再起動しないとコードの変更が反映されない
(Joel の勘違い。delevepment モードならその場で反映される)

3. YOU CAN'T READ THE FACKING MANUAL BECAUSE THERE IS NO FACKING MANUAL.
API リファレンスやビデオや本はあるがオンラインのマニュアルがない。

4. RAILS ATE MY DATA, OR AT LEAST STOOD IDLY BY WHILE MY DATA WAS EATEN
データに対して何も(例えば validation を)してくれない
(validates_* などを書かなくても自動的にしてくれという主張なのだと思う。
DHH のコメントによれば、schema には validation に十分な情報がないとのこと)

5. THE FIRST RULE OF RAILS IS: DO NOT TALK ABOUT RAILS' RULES!
テーブル名の複数形をはじめとして(暗黙的な)ルールが多い。

6. THERE'S MORE THAN ONE PLACE TO SAY IT
設定が分散されており、ファイル構成が複雑だ。
0426nobodyさん2006/02/19(日) 06:16:58ID:nRO1Mljk
LoginEngineを使おうと思っているのですが、付属の
user_controller.rbの以下の行でNoMethodErrorエラーが
出てしまっています。

> if user?

多分、user変数があるかどうかをチェックしているだけだと思うのですが、
「?」の正しい使い方を調べているのですが、なかなか発見できず・・・
すみません、どう修正すればいいか教えて貰えませんでしょうか。
04274262006/02/19(日) 07:05:20ID:???
すみません、解決しました。
app/application.rb に

include LoginEngine
helper :user
model :user

の記述が抜けていたのが原因っぽいです。
0428nobodyさん2006/02/19(日) 15:38:28ID:???
>>426
解決したっぽいけど、むちゃくちゃ老婆心で言うと、

> if user?

っていうのは、「user? というメソッドの返り値が真か?」という意味で、
user という変数とは関係ない。"user?" で一つのメソッド。
0429nobodyさん2006/02/19(日) 20:27:29ID:???
rakeってのをRoRで初めて知って
テストとかで使ってるんだけどやたら遅くない?
あれなんとかなんないの?
0430nobodyさん2006/02/19(日) 20:54:08ID:u7ixHIRh
rubyをつかってる限り速度(遅さ)には
目をつぶらないと・・・って思ってる自分はダメですか?
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
という指定をしたいのですが、、
0434nobodyさん2006/02/20(月) 06:35:15ID:???
>>433
controllerでlayout "hoge"って書いたらhoge.rhtmlが使われると思ったけど。
0435nobodyさん2006/02/20(月) 18:58:57ID:vRXDRBjP
誰だよ。Rubyなんて作った奴!
0436nobodyさん2006/02/20(月) 19:39:23ID:???
マーケッター
0437nobodyさん2006/02/20(月) 20:01:04ID:???
買った
0438nobodyさん2006/02/20(月) 20:31:37ID:???
買ったって、「RailsによるアジャイルWebアプリケーション開発」が、もう本屋に並んでる?
0439nobodyさん2006/02/20(月) 21:08:43ID:vRXDRBjP
>>438
まだ出てないだろ?少なくてもジュンク堂にはなかった。
0440nobodyさん2006/02/20(月) 23:19:43ID:???
>>433
「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 の制御無視でそっちを
読んでしまうので、注意して下さいね。
0441nobodyさん2006/02/21(火) 00:01:03ID:???
>>440
脳内でツンデレ補完してちょっと萌えた。
04424332006/02/21(火) 01:10:44ID:???
>>434
>>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:???
だいにのじんせいとかいうなまえのひとって、どんなひと?
0445nobodyさん2006/02/21(火) 17:01:01ID:???
>>444
それではまずはあなたからお名前と自己紹介をどうぞ。
0446nobodyさん2006/02/21(火) 17:08:59ID:???
>>445
頭ダイジョウブ?
0447nobodyさん2006/02/21(火) 17:15:02ID:???
>>444

はてなの中のひと
http://d.hatena.ne.jp/secondlife/20060104/1136351145
0448nobodyさん2006/02/21(火) 17:16:03ID:???
>>447
そんなじょうほうはだれでもしってるとおもわれ。
0449nobodyさん2006/02/21(火) 17:31:05ID:???
>>448

この人、有名な人だったんだ。すまん。
0450nobodyさん2006/02/21(火) 19:15:12ID:???
>>445
nobody って名乗ってるだろが
0451nobodyさん2006/02/21(火) 19:20:18ID:???
>>450
では、どんなひとか自己紹介をどうぞ。
0452nobodyさん2006/02/21(火) 22:35:17ID:???
nobody なにちゃんねらでつ。
0453nobodyさん2006/02/22(水) 12:14:53ID:???
dynamitebody なにちゃんねらでつ。
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:???
はてなおやなんていうCTOをくびにして、だいにのじんせいたんがCTOに
なれば、あなどりがたいかいしゃになるだろうなあ。
0458nobodyさん2006/02/23(木) 02:56:35ID:???
YARV で動いたらしい
http://i.loveruby.net/d/20060220.html#p10
0459nobodyさん2006/02/23(木) 03:51:31ID:???
>>457
それはそれでどうなんだろう
0460nobodyさん2006/02/23(木) 06:04:48ID:???
> あなどりがたい

だれのあなをとるのでつか?
0461nobodyさん2006/02/23(木) 09:38:03ID:???
固いんですよ
0462nobodyさん2006/02/23(木) 09:39:59ID:???
Rails本だが、そろそろ早売りでゲットした人っているのかな?
25日前に買った人からの報告ヨロ
0463nobodyさん2006/02/23(木) 10:26:29ID:???
>>461
しまりがいいまむこなんですか?
0464nobodyさん2006/02/23(木) 15:13:32ID:???
controllerにはアクション(new,list,editとか)のメソッドを定義しますが、
アクション以外のメソッドを定義しちゃってもいいんでしょうか。
例えば class FooController で def bar() した場合、
ブラウザで http://localhost/foo/bar とかアクセスできてしまうわけですよね。
もちろん実際には対応するviewがなくてエラーになるんでしょうが、アクション以外のメソッドを起動してしまうのがなんか気持ち悪いんですが、そんなことないですか?

0465nobodyさん2006/02/23(木) 15:20:29ID:???
>>464
定義してよい。protected で定義すればアクセスできない。

いや、view から controller.bar とかしたいから public じゃないと
ダメなんすよ。というあなたには、、、

つ hide_action :bar
0466nobodyさん2006/02/23(木) 16:15:05ID:???
>>465
なるほど!アクセス制限かけちまえばいいのか。
大変参考になりました。

調子に乗って質問しますが、それではObjectクラスで定義されているようなメソッドはどうするんでしょうか。
これらはhide_actionで隠されている?
0467nobodyさん2006/02/23(木) 16:37:22ID:???
ちょうしにのってしつもんしますが、だいにのじんせいたんは、かのーじょいるんでしょうか?
0468nobodyさん2006/02/23(木) 16:56:24ID:???
>>467
んなこときいて、きみになんのとくがあるんかね?
りっこうほしたいのか?
0469nobodyさん2006/02/23(木) 17:17:15ID:???
>>466
正解!!
実行可能なアクションは、大雑把に言うとこうなってます。

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:???
や〜ん、>>469だいすき。どうもありがとう。

ちょっとだけスレに恩返し。*.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:???
script/generate scaffold Hogehoge を実行するとcontroller、model、viewを作成してくれますが、
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:???
:bar => "hoge"
って 書き方、どういう意味なの?
マニュアル探してもどこに書いてあるんやら。
0475nobodyさん2006/02/23(木) 22:18:38ID:???
>>474

本来は { :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スレでお聞きください。

以上です。
■ このスレッドは過去ログ倉庫に格納されています