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

【Ruby】Ruby on Rails Part7

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/04/30(木) 23:07:27ID:???
■前 Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1224838013/

■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/

■参考スレ(プログラム板)
Rubyについて Part 35
http://pc12.2ch.net/test/read.cgi/tech/1238194350/
Ruby 初心者スレッド Part 27
http://pc12.2ch.net/test/read.cgi/tech/1238632943/l50
0920nobodyさん2009/09/07(月) 10:40:05ID:???
>>917
おなじエラーでる(´・ω・`)
0921nobodyさん2009/09/07(月) 14:22:34ID:???
どうやばいか日本語で言わないとアップデートしない日本人が多いはずだ。

XSS Vulnerability in Ruby on Rails
==================================

There is a vulnerability in the escaping code for the form helpers in
Ruby on Rails. Attackers who can inject deliberately malformed unicode
strings into the form helpers can defeat the escaping checks and inject
arbitrary HTML.


0922nobodyさん2009/09/07(月) 17:52:13ID:???
お前らがRailsで作ったサイトにアクセスしたユーザが騙されたり
お前らがRailsで作ったサイトにアクセスしたユーザから情報が盗まれたり
するってことだ
0923nobodyさん2009/09/08(火) 02:30:57ID:hdImoFaT
Rails2.3.4にしたらviewがクソ遅くなった!どうなってんだ??
0924nobodyさん2009/09/08(火) 07:07:52ID:???
http://weblog.rubyonrails.org/2009/9/4/xss-vulnerability-in-ruby-on-rails
http://weblog.rubyonrails.org/2009/9/4/timing-weakness-in-ruby-on-rails

このパッチって git-am 形式ってものみたいだけど、これって Rails 本体を Git から落としてきてパッチ当てて、そのパッチ適用済み Rails と今動かしてるものを差し替え、みたいな事やらなきゃならないの??
誰か簡単な適用手順教えてくれ・・・。
0925nobodyさん2009/09/08(火) 07:21:15ID:???
>>924
リポジトリなしでも、git amコマンドで直接当てられないかな?わからんけど
gitスレで聞いた方がいいかも
0926nobodyさん2009/09/08(火) 07:31:28ID:???
>>924
最初のURLのコメ欄にあるが、普通にpatchコマンドでいけそうだが
0927nobodyさん2009/09/08(火) 08:27:39ID:???
git am形式である以前に単なるunified diff。
0928nobodyさん2009/09/08(火) 08:44:05ID:???
>>927
先頭付近のメール?ヘッダ部分削除してpacheコマンド、って感じでおk?
0929nobodyさん2009/09/08(火) 08:52:15ID:???
http://weblog.rubyonrails.org/2009/9/4/xss-vulnerability-in-ruby-on-rails

ここのコメント欄良く読んでみたら

$ cd vendor/rails $ git apply <name-of-patch>

とか

cd vendor/rails patch -p1 < 2-2-CVE-2009-3009.patch

ってのが載ってるね。
試してみよ。
0930nobodyさん2009/09/08(火) 10:02:33ID:???
>>928
patchは、^diffだったか^Indexだったかに遭遇するまでの行は無視する。
0931nobodyさん2009/09/08(火) 10:30:13ID:???
今回のパッチで UTF-8 や SJIS の文字チェックしているから、
表示する文字が多いと線形に遅くなりそう。
0932nobodyさん2009/09/08(火) 10:40:57ID:???
viewの中から public ディレクトリにある howto.html へのリンクを作成したいときは
どうすればいいのでしょうか。
link_to('ハウトゥス', '/howto.html')
http://myserver.examle.com/myapl/ のようにサブディレクトリ付きで
動作しているときの /myapl/ が付かないのです。
image_tag のように、この /myapl/ を付けるにはどうしたらいいんでしょうか。
0933nobodyさん2009/09/08(火) 10:57:15ID:???
>>932
たぶん先頭のスラッシュが駄目なんじゃね?
link_to('ハウトゥス', 'howto.html')
0934nobodyさん2009/09/08(火) 11:05:39ID:???
>>933
そのとおりでした。ありがトゥス。
0935nobodyさん2009/09/08(火) 16:58:34ID:???
Rails 2.3.2から2.3.4に上げようとしているんだけどうまく行かないっす…。

$ suso gem update railsして、
$ rails -v
2.3.4

の状態で、
$ cd my_project
$ rake rails:update
$ grep RAILS_GEM_VERSION config/environment.rb
RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION

となっており、ruby script/serverでも2.3.2が立ち上がってしまいます…
どのようにしたものでしょうか?

環境 Ubunut 9.04(coLinux) Rails 2.3.2→2.3.4 Ruby 1.8.7
0936nobodyさん2009/09/08(火) 17:24:08ID:???
Rails3 + Ruby1.9 速くなりすぎw
09379352009/09/08(火) 17:39:37ID:???
RAILS_GEM_VERSIONを修正しないといけないのね・・・

config/environment.rbを
RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
にして、
$ rake rails:update
したら、無事アップデートできました。
お騒がせいたしました。ありあgとごうざいmした。
0938nobodyさん2009/09/08(火) 18:14:15ID:???
どこで聞けばいいのかな。
Railsの開発で使用しているcoLinuxのcofsって、lockできない仕様?

ruby script/plugin install git://github.com/rails/acts_as_list.git

みたいなのが失敗する。以下、エラー
error: could not lock config file ~my_project/trunk/vendor/plugins/acts_as_list/.git/config
error: could not lock config file ~my_project/trunk/vendor/plugins/acts_as_list/.git/config
error: could not lock config file ~my_project/trunk/vendor/plugins/acts_as_list/.git/config
Initialized empty Git repository in ~my_project/trunk/vendor/plugins/acts_as_list/.git/
fatal: Not a git repository

Windows側でcygwinから使うと問題ないからまあいいんだけど。
0939nobodyさん2009/09/08(火) 23:11:21ID:???
>>938
coLinuxスレで聞け
0940nobodyさん2009/09/09(水) 04:19:37ID:???
rails3っていつごろ出るんですかね?
最近railsの話題追ってなくて…
開発は順調なのでしょうか
09419382009/09/09(水) 07:38:24ID:???
>>939
スレタイ検索したらcoLinuxスレあった・・・いってきまつ
0942nobodyさん2009/09/09(水) 13:37:24ID:???
帳票印刷の仕事がありそうだから、JasperReport + JRubyOnRails がどんなもんか
調べてみた。

普通に動いてビックリ。
さて、JRubyとdRubyとの相性はどんなもんかのう...
0943nobodyさん2009/09/09(水) 13:48:31ID:???
>>942
rubyな帳票印刷ライブラリってのはないから
Javaなライブラリ使うためのJRubyonRailってこと?
0944nobodyさん2009/09/09(水) 15:05:38ID:???
>>943
Yes.
Rubyでなんかいいのある?

dRuby次第ではJVMのバックグランドプロセスににdRuby経由でPDF生成タスクを
投げて、アプリ自体はCRubyなRailsでいいかもとか夢想してるけど...
0945nobodyさん2009/09/09(水) 20:29:44ID:d2cRtkfX
>>944
「Ruby Printing Service」なんてのもある
0946nobodyさん2009/09/09(水) 22:01:28ID:???
>>942、944
似たようなことをやったけど、普通に使えます。

JRrubyからPOIを使ってExcelのワークブックを作る処理をdRubyのメソッドにして、CRubyのRailsから呼び出してます。
各セルの中身や装飾なんかは、配列やハッシュに数値や文字列を納めて、パラメータとして渡して、出来上がった
ワークブックのバイナリイメージを戻り値にして、クライアントにダウンロードさせています。

拡張ライブラリのオブジェクトは試してみてないですが、基本的なオブジェクトは普通にやりとりできてますよ。
0947nobodyさん2009/09/09(水) 22:41:01ID:???
drubyの互換性はいいかんじなのか。


YAMLが微妙でてをひいたよ
0948nobodyさん2009/09/09(水) 23:07:44ID:???
日本語でいいんだぜ?
0949nobodyさん2009/09/10(木) 14:40:06ID:ciwTQ8pm
shoulda を入れたところ(environments.rb で config.gem しただけ)
既存のテスト結果に続けて

Loaded suite /usr/bin/rake
Started

Finished in 0.000451 seconds.

0 tests, 0 assertions, 0 failures, 0 errors

と出るようになったのですが、これは何をしようとしてるんでしょうか?
0950nobodyさん2009/09/10(木) 17:17:08ID:???
>>949
テストを実行して 0.000451秒以内に終了して、テストもアサートも失敗もエラーも1個もなかったよっていってるみたい
0951nobodyさん2009/09/10(木) 17:21:21ID:???
>>950
何のテスト?
0952nobodyさん2009/09/10(木) 17:35:35ID:???
質問よろしいでしょうか?

RailsのDraggableでtableのtrってドラッグアンドドロップできないもんでしょうか?

これとか、
#3955 (drag and drop <tr> in <table>) - Rails Trac - Trac
http://dev.rubyonrails.org/ticket/3955

[Rails-spinoffs] scriptaculous: Draggable and table rows
http://lists.rubyonrails.org/pipermail/rails-spinoffs/2005-August/000567.html

結局だめで、
<div>つかえとか、<li>にしろとか、あります。

何か代替する方法ってないもんでしょうかね?
tableみたいな表レイアウトをdivでできるのかな…
0953nobodyさん2009/09/11(金) 09:14:24ID:???
>>945,946
ありがとう、試してみる。
0954nobodyさん2009/09/12(土) 00:07:14ID:???
>952

出来ない。というかキレイな方法はない。

jQuery つかえ。
0955nobodyさん2009/09/12(土) 00:13:30ID:???
そういやprototype.jsよりjquery使ってる人が多いのは何故だろう。
Railsのサブセットにprototype.jsがあるんだからこっち使ったほうが良さそうなのに。
0956nobodyさん2009/09/12(土) 00:18:34ID:???
今はJQueryの方が主流なんだぜ
0957nobodyさん2009/09/12(土) 00:29:09ID:???
新しいから使いたがる奴は多いけど主流は言いすぎだろ
0958nobodyさん2009/09/12(土) 03:29:52ID:???
使いやすいからじゃねーの?
数行で書けるそうだよ、使ったこと無いけど。
0959nobodyさん2009/09/12(土) 07:16:40ID:???
今や勢いは完全にjQueryな気配だよね
プラグイン含めてライブラリの数が違いすぎる
0960nobodyさん2009/09/12(土) 08:32:20ID:???
RoRでExtJS使える?
0961nobodyさん2009/09/12(土) 09:02:14ID:???
使える
0962nobodyさん2009/09/12(土) 09:48:52ID:???
使ってる。
0963nobodyさん2009/09/12(土) 14:19:17ID:???
既にある既存システムのユーザマスターを使ってログインさせたい場合、どうしたらいい?
社内システムを拡張しようとした場合、ユーザーマスタは新規で作れないのよね…。
使おうと考えているプラグインはrestful-authentication。

今思いついた解決策は、restful-authenticationに適合するような形の
ユーザマスタへのView(DB上のほう)を作ること。

ただしrestful〜って、パスワードを暗号化してある前提で組まれてるんだよね。
現行のユーザマスタはたぶん暗号化されてないので、どうしようかまよってる。
どうしようかねぇ〜。
0964nobodyさん2009/09/12(土) 14:31:39ID:???
それだけの情報じゃアドバイスしようが無いわ
0965nobodyさん2009/09/12(土) 14:35:54ID:???
>>964
ありがとう。要件固めてからまたくる。
|会社| λ.....
0966nobodyさん2009/09/12(土) 14:44:59ID:???
既存のユーザマスタのパスワードを元に暗号化してパスワードだけ入れなおすことすら出来ないの?
0967nobodyさん2009/09/12(土) 15:26:44ID:???
内部でHTTPでも何でも使って、既存システムに代理で認証処理を
行うってことになるんじゃないの?
0968nobodyさん2009/09/12(土) 18:43:39ID:???
既にある既存システム
0969nobodyさん2009/09/12(土) 19:46:39ID:???
結論からいうと、restful-authenticationが吐き出すuserモデルの
authenticated?メソッドを書き換えればいける…。
(ちなみにユーザマスタはoracle、他はmysqlなんて構造でもいけた。)

>>963で言いたかったこと↓
システムごとにユーザマスタを個別に持ちたくない。
社内システムはphpのもあるしstrutsのもあるしvb.netのもある。

んで、それらのシステムは同じユーザマスタを利用してる。
ユーザマスタに1ユーザ追加すれば、php(のシステム)でもstrutsでもvb.netでも
そのユーザが使える。(ログインに関するロジックは各システムで個別に持ってる。)

で、新規に追加するrailsのシステムもそのユーザマスタを使いたいと…。
restful-authenticationで認証関係を組むと楽なんだけど、社内共通のユーザマスタの構造と
restful-authenticationが想定してるユーザマスタの構造が違うからどうしよっかなぁと。

>>966
それをすると今動いてるシステムの改修が発生して、一番工数が多くなる。
0970nobodyさん2009/09/12(土) 19:56:48ID:???
Authlogic とつぶやいてみる。
0971nobodyさん2009/09/12(土) 20:03:48ID:???
そこまでごちゃごちゃになってるんだったらプラグインなんて使わないで自前で実装した方がいいのでは?
0972nobodyさん2009/09/12(土) 23:02:56ID:???
いろいろ調べたんだが、authlogicがいいのかと思った。
0973nobodyさん2009/09/13(日) 03:49:05ID:???
そろそろ産め。

パスワードが無ければ、既存システムから拾って来て暗号化して格納して、そっちを参照するぐらいが現実的だろうな。
apache側でldap認証でいいじゃんと思うが。
0974nobodyさん2009/09/13(日) 03:56:09ID:???
パスワードを生でDBに突っ込んでる仕様を変更できないって時点で終わってる
0975nobodyさん2009/09/13(日) 06:12:48ID:???
rails3っていつ出るんだ
新しいもの好きでRails始めたのに今じゃ新しい要素0
0976nobodyさん2009/09/13(日) 06:38:16ID:???
ようやっとrails2に移行できたばかりなのに3とか勘弁してくれ
0977nobodyさん2009/09/13(日) 08:44:00ID:???
オレなんか、Railsによるアジャイル開発第二版で1.26を勉強中だぞ
0978nobodyさん2009/09/13(日) 08:49:40ID:???
Rails 2.3.4で追加されたseeds.rbについて - ひげろぐ
http://brass.to/blog/rails-2-3-4%e3%81%a7%e8%bf%bd%e5%8a%a0%e3%81%95%e3%82%8c%e3%81%9fseeds-rb%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6.html

migrationに初期データ追加処理かかずに、db/seeds.rbにかけってさ。
0979nobodyさん2009/09/13(日) 09:51:07ID:???
新しい物好きならTornadoでもやってたら?
0980nobodyさん2009/09/13(日) 17:10:25ID:???
>>977
おれも。
Pragmatic の英語版の第三版を入手しようと思ったが、
第三版は Rails 2系の内容になっているけど、もうすぐ Rails 3 が出るんだよね。
0981nobodyさん2009/09/13(日) 17:18:32ID:???
もうすぐとは言うがな、まだアルファすら出ていないぞ。
0982nobodyさん2009/09/13(日) 17:38:09ID:???
たしかに。
今年の前半では、Rails 3(Merb との統合)は夏頃には出るとか言われていたけど、
今年いっぱいは出ないかも。
0983nobodyさん2009/09/13(日) 18:05:44ID:???
>>978
初期データ設定用のタスクを自分で書いてたけど
こっちを使った方が幸せになれそうだな。早速そうするわ
09849832009/09/13(日) 18:15:45ID:???
と、思ったけどやっぱやめw
テーブルごとに初期データ設定のタスクを作って依存関係を設定した方がいいや
0985nobodyさん2009/09/13(日) 18:24:51ID:???
>>977
俺もそのやり方でサンプルいじりながら勉強した
その後はすぐに最新版に切り替えて 1.26 との差分をネットやレシピブックで
補うという感じ

アジャイル開発の第三版欲しいけど
今すぐ英語版買うか、翻訳版が出るのを待つか悩み中
0986nobodyさん2009/09/13(日) 18:34:56ID:???
各バージョンを完全に最初から習得しなおしになることが多い人は3を待つ。
差分で習得できそうな人は2で始める。
0987nobodyさん2009/09/13(日) 18:47:28ID:???
ここにいる人間はrailsのソースコードすら読めないのか
0988nobodyさん2009/09/13(日) 18:57:38ID:???
umetemiru
0989nobodyさん2009/09/13(日) 19:00:46ID:???
>>987
本を読んで勉強する人はソースコードを読まないとでも?
なんでそこで排他論理になるのか意味不明
0990nobodyさん2009/09/13(日) 19:42:42ID:???
仕様を知らずにいきなりソースを見ても把握は難しいだろう。
時間をかければ可能だろうが、効率的なやり方ではない。
どういう機能があるのかを系統立てて知るには書籍が一番手っ取り早い。
0991nobodyさん2009/09/13(日) 19:49:32ID:???
マジレスするとどこから読んだらいいのか、
読みたい *.rb がどこにあるのかよくわからん

ソースは GEM の下にあるのは find でみつけたけど

Rails コードリーディングみたいなサイトないかな
0992nobodyさん2009/09/13(日) 19:58:13ID:???
>>991
関連gemのソースからtagsファイル作ってタグジャンプ
09939912009/09/13(日) 20:07:32ID:???
>>992
ありがとう
いまは、エラーが出たら、そのクラス名で find と grep で結局たどっています。
Java と違い、Ruby はクラス名とファイル名が 1:1 ではないので、
Java から来た人間だと、どうもおっかけにくい。

地道に追っかけることにします。

コントローラから view への渡し方でどんなことが出来るかを調べたくて、
render.rb はだいぶ読み込んだが・・・
0994nobodyさん2009/09/13(日) 20:10:09ID:???
もしかしてローカルでAPI参照してないのだろうか。
0995nobodyさん2009/09/13(日) 20:20:12ID:???
確かに rdoc の View Source は素晴らしい
private なメソッドまであれで見られるようになればソースブラウザとして
かなり便利なものになるだろうな

と思って man 見たら --all というオプションを発見してしまった
09969912009/09/13(日) 20:28:22ID:???
http://railsapi.com/ とかでオンラインでも見るけど、
ローカルで使っている Rails が必ずしも最新版とは限らないので、
やり方は忘れてしまったが、ローカルで Rails で空の App をつくって、
そこから rdoc(?) 作らせて、それを見ている。

でもソースを直接見たいときもある。

>>995
> 確かに rdoc の View Source は素晴らしい

これは私もそう思う。
Javadoc も取り入れれば、と思った。
0997nobodyさん2009/09/13(日) 20:37:52ID:???
Javaは型ががっちりしてるので、ソースの内部を見る必要なくない?
あるとしたらたぶん、メソッドの定義が下手なんだと思う。
09989912009/09/13(日) 20:41:25ID:???
>>997
いや、Java に限らず、そのメソッドの内部で何が行われているか
知りたいことがあるから、API を見ることとソースを見ることは別だと思います。

1000 が近いので、スレ立ててみますね。
テンプレは >>1-2 を使用します
0999nobodyさん2009/09/13(日) 20:48:07ID:???
>Java と違い、Ruby はクラス名とファイル名が 1:1 ではないので、

ha?
1000nobodyさん2009/09/13(日) 20:49:46ID:???
ume
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。