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

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

■ このスレッドは過去ログ倉庫に格納されています
00012005/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
0341nobodyさん2006/01/03(火) 14:02:21ID:???
MTより馬鹿除けが効いてます。
0342nobodyさん2006/01/03(火) 16:59:23ID:???
>>340
それ添付ファイル(画像とか)扱いやすい?
MT だと画像別に管理して、結局
<img src="http://...">
だからしょっぱいんだよね。
Ajax うんぬんよりもそっちに興味がある。
0343nobodyさん2006/01/03(火) 19:07:33ID:???
>>342
自分ではまだ試してないです。スマン
俺もそういう質問とかしたいからスレ探したんだけど
まだ無いね

立てても閑古鳥だと思うけど
0344nobodyさん2006/01/05(木) 02:02:08ID:???
rails(ActiveRecord?)ってRuby DBIに対応してますか?
config/database.yml に dbi:SQLiteとか書いてみたんですけど駄目っぽいので・・

実はDebianスレに書こうか迷ったのですがdebianパッケージには
Ruby DBIにも対応してるように書いてあったので質問に伺いました。
0345nobodyさん2006/01/05(木) 11:47:48ID:???
だれか Ruby on Rails on Xrea 書いて
0346nobodyさん2006/01/05(木) 11:49:10ID:???
あ、あった
http://tam.qmix.org/archives/2005/03/xrea_ruby_on_ra.html
0347nobodyさん2006/01/05(木) 21:38:06ID:???
>344

たぶんできない。
対応しているDBはactiverecord-1.13.2/lib/active_record/connection_adapters/
の中を見ればいいんでないかな。

とりあえずSQLiteなら普通に使えばいいと思うけど、
なんか別の理由があるのかな?
0348nobodyさん2006/01/06(金) 00:13:51ID:???
ActiveRecordにはRuby/Mysqlが含まれているらしいんだけど、
ActiveRecordを経由せずにMysqlクラス(のみ)を直接使うにはどうすればよいでしょう?
require_gem 'mysql' とかしてみたけど駄目でした。
0349nobodyさん2006/01/06(金) 00:28:53ID:???
独立したライブラリ(gem)としてではなく、ActiveRecord の一ファイルとして含まれてる。
gems/activerecord-1.7.0/lib/active_record/vendor/mysql.rb
別途 $LOAD_PATH の場所において、普通に require した方がいい。
0350nobodyさん2006/01/06(金) 01:57:57ID:???
>>340
日本じゃ使ってるサイトは4、5サイトくらいしかみたことないな。

特徴
・サイドバーが独立していて、D&Dでアーカイブ、カテゴリなどが簡単に表示/非表示できる。
 del.icio.usやflickrプラグインもデフォで入ってるのでサイドバーに表示可能。
・インクリメンタルサーチでサイト内検索(ただし最新版だとバグで日本語で検索ができない)
・リアルタイムプレビュー
・レイアウト(テーマ)の切り替えが簡単

このくらい?(Ajax機能ばっかりだけど)

まだまだこれからのツールだと思うけど、Railsでできてるから
拡張しようと思えば簡単にできちゃうしいいんじゃないかな?

ちなみにさくらサーバでCGIで動かしてみたけど、思ってたよりサクサク動いたよ。
アクセス増えるとやばそうだけど(静的にもできるっぽいけど)
0351nobodyさん2006/01/06(金) 09:35:08ID:???
>>345-346
Xreaで重たいことはない?
0352nobodyさん2006/01/06(金) 11:10:00ID:???
>>349
そうですか。
簡単に require する方法があるかと思いましたが、仕方が無いので
長々としたパスを require するようにします。
0353nobodyさん2006/01/06(金) 12:53:55ID:???
>>351
重たいことはある。CGI として動かすからね。
0354nobodyさん2006/01/06(金) 17:42:11ID:???
>>353
そうですか。
レポ、サンクス。
03553442006/01/06(金) 21:55:22ID:???
>>347
ありがとうございます。
たしかに connection_adapters/以下はDBIに対応してないっぽいです・・

実はSQLiteのRubyモジュールが公式にdebianパッケージ化されてないのでして
その代わりRuby DBIは充実してるんで使えないかなぁと考えていました。

ちょっと安易だったかもしれんです。
03563472006/01/06(金) 23:23:10ID:???
>355

くまの人もrails回りはaptじゃなくて(といういいかたでいいのかな?)gemを使ってるみたいだし、
gemで入れるのがいいんじゃないですかね。
ちなみにオレもgentooですが、portageではrubygemのみ入れ、
railsとかその依存まわりとか、gemで入れられるのはgemで入れることにしてます。
# ディストロ側もそればっかりやってるわけではないので最新のrailsに追い付けないし。

模式になるようなら、
$ export GEM_HOME=$HOME/.gems
$ gem install sqlite3-ruby
とかやれば、システム側の環境は汚さずにすむみたい。
常時GEM_HOMEを指定するのと、設定したGEM_HOME側にもrailsを入れるのをお忘れなく。
03573562006/01/06(金) 23:25:32ID:???
×模式に
○もし気に

いちおう。
0358nobodyさん2006/01/07(土) 23:04:17ID:???
増井さんのサイトがいつも間にやらTYPOになってるな。
俺もRailsの勉強がてらに使ってみようかな。
03593442006/01/08(日) 01:12:15ID:???
>>356
昨日の夜からレスをいただいて GEM_HOMEを使えば出来るということで試してました。
以下debianにgem をインストールしたときのメモとして
お礼を兼ねまして報告します。でもチラシの裏でうざかったからごめんなさい。

<チラシの裏>
gem はdebianパッケージになってないので、
$ sudo ruby setup.rb
したら /usr/bin 以下にgem* がインストールされる。
家庭内共有サーバなんで管理者(兄貴)に怒られそう。
gem も $HOME以下にインストールに決定。
03603442006/01/08(日) 01:16:07ID:???
$ export GEM_HOME=$HOME/.gems
$ ruby setup.rb config --prefix=$HOME/.gems
$ ruby setup.rb setup
$ ruby setup.rb install
$ export RUBYOPT=rubygems
$ gem list
ruby: no such file to load -- ubygems (LoadError)

なんでだろ?と思ってトータルRuby暦1週間くらいのだけで感でソースよんでも
どこで ubygems が呼ばれてるか分からんので
$ export RUBYLIB=$GEM_HOME/local/lib/site_ruby/1.8
で逃げる。gemはバージョン管理とかやってくれるっぽいで後々問題がおきそう・・

最後にPATHに$GEM_HOME/binを追加して
gem で sqlite-ruby railsをインストールして今まで自作PHP+SQLiteで動いていた
Web Bookmarkを
ttp://hotwired.goo.ne.jp/webmonkey/2005/36/index4a.html
を参考に scaffold で 表示させることに成功!やったよおぉ
</チラシの裏>

ほんとにありがとうでした
0361nobodyさん2006/01/08(日) 11:05:28ID:???
>>360
ナイスメモ乙でした

その場合だと ubygems は RUBYOPT で呼ばれてます
一文字目の r が -r として認識されてるわけです
ubygems.rb は rubygems.rb を require するだけになってます
コマンドラインの美しさを重視してるんでしょうね
0362nobodyさん2006/01/11(水) 11:01:14ID:???
>>356
ごめん。gem 使ってないです。

>>355 の言う通り公式には対応してないけど、deb を見つけたのでインスコしました。
ただ、Rails 的には gem が王道ぽいので、gem を入れられる環境ならそっちの方が
楽なので推奨します。

テストとか gem 前提ぽいのが多いので非 gem な環境だと苦労します。丁度、主キーに
id を使わないぐらい茨の道です。(無駄に色んなトラブルに遭遇する)
0363nobodyさん2006/01/11(水) 11:51:00ID:???
Ajaxな機能であるperiodically_call_remote を使って定期的に画面を更新しています。
で、あるきっかけで定期更新を止めたいのですが、どうすればよいでしょうか?
0364nobodyさん2006/01/11(水) 20:29:49ID:???
>>363
PeriodicalExecuter は停止できないから PeriodicalUpdater の方がいいかも。
全部 JavaScript で書くことになるけど、Rails に固執するより早いと思う。
JavaScript で普通に適当なイベントから stop 呼べば止まるし。

<script type="text/javascript">
var updater = new Ajax.PeriodicalUpdater(
 'REPLACEMENT_ID',
 '<%= url_for(:action=>"show_log") %>',
 {
  asynchronous : true,
  insertion : Insertion.Bottom,
  frequency : 3
 }
 );
</script>
<div id="REPLACEMENT_ID"><div>
<%= link_to_function 'Stop', "if (updater) {updater.stop(); updater = null;}" %>

0365nobodyさん2006/01/12(木) 10:18:30ID:???
>>364
すごいです。完全にやりたいことが出来ました。ありがとうございました。
0366nobodyさん2006/01/19(木) 18:49:29ID:nlM/qJip
rails コマンド実行して、プリセットのデータを吐き出して、
吐き出したデータ内にある

script/server

を実行してみたが、何もいわずにコマンドラインに戻る。
ruby 1.8.4 (2005-12-24) [i386-mingw32]

を使ってるのだが・・・
0367nobodyさん2006/01/19(木) 19:39:11ID:???
Rails って、これはもう完全にデータベースや、あるいはオブジェクトマッピングだがを
使うって、決めうちしてるの?

O/Rマッピングなんてクダラナイ、と言ってる人には、Rails とは別方向へ行けと
いうことですかね。それならそれでいいんですが。
0368nobodyさん2006/01/20(金) 22:10:21ID:???
>>366
自分も今日たまたま同じような現象になったな。

environment.rbをリネームしたのを戻すの忘れてただけだったけど。
0369nobodyさん2006/01/21(土) 11:39:51ID:???
>367

べつにActiveRecordを使わないモデルも書けるよ。
結局のところ普通のRubyだから、極端な話erbなviewの中でdbiをrequireしてつかってもいい。
ViewとControllerとroutes.rbあたりだけを使って、Webアプリのめんどいところ
(セッション維持とかデータ入出力とか)だけをなんとかしたいというのもできる。

あんまりRailsで想定しているレールの上から外れるとメリットも失われるけど。
0370nobodyさん2006/01/26(木) 06:42:54ID:???
perl の Data::Dumper みたいなことをしたい場合、
ruby ではどんなモジュールを使うとできるのか教えてください。
0371nobodyさん2006/01/26(木) 10:51:03ID:???
>>370
構造が知りたい場合は、'inspect' メソッドをオブジェクトに投げると
人間が読みやすい形式の文字列を返してくれます。(要:適切な $KCODE)

デバッグ用途であれば p obj だけで十分です。(puts obj.inspect 相当)

あと、pp というライブラリを使うと、p よりも高度な(視覚的に階層構造
がわかる)形式の出力を提供してくれます。

% irb -r pp
irb> obj = [1,{:a=>2, :b=>[false, 'foo']}, ('a'..'e').to_a, Time.now]
irb> p obj
[1, {:b=>[false, "foo"], :a=>2}, ["a", "b", "c", "d", "e"], Thu Jan 26 10:39:41 JST 2006]

irb> pp obj
[1,
{:b=>[false, "foo"], :a=>2},
["a", "b", "c", "d", "e"],
Thu Jan 26 10:39:41 JST 2006]

irb> PP.pp(obj, '')
=> "[1,\n {:b=>[false, \"foo\"], :a=>2},\n [\"a\", \"b\", \"c\", \"d\", \"e\"],\n Thu Jan 26 10:39:41 JST 2006]\n"
# 文字列として欲しい場合
0372nobodyさん2006/01/26(木) 12:08:50ID:???
>>371
ごていねいにどうもありがとうございました。
おかげさまで助かりました。
0373nobodyさん2006/01/26(木) 13:25:06ID:???
逆に、 Perl で p $obj; ってやりたくてストレスがたまる。
print Dumper $obj; なんてめんどくさい上に出力がカッコ悪いし。
0374nobodyさん2006/01/27(金) 06:27:28ID:???
<div id="x">xx<div id="x_editor"></div></div>の x_editor部分に、
erbをcontrollerから送り込んでrenderすることってできる?
すでにrender :updateを使ってcontrollerで作ったtreeview構造が上で、
要素xをクリックするとその直下に編集用エリアをうにょっと出す、ってのをやりたいんですけど。
使ってるのは最新trunk。
0375nobodyさん2006/01/27(金) 08:43:51ID:???
説明ソースワロタ
ttp://www.atmarkit.co.jp/farc/rensai2/proto02/proto02a.html
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 の制御無視でそっちを
読んでしまうので、注意して下さいね。
■ このスレッドは過去ログ倉庫に格納されています