トップページ⇒php
990コメント286KB

Ruby on Rails のスレ が

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2008/04/06(日) 04:59:29ID:???
無いのはどうしてだろう?
消えたのか?
流行ってないのか
死亡
0855nobodyさん2008/09/09(火) 01:59:13ID:???
>>841
productionなら出ないはず。
0856nobodyさん2008/09/09(火) 11:33:25ID:???
ActiveRecordで、データベースからselect()してきたrowを文字列から適切な型に変換している箇所はどこでしょうか。
たとえば select * from users の結果として取得したrowはたとえば ["1", "name", "2000-01-01"] になっていますが、
それを [1, "name", Time.mktime(2000, 1, 1)] に変換してくれている箇所です。
自力でおっかけていたのですが、力つきました。
0857nobodyさん2008/09/09(火) 13:52:30ID:???
力が付いてよかった。
0858nobodyさん2008/09/09(火) 16:57:06ID:???
いじわるさん!
0859nobodyさん2008/09/09(火) 18:01:17ID:???
>>856
active_record/connection_adapters/abstract/schema_definitions.rb:631あたりだね。
RubyのクラスとDBの型の対応は
active_record/connection_adapters/mysql_adapter.rb:194とか見るといいよ。
0860nobodyさん2008/09/09(火) 18:02:43ID:???
>>859
あー、行はactiverecord-2.1.0だよ
0861nobodyさん2008/09/09(火) 21:54:59ID:???
>>851 だけど、テーブルの主キーが数値じゃなくても
テーブルに挿入いけたよ!みんな隠してたのか!
それとも俺の環境がおかしいのか
0862nobodyさん2008/09/10(水) 10:20:50ID:???
>>859
ありがとうございました!
0863nobodyさん2008/09/10(水) 18:49:59ID:???
#!/usr/bin/env ruby
require File.dirname(__FILE__) + "/../../config/environment"
loop do
 # ああだこうだ
 sleep(10)
end

こんなデーモン的スクリプトを使っているのですが、development環境の
場合にModelクラスなどを自動的にリロードさせるようにすることは
できますか?
0864nobodyさん2008/09/11(木) 00:30:26ID:???
やったことないけど、script/serverと同じ要領でいいなら、ループの先頭で
Dependencies.clear
ActiveRecord::Base.reset_subclasses
Class.remove_class(*Reloadable.reloadable_classes)
みたいなことをすればいいぽい。
細かいことはReloadableのドキュメントを読んでくれい。
0865nobodyさん2008/09/11(木) 10:38:04ID:???
2.0以降でform作るとauthenticity_tokenが自動で生成されるけど、あれの前後がdivで囲まれてるのは意味があるのかね?あれ消したいんだけどどうすりゃいいんだろ
0866nobodyさん2008/09/11(木) 12:34:31ID:???
>864

actionpack-2.1.0/lib/action_controller/dispatcher.rbの
cleanup_application

rails-1.2.6/lib/dispatcher.rbの
reset_application!

rails-?.?.?/lib/console_app.rbの
reload!

あたりを参考にしました。
1.2と2.0でやり方変わってるので注意ぽい。

0867nobodyさん2008/09/11(木) 13:48:44ID:???
>>865
form_tag_helper.rbの
extra_tags_for_formに

content_tag(:div, token_tag, :style => 'margin:0;padding:0')

と言うのがあってだな・・・
0868nobodyさん2008/09/12(金) 04:54:06ID:???
>>867
ソースぐらいmargin:0でgrepかけて見つけるべきですよね…
ありがとうございました!
08698532008/09/13(土) 00:04:36ID:???
>>854
えらく遅くなってしまって申し訳ありませんが、ありがとうございました。
まだ確認してませんが、今週末に見てみます。
0870nobodyさん2008/09/14(日) 17:27:51ID:???
redirect_toでリダイレクトされない事がよくあって困っています。
sessionが増えると発生します。
Railsだとよくあることなんですか?

0871nobodyさん2008/09/14(日) 17:36:01ID:???
それだけじゃ判断付けようがない
0872nobodyさん2008/09/15(月) 01:19:22ID:???
そこそこ大規模サイトやってるが

ない
0873nobodyさん2008/09/15(月) 01:25:57ID:???
>>870
returnつけてないとか?
0874nobodyさん2008/09/16(火) 20:32:22ID:xPoLLpKz
windowsでrailsを使用していますが、
「ruby script/...」とか「rake db:migrate」とかを実行すると、
非常にとんでもなくまたされます。正直、とんでもなく遅いです。
この現象はwindows環境ではみんな同じなんでしょうか?

もっとスクリプトの実行を速くする方法は無いでしょうか?

0875nobodyさん2008/09/16(火) 21:15:57ID:???
win上でcolinuxかandlinux動かして
その上でやると早いお
0876nobodyさん2008/09/16(火) 21:28:47ID:???
何がボトルネックなんだろな
0877nobodyさん2008/09/17(水) 00:08:32ID:NExepFrS
>>875
仮想OS(linux)上でrailsを使うと、RailsのIDE(NetBeansやAptana)
をWindows上で使っているので、データーを共有できないんです。

Windows上でRailsを使って開発している人は、
こんなに遅いのをみんな耐えているのかな?

「ruby script/generate scaffold ...」の実行に何で20秒もかかるんだ?
0878nobodyさん2008/09/17(水) 00:09:13ID:???
Railsは開発速いとは言っても限度がある。
デザイン組み込みとかだるいし。
値段はともかく、営業がギリギリの納期で仕事取ってくるので苦労してる。
プロジェクト間に時間的余裕が無い感じ。
一人プロジェクトを平行して回すとかになると辛い。

以上、チラ裏でした。
0879nobodyさん2008/09/17(水) 00:37:20ID:???
>>874
具体的な時間も示さないでそんなこと。。
0880nobodyさん2008/09/17(水) 02:06:49ID:???
>>877
windowsで開発してるけど、遅いよ。
linuxと比べると数倍遅いよね。
Core2Duoにすると、幾らかマシになるよ。
0881nobodyさん2008/09/17(水) 09:47:34ID:???
>>877
CoFSでマウントすりゃいいよ。
共有できるから、WinでRadRails使って開発、
ローカル鯖はandlinux上のLinuxで動いてるお

ここら参考に
ttp://d.hatena.ne.jp/wadap/20080602/1212419216
ttp://hyamada.ddo.jp/hiki/hiki.cgi?andlinux
0882nobodyさん2008/09/19(金) 09:02:47ID:???
windows上で動かしているwebrickに外部からアクセスできてしまう事に気づきました
どうすれば防げますか?
0883nobodyさん2008/09/19(金) 09:10:02ID:???
apacheかルータで弾けば?
0884nobodyさん2008/09/19(金) 09:49:33ID:???
これか?
http://www.itmedia.co.jp/enterprise/articles/0803/04/news008.html
0885nobodyさん2008/09/19(金) 14:07:33ID:???
>>882
:BindAddressのデフォルトが0.0.0.0(すべてのデバイス)なので、
newの引数で指定してループバックデバイス(127.0.0.1)だけを見るとか。
0886nobodyさん2008/09/19(金) 16:40:43ID:KktuWVpS
田中ばびえ
馬場道明死ね
0887nobodyさん2008/09/20(土) 13:08:56ID:???
ruby script/server webrick -b 127.0.0.1
0888nobodyさん2008/09/20(土) 13:12:00ID:???
あ、自分はWindowsじゃないし、mongrelが入ってるからwebrick指定した。
多分 ruby script\server -b 127.0.0.1 で良いと思う。
0889nobodyさん2008/09/21(日) 08:47:38ID:???
>>874
WindowsネイティブのRubyインタプリタがトロいだけ
irb単体を起動するだけでも相当時間かかるだろ?
ターミナルのOSがWindowsだからって
Windowsのコマンドプロンプトで開発してるわけじゃないだろ?
これだから最近のMac厨は激しく困る

最新のPCでも買いなよ
0890nobodyさん2008/09/21(日) 09:57:58ID:???
MacMacにしてやんよ
0891nobodyさん2008/09/21(日) 12:36:32ID:???
亀レスの割には何の回答にもなってない、単なる煽り乙>>889
0892nobodyさん2008/09/21(日) 15:56:23ID:???
>>887
ありがとうございます!助かりました
0893nobodyさん2008/09/24(水) 16:01:12ID:???
http://www.google.com/trends?q=cakephp,ruby+on+rails&date=all&geo=jpn&ctab=0&sort=1&sa=N

ruby on railsの存在感は
cakephpに比べるとかなり落ちている。
0894nobodyさん2008/09/24(水) 16:34:19ID:???
でってぃう
0895nobodyさん2008/09/24(水) 19:26:50ID:???
爬虫類乙!

PHP使用者が圧倒的に多いんだから、
伸びてくるのは当然だろう・・・
0896nobodyさん2008/09/24(水) 22:36:28ID:???
cakephp,railsで比較すると良いと思います。
0897nobodyさん2008/09/25(木) 21:55:02ID:Bq2f3Q+i
>>893
日本国内での比較を見るのは間違いだろう。
PHP利用者は圧倒的にrails利用者より多い中、
railsの検索数のが多いという事はどういうことかわかるでしょう!!

railsは良いけど、windowsでまともに開発ができない(遅すぎる)ので、
これからどうでしょうかね???
0898nobodyさん2008/09/25(木) 23:13:19ID:???
それが何か問題でも?

WindowsじゃRailsは開発できねー!というなら、Cakeでも何でも
別の選択肢を選べばいいだけ。何の問題もない。

手を動かさない奴はgdgd比較ばっかりしてるけどw
0899nobodyさん2008/09/26(金) 00:48:23ID:???
本番機windowsじゃないからなぁ。
windowsでやるにしても、colinuxなり何なり動かすんだろうし、
linuxサーバ1台用意して、そこにターミナル繋げば良い話。
うちはlinuxに繋いでる人と、macの人に分かれてる。
0900nobodyさん2008/09/27(土) 11:07:33ID:???
railsが使えるレンタルサーバーって
高いところばっかりだね。
0901nobodyさん2008/09/27(土) 19:20:56ID:???
なぜmongrelとアパッチの二つのサーバーを使うの?
0902nobodyさん2008/09/27(土) 19:57:11ID:???
apacheはロードバランサとして使う。
mongrelがアプリケーションサーバ。
0903nobodyさん2008/09/27(土) 20:02:50ID:???
つまりrailsをやるときには、必ず
mongrelとアパッチと、2つのサーバーを
同時に起動してないといけないの?
0904nobodyさん2008/09/27(土) 20:07:46ID:???
別にそんなことはない。
mongrelを80番で上げれば良いだけ。プロセス1個になっちゃうけど。
実運用とか考えるとapacheかましといた方がいろいろできて便利。
0905nobodyさん2008/09/28(日) 14:11:05ID:???
rails使えるレンタルサーバーで
一番安いところは、どこ?
0906nobodyさん2008/09/28(日) 15:33:48ID:???
さくらのライトプランでrails動く?
0907nobodyさん2008/09/28(日) 15:39:41ID:???
さくらのライトプランって何の話だよ
レン鯖のことならレン鯖板で聞いてこい
0908nobodyさん2008/09/28(日) 16:03:34ID:???
そんなのはもうとっくに聞いてるんだよ

一応rubyとSQLliteは動くが、
railsを動かすにはサーバーのrot権限が必要だから
常駐はできないんじゃないか?って意見でおわった。

で、おまえらの意見を聞いて補完しようと思って。
常駐できないってどういう意味なのかな?
0909nobodyさん2008/09/28(日) 16:05:16ID:???
ちなみにさくらのライトプランでは
mySQLは動かないが
SQLlitejは動くんだ。

だから、ruby+SQLliteでrailsいけるんじゃ
ないかな?と思って。だれか実証経験者いないかな?

それで、root権限って普通、レンサバではもらえないよね?

それだと常駐できないの?
でも常駐できないってどういう意味なのかな?
0910nobodyさん2008/09/28(日) 16:46:14ID:???
さくらでrails動かしたってblogの記事がいくつかあったから動くんじゃない?
普通はrails対応謳ってる海外のレン鯖を使うと思う。

常駐云々はFastCGIとかPassengerを調べれ。
0911nobodyさん2008/09/28(日) 19:49:42ID:???
>>908-909
なら先にそう書けよ。
ていうかお前自鯖とかローカル環境でrails使ったことあるの?
なんか全然わかってないままレン鯖で実験しようとしてない?
0912nobodyさん2008/09/28(日) 20:22:07ID:???
自サバというか
自分のパソコンの中では
rails動いたよ。
0913nobodyさん2008/09/28(日) 22:25:52ID:???
ttp://open-bio.jp/archive/20070302_OB6/OB6-KEGGonRails-Katayama.pdf

↑を参考にページ内ウィンドウを作ろうと思ったんですが、
(絶対位置指定したdivをinsert_htmlしてpage.draggable)
実行するとinsert_htmlした部分にJavaScriptの内容がだーっと出てきて
RJSはobject errorを吐いてしまいます。
コード的にはこんな感じです。

(View側)
link_to_remote '[BUTTON]',
 :update=>'child_window',
 :url=>{:controller=>'hogehoge',
  :action=>'popup_window'
  }

(Controller側)
def popup_window
 render :update do |page|
  page['oyapane'].make_positioned
  page.insert_html :bottom, "oyapane", :partial => "child_window"
  page.draggable "child_window"
 end
end

Rubyは1.8.6で、Railsは1.2.6使ってます。
多分insert_htmlがオカシイ?ような気もしますが・・・。
心あたりあるかたいますか?
0914nobodyさん2008/09/28(日) 23:10:38ID:???
view側のupdateが要らない
0915nobodyさん2008/09/29(月) 08:44:05ID:???
さくらでRailsアプリ動かしてるよ。
FastCGIもMongrelもPassengerもなし、素のCGIだから遅いけどね。
0916nobodyさん2008/09/29(月) 10:13:50ID:???
ライト?
スタンダード?
09179152008/09/29(月) 12:32:10ID:???
シェルログインが必須なのでライトでは無理。
0918nobodyさん2008/09/29(月) 13:33:12ID:???
まじで?
シェルはあったほうがいいが、
なくても可。

とか、よく書いてあるけど、うそなの?
絶対必須なの?

ちなみに、

シェルログインができる=root権限がもらえる

であってる?
0919nobodyさん2008/09/29(月) 13:45:41ID:???
>>918
一般1ユーザのアカウントがあればシェルログインはできるからrootとは限らないんじゃ?
0920nobodyさん2008/09/29(月) 14:16:50ID:???
railsってmysql使うじゃん。

だから、mysqlの制御をするのに、
phpmyadminが必要だと思うんだけど、
なんでinstantrailsには入ってないの?
0921nobodyさん2008/09/29(月) 15:08:42ID:???
フロントエンドぐらい自分で好きなの入れろよ
0922nobodyさん2008/09/29(月) 15:10:18ID:???
どうせ使うんだから最初から入れておいてよ
09239152008/09/29(月) 15:19:47ID:???
なかなか香ばしい奴だったんだな。まあもうちょっと答えるか。

>>918
さくらに限定するなら、Rails関連のgemを自分でインストールする必要がある。
標準じゃ入ってないからね。
そのためにはシェルログインが必須。
sshでFreeBSDにログインしてコマンドラインでインストール作業すること。
そういえばRubyも標準のを使わず自分でインストールしたような気がする。

root権限は必要ない、というかさくらたんはroot権限くれません。

>>920
ttp://instantrails.rubyforge.org/wiki/wiki.pl?Release_Notes_For_Instant_Rails_2.0
> Primary Instant Rails Components
> - [phpMyAdmin] 2.10.0.2
入ってるじゃねーか。
0924nobodyさん2008/09/29(月) 15:28:25ID:???
まとめると、
「シェルログインが必要」
      ↓
「なんで?」
  ↓
「rails関連のgemを自分でインストールする必要があるから」
  ↓
「なんで?」
  ↓
「だって標準じゃ入ってないから」
  ↓
「つまりsshでFreeBSDにログインしてコマンドラインでgemを入れる必要がある」

よってシェルログインが必要

なのでライトでは無理。
スタンダード以上必須。
0925nobodyさん2008/09/29(月) 15:29:43ID:???
ちなみにrails使えるレンタルサーバーで
500円クラスのところ、いっぱい教えてね。

教えてくれないとcakephpで作るから!
0926nobodyさん2008/09/29(月) 15:48:58ID:???
>>925
ttp://mor.ph/
1つまでならタダ。
0927nobodyさん2008/09/29(月) 16:56:24ID:???
昔ロリポップで動かしたよ。
スゲー遅くてやめたけど。
0928nobodyさん2008/09/29(月) 17:00:13ID:???
遅いっていうのは
クリックして、ページが出てくるまでが
時間がかかるってこと?
0929nobodyさん2008/09/29(月) 21:22:48ID:???
screenの中でwebrickとかmongrelで動かしてdetach、DBはsqlite3とかいう手もなくはないな。
ポート番号まではさすがに1025以降になりそうだが。
0930nobodyさん2008/09/29(月) 21:23:51ID:???
指がズレタ。1024
0931nobodyさん2008/09/29(月) 22:28:33ID:???
>>914
:updateが余計でした…。
JavaScriptがズラズラ出てしまうのはそれで解決しました。
ありがとうございます!

RJSがobject error吐いてたのは、
Test::Unitが出してたヤツみたいでした。
0932nobodyさん2008/09/30(火) 09:17:54ID:???
>>929
技術的には可能だが、
デーモン起動を禁止しているレンタルサーバは結構ある。

そういえば「gemをインストール」の話があったけど、
手元でfreezeしてvenderにコピーしてしまえば、
鯖での作業は不要にならない?
0933nobodyさん2008/09/30(火) 14:29:26ID:???
>>928
そうそう。

たぶん、普通のCGIだったから。
毎回Railsのフレームワーク全体をリロードしてたんじゃないかな。

Railsは使えてた。嘘ではない。
0934nobodyさん2008/09/30(火) 21:25:16ID:???
>>932
やっぱ、detachされたscreenてのは
純粋な意味でのデーモンじゃないけど、
契約上はデーモンとみなされるのかねぇ。
0935nobodyさん2008/09/30(火) 21:46:13ID:???
動作させるだけならたいていのレンタルサーバで可能

ただし、まともな動作速度ではない
遅いとかいうレベルではない
Web上でサービスを提供するとか正気の沙汰ではないな
0936nobodyさん2008/10/01(水) 01:51:46ID:ITudm/0s
コマンドでrails hogeとかで作ったプロジェクトに対して、そのままターミナル上でruby script/aboutとかやると正常に結果が表示されますが、
同じサーバで起動したAptana Studio(Red Rails)で作ったプロジェクトのディレクトリに移動して、ターミナル上で上記コマンドをうつと怒られます。
Missing the Rails 2.0.2 gem. というエラーメッセージ。

ruby script/aboutの結果でもRails version 2.0.2と出ていますし、Aptanaの画面上に出ているタブのRubyGemsの一覧にも、rails 2.0.2と出ています。

これはどういうことなんでしょう?
2.0.2以下のマイナーバージョンが食い違ってるとか?

環境はUbuntu 8.0.4 ServerをLAMPサーバとしてインストールし、デスクトップ環境を入れたものです。
0937nobodyさん2008/10/01(水) 04:40:54ID:Pn7kMCzS
rails2.1で,er図から(例えばA5:SQL)自動でScaffoldしてコードを生成することは可能ですか?
たくさんのテーブルを毎回
ruby script/generete migration add_hogehoge
するのはめんどくさいのですが。
0938nobodyさん2008/10/01(水) 07:30:34ID:???
>>936
IDEのエラーに自分で対応できないなら
IDEとかさっさと捨ててvimかemacsにしろ

>>937
直でscaffoldジェネレータにカラム指定して
そこからプラグインとか拾ってきてモデルに対応したerを吐けよ
ジェネレータ叩くよりer先に書く方がよっぽど面倒だろ
0939nobodyさん2008/10/01(水) 08:24:25ID:???
>>936
IDEが自前のRails 2.0.2を持ってるんじゃないの?
起動するRailsを指定する環境設定画面とかないの?
どのバージョンを使ってるかはconfig/environment.rbを見る。
0940nobodyさん2008/10/01(水) 08:30:06ID:???
>>936
script/aboutの結果は?
09419402008/10/01(水) 08:30:34ID:???
ごめん無視してorz
書いてあった
09429372008/10/01(水) 20:10:50ID:Pn7kMCzS
>>938
まあそうかもしれないんですが,
すでに10テーブル以上ER図が完成しているので。
それにER図を書きながらテーブル設計する方法ができればいいなと。
(リレーションとか考えるときER図の方が把握しやすい)
0943nobodyさん2008/10/01(水) 23:19:01ID:???
>>942
それつくって公開すればヒーローに!
09449362008/10/02(木) 02:03:08ID:???
>>938
>IDEのエラーに自分で対応できないなら
>IDEとかさっさと捨ててvimかemacsにしろ
んー、ごもっともです…
RailsぐらいならIDEあろうがなかろうがたいして変わらないし、エディタだけで行くことにします

>>939
よくわかってませんがAptanaが見てるのはJRubyなのか?と勘ぐったりしています。
config/environment.rbを見ても2.0.2と書いてあるんですよねー
なにかわかったらまた書き込みます。


0945nobodyさん2008/10/03(金) 12:16:56ID:???
今までpythonだったんだけど
rubyって
{
}
ついたpythonだと思えばいいのかな
0946nobodyさん2008/10/03(金) 12:22:19ID:???
python使いなら↓
ttp://www.goto.info.waseda.ac.jp/~fukusima/ruby/python-j.html
0947nobodyさん2008/10/03(金) 12:41:03ID:???
>>946
これはすごい
ちなみにcommon lispもrubyから使えるとすごい嬉しいのだけど
そういうのはないの?
0948nobodyさん2008/10/04(土) 01:14:19ID:???
あ
0949nobodyさん2008/10/04(土) 03:30:51ID:???
モデルのvalidateをオーバーライドして、integerのフィールドに文字が入ってたら
「○○は数字で入力してください」ってメッセージを自分でerrorsに突っ込みたいんだけど、
Hoge.new(params[:hoge])
こうRequestを読み込んだ時点で、Hogeオブジェクトの数値列(に対応するテキストボックス)に文字列が入力されてたとすると、
なんか無視されて値が入らないっぽいのは、そういう仕様なんでしょうか。

数値とか日付は自分でparams見て検証するもの?
0950nobodyさん2008/10/04(土) 12:12:05ID:???
validationは、DBに保存するに当たって満たすべき条件を書いておくもの。
インスタンス操作中に常時満たしていることが保証されるわけではない。

validationが行われるのは、valid? を呼んだとき。
更新(save)時にはsaveの内部でvalid?を呼んでいる。

newはメモリ上に作成するだけなので呼ばない。newしただけなら、自分でvalid?を呼べ。
createはnewしてsaveするというモノなのでvalid?は呼ばれる。
0951nobodyさん2008/10/04(土) 16:26:44ID:???
>>950
どうもです。いちお、そこは理解してるつもりです。
今自分が把握していないのが、数値フィールドに対応するテキストボックスに文字列を入れていた場合、
new(params[:hoge])を呼んだ直後でHoge.数値フィールドに何も入っていないのは、Railsの動作として
正しいのかな?ということです。(integerでもdatetimeでも同じでした)

POST値が数字以外ならnew(params[:hoge])の時点で自動的に読み込まれないというのであれば、
saveとかvalid?を呼んでも値が入っていないので検証のしようがないですからね
0952nobodyさん2008/10/04(土) 19:40:44ID:???
# in migration
create_table :books do |t|
t.integer :price
end

class Book < AR::Base
validates_numericality_of :price
end

としてみた。

b = Book.new(:price => 'XXX')
b.valid?
#=>false
b.price
# => 0
b.errors.first
# => ["price", "is not a number"]

いちおう、ゼロが入ってきたみたいだよ。
0953nobodyさん2008/10/05(日) 01:19:08ID:???
>>952
あー…オーバーライドしてないvalid?を呼べばエラーは拾えてるんですかー
でもそれじゃやっぱり、ユーザーが"0"を入力したのか、数字以外の文字列を入力したのかモデル側で自分で判別できないんですね
0954nobodyさん2008/10/05(日) 02:49:49ID:???
>>953
>>952 の例なら b.price_before_type_cast で 'XXX' が返るよ。
レス数が950を超えています。1000を超えると書き込みができなくなります。