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

Ruby on Rails のスレ が

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/04/06(日) 04:59:29ID:???
無いのはどうしてだろう?
消えたのか?
流行ってないのか
死亡
0133nobodyさん2008/05/13(火) 10:33:55ID:???
>>132
> Items.find(:all).each {|item| item.newcolumn = '...'; item.save! }
なんとなく、めちゃくちゃ効率悪そうな気がするのは俺だけ?
0134nobodyさん2008/05/13(火) 11:06:43ID:???
データが数十万件とかあったら泣けるなw

:default => false 指定するのじゃダメだろうか?
カラム追加なら最初はデータ無いだろうし、
必要なデータは後でバッチかupdate文で更新するみたいな。

最悪、execute('alter add_column文')で無理やり書くとか。

結果出てるのに茶々入れてすまん
0135nobodyさん2008/05/14(水) 10:42:18ID:4b0MQpYR
>>130
InfoQ: HerokuとMorph AppSpaces:Railsホスティングの新しい二つのソリューション
http://www.infoq.com/jp/news/2008/04/heroku-hosting-morph-appspaces
0136nobodyさん2008/05/14(水) 21:53:25ID:ToATEiN6
過疎ってるなage
0137nobodyさん2008/05/16(金) 12:30:03ID:???
rspecを始めたばかりのものです。
テスト結果が大量にある時にどこでエラーが起きたか、コンソール表示だけだと
わかりにくいんですが、見やすく整形してくれるツールのようなものは
ありますか?

Story Runnerも試していて、プレゼンみてると
ttp://blog.davidchelimsky.net/files/BDDWithRspec.RubyConf.2007.pdf
の38ページ(Spec Framework)にそれっぽいものが出ていて使ってみたいんですが
リリースされているんでしょうか?
0138nobodyさん2008/05/16(金) 14:26:01ID:???
>>137
それはRspecとか関係なく、MacのGrowlじゃなかろうか
ttp://blog.tkmr.org/tatsuya/show/361-rails-macosx-rspec-zentest-growl

さぁ今すぐMacを買いに行くんだ

UTF-8 コードのRailsアプリはWinで開発よりMacの方がいいよなぁ・・・
0139nobodyさん2008/05/17(土) 00:27:54ID:???
そのプレゼンに載ってるのは、エディタTextMateの
RSpecバンドルの機能ですね。

とりあえず標準の範囲なら、spec/spec.optsで
--format specdoc
--backgtrace
と書くとか。
0140nobodyさん2008/05/17(土) 00:28:14ID:???
backtraceですた
0141nobodyさん2008/05/17(土) 15:18:33ID:???
うちも会社の開発環境、ほとんどみんなMacになった。
やっぱり楽。

それまでは
WindowsでVMwareとかは重くて断念。
WindowsでLinuxにログイン、が長かったけど、
いろいろ調査するのに個人ごとに環境があった方が良いって事になって結局Macに。
セミナーとかでも講演してる人、Macが多かったし。

デザイン組み込みとかの時も、
デザイナから上がってきた画像を目で見て確認するのに、
Macのopenコマンドとか、QuickLookがかなり便利。

0142nobodyさん2008/05/17(土) 15:27:47ID:???
我が輩はWindows XP + InstantRails + Eclipse + RadRailsを使っているなり。
RadRails様々なり。
0143nobodyさん2008/05/17(土) 15:39:08ID:???
>>142
うちも最初は同じような環境だったんだけど
Linux(UNIX系)でしか動かないソフトの使用が決定になって断念した。
0144nobodyさん2008/05/17(土) 18:47:59ID:???
Windows + colinux + vim( + zsh + screen)

puttyでsshで繋いで作業
eclipse使ってたときもあったけど重くて嫌になった
win上で開発するのはお勧めできない

>>141
vmwareは重いけどcolinuxは結構軽いよ
そりゃ金があるならmacに越したことはないけど
0145nobodyさん2008/05/17(土) 21:18:51ID:???
俺はWinXP上でRadRails(単体版)
最近はMacOSに興味あるなー
0146nobodyさん2008/05/17(土) 22:05:37ID:???
俺はNetBeans 6.1。Rails対応部分はかなり良いできだよ。
いろいろなところで補完が効くのがいい。
0147nobodyさん2008/05/17(土) 22:14:09ID:???
AptanaとかNetBeansて使いやすいんだが、重くね?

C2D1.8G mem1Gのマシンじゃギリギリだ・・・orz
mem2G以上はやっぱほしいよな
0148nobodyさん2008/05/17(土) 22:45:26ID:???
>>146
俺はNetBeansとか補完IDE無しでRuby書ける奴凄いと思うよ。
理解できない。
0149nobodyさん2008/05/17(土) 22:48:53ID:???
会社はThinkPad X60とかなんで、AptanaとかNetBeans重くて断念。
Linuxサーバに繋いでvi, emacsでやってる。
補完にはあまり頼らないなぁ。
0150nobodyさん2008/05/17(土) 23:04:09ID:???
軽いとか重いとかは環境によるから一概には言えないけど
Netbeans 6.1は結構軽くなってると思うけどなあ。
あとRuby機能のみ入ったのをダウンロードするのが軽くて良いと思う。
0151nobodyさん2008/05/17(土) 23:14:55ID:???
Rubyのみとかできるのか〜
補完機能は要らないけど、Grepやエクスプローラー機能は秀逸だし
使ってみよう。�d

>>149
XGAモニタでIDEはオススメできないw
0152nobodyさん2008/05/18(日) 00:37:58ID:???
補完=無駄な入力省略とすら・・・betterPerlな人たちか・・・
0153nobodyさん2008/05/18(日) 01:40:08ID:???
いや、クラス名やメソッド名が元から無駄に長くないので。
0154nobodyさん2008/05/18(日) 01:45:34ID:???
長さだけの問題じゃねーだろw
0155nobodyさん2008/05/18(日) 03:36:48ID:???
>>147
メモリ1.5GBを境に劇的に変わると思う
0156nobodyさん2008/05/18(日) 21:32:48ID:???
ActiveRecordで任意のSQL文を発行するにはどうしたらいいですか
具体的には alter table ... とか select setcount() とかを実行したいです。

>>154
同意
0157nobodyさん2008/05/19(月) 00:20:37ID:???
Model.find_by_sql
ActiveRecord::Base.connection.execute
0158nobodyさん2008/05/19(月) 02:13:13ID:???
>>142→>>144→macの流れだな。
aptanaは前のマシンだと重くて駄目だった。
0159nobodyさん2008/05/19(月) 11:06:18ID:???
aaa.find(:all, :include=>:bbbb, :select=>'name')のように別テーブルと結合した場合、
:select が効かないんですけどなんとかなりませんか?
0160nobodyさん2008/05/19(月) 14:17:14ID:8IiAUL/0
>>141-151
すごい参考になりました。
みなさんけっこう工夫されてますね
0161nobodyさん2008/05/19(月) 15:08:45ID:???
>>159
’’の中はSQLだから

hoge = Foo.find :all ,
:select => 'foos.id , baas.name',
:include => [:baa]

みたいにどのテーブルのどのカラムって指定しないと無理じゃね?
0162nobodyさん2008/05/19(月) 15:35:10ID:???
>>157
さんくす
ActiveRecord::Base.connection.executeを使わせてもらいました。
01631592008/05/19(月) 16:39:27ID:???
>>161
テーブル名.カラム名って書いてもやっぱりだめでした。
必要なカラムの値のみ取得したいのですが、全カラムの値が返ってきます。

:includeを使うと SELECT * でSQLが作られるんでしょうかね?
01641592008/05/19(月) 16:42:39ID:???
>>161
お礼言ってなかった。
サンクス。

その後、:include ではなく :joinsを使えば :selectオプションが効くのはわかりました。

0165nobodyさん2008/05/19(月) 18:27:04ID:???
Rubyをシェルスクリプト的に使っているんですけど、
あるスクリプトを実行し終わったらirbに入るようなこと
できますか?

要するにirbでいろいろ操作したいんですけど、
そこにいたるまで初期化命令が沢山あるんで、

require 〜
require 〜
require 〜
をした状態でirbのシェルに入りたいのです。
01661652008/05/19(月) 18:40:47ID:???
自己解決しました
0167nobodyさん2008/05/19(月) 19:00:21ID:???
>>164
:include はモデル間でのリレーション
:joins はSQLでのリレーション

:select区指定するような、動的な場合は:join使うとか
モデルにそれ用のメソッド追加するといいかもしれない
0168nobodyさん2008/05/19(月) 19:20:30ID:???
create table books (
id integer primary key auto_increment,
title varchar(256) not null,
price integer
);
というテーブルがあったとき、Book#price は nil を返す可能性があります。
そこで
class Book < ActiveRecord::Base
alias _price price
def price
_price || 0
end
end
みたいなかっこわるいことしてるんですけど、もっといい方法があれば教えてください。
0169nobodyさん2008/05/19(月) 19:28:31ID:???
テーブル定義で
 price integer not null default = 0 ,

migrateだと
 default => 0 ,:nil => false
のような指定じゃダメか?
0170nobodyさん2008/05/19(月) 22:16:59ID:???
>>165-166
自己解決した内容プリーズ
irb -rhoge -rhage -rhige ?
0171nobodyさん2008/05/19(月) 23:47:19ID:???
.irbrc に書いとくのもひとつみたい
0172nobodyさん2008/05/20(火) 10:31:27ID:???
>>165
個人的にはどういう用途でrubyスクリプト書くのか気になるな
0173nobodyさん2008/05/20(火) 10:41:32ID:???
require 'irb'
IRB.start
でirbのプロンプトが出せるので、そこまでの準備はご自由にという感じだな。

0174nobodyさん2008/05/20(火) 13:01:56ID:???
2.1の新機能はよさそうですね。特に named_scope。
正式リリースが楽しみです。
0175nobodyさん2008/05/20(火) 14:35:29ID:???
ruby script/console
でirbみたいなのが起動しますが、自分のスクリプトの中でrailsアプリを読み込むにはどうしたらいいでしょうか。

#!/usr/bin/env ruby
require '....'
MyModel.find(:all).each do |model|
 puts "#{model.id},#{model.name}"
end

みたいなのが作りたいです。
0176nobodyさん2008/05/20(火) 15:57:56ID:???
$ cat script/hoge
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'

require RAILS_ROOT + '/config/environment'

# 以下で好きなことをする。
みたいな感じ。
0177nobodyさん2008/05/20(火) 22:08:58ID:???
f.select で、class="foo" とか onclick="alert()" とかをつけたい場合はどうするんですか。
f.select :foo, :class=>"foo", :onclick=>'alert()' とかしてもだめでした。
0178nobodyさん2008/05/21(水) 00:15:59ID:???
>>177

f.select :foo, {}, :class => "foo", :onclick => 'alert()'
かな。
ヘルパメソッドへのオプションとHTMLを作るときのオプションを
それぞれhashで与える必要があり、なおかつ両方とも省略可能なので、
hashが2つあることがわかるように書く必要があるはず。

0179nobodyさん2008/05/21(水) 03:54:23ID:???
>>168
呼び出す側で to_i か
def price
read_attribute_before_type_cast(:price).to_i
end
みたいな?
0180nobodyさん2008/05/21(水) 16:38:32ID:???
Railsでスプレッドシート作ることってできますか?
もしやっている人のホームページとかわかればお願いします。
0181nobodyさん2008/05/21(水) 21:02:42ID:???
ここって質問スレ?
0182nobodyさん2008/05/21(水) 22:27:20ID:???
違うけどほかのスレは
ことごとく落ちました。
0183nobodyさん2008/05/21(水) 22:28:25ID:???
>>180
できるんじゃね? まあスプレッドシートなら
ほとんどをJavaScriptで作ることになるがw
0184nobodyさん2008/05/23(金) 10:09:55ID:MzFkkhDr
◆【Web】Ruby on Rails用 統合開発環境(IDE) 比較レポート
Ruby on Rails対応のIDEを使用する場合、NetBeans、Eclipse(プラグインを
追加)など複数の選択肢がありますが、今のところデファクトスタンダードと
呼べるものは存在しません。そこで本稿では、共通の基準に対して複数のIDEを
比較し、各製品の特徴と長所、短所を明らかにします。またRuby on Railsによる
開発を始めるにあたって現時点で最も使いやすいIDEを選定します。
http://codezine.jp/a/article/aid/2482.aspx
0185nobodyさん2008/05/24(土) 23:44:37ID:ojuOd+8v
Railsの人たちはヒアドキュメントを再発明してしかも正当化してるわけだが。
Web開発をなめるな。
0186nobodyさん2008/05/25(日) 02:46:51ID:???
Twitterが重いのはRuby on Railsで造られてるから?
0187nobodyさん2008/05/25(日) 03:39:36ID:fA12GUeB
>>185はコピペ

>>186
最近phpに切り替えているらしい。
Railsのせいかどうかはわからないけど、twitterの中の人はrailsのせいにしたがってる
0188nobodyさん2008/05/25(日) 04:54:54ID:???
食べログがRailsになって、価格コムグループの中のサイトも
Railsが多くなってるみたいね。

最近できたエンジニア向けサイトや映画のサイトもRailsだった。
0189nobodyさん2008/05/25(日) 11:37:31ID:OXIuJTVX
GrailsアプリならJavaだからWebLogicとかでも動かせるんだがな
0190nobodyさん2008/05/25(日) 13:28:13ID:???
>>186
利用者が多いから、とも言える
過疎サイトならrailsで十分
0191nobodyさん2008/05/25(日) 14:02:45ID:???
Grailsって、名前だけ見るとPythonかと思ってしまうな。

0192nobodyさん2008/05/25(日) 14:16:23ID:???
googleの息かかってるの?
0193nobodyさん2008/05/25(日) 14:26:15ID:???
ぐれる
0194nobodyさん2008/05/25(日) 14:47:17ID:???
groovyのgだな。
0195nobodyさん2008/05/25(日) 14:48:13ID:???
grailが杯(文脈的に聖杯)を思い出させるからな > python
0196nobodyさん2008/05/25(日) 18:11:22ID:fl6HSoNb
モデルの中で@test = "test"とするのと、self.testというのは何が違うんでしょうか?
01971962008/05/25(日) 18:12:08ID:???
すみません。@test = "test"とself.test = "test"です。
挙動が違うようなので質問させていただきました _ _
0198nobodyさん2008/05/25(日) 18:41:52ID:???
ActiveRecordの話で、対象モデルにtestという属性がある場合の話?
self.test = "test" で見るのは @test ではないよ。

0199nobodyさん2008/05/25(日) 18:42:46ID:???
ruby-users.jpは、railsを使って作られているらしい。
ソースがCodeReposで公開されてた。
ttp://ruby-users.jp/
0200nobodyさん2008/05/25(日) 20:23:34ID:???
今更ながらだけどOpenIDいいな。
02011962008/05/25(日) 22:42:11ID:???
>>198
ありがとうございます。もう一回勉強しなおしてきます _ _
0202nobodyさん2008/05/26(月) 00:18:56ID:???
RESTで作りたくても確認画面入れないといけないのがなぁ…。
0203nobodyさん2008/05/26(月) 02:25:21ID:???
Railsってググれば大抵の事は出てくるし、
ブログでノウハウ出してる所も多いから
ここで聞くってなかなか無い・・・

質問スレになるのはアレだが、イマイチ盛り上がりに欠けるよなぁ・・・

なんというか、寂しい
0204nobodyさん2008/05/26(月) 06:20:41ID:dq0EoCgj
restful_authenticationのAPI Documentて何処にありますか?
探し方が悪いのか一番見つかりそうで見つからないです。。
0205nobodyさん2008/05/26(月) 11:50:04ID:???
restful_authenticationくらいならソース読んだ方が早いぞ
0206nobodyさん2008/05/26(月) 13:24:37ID:???
>>203
Ruby自体、盛り上がりに欠ける。
他のRubyスレも閑古鳥が鳴いている。どげんかせんといかん
0207nobodyさん2008/05/26(月) 14:07:36ID:???
別に無理に盛り上がらなくてもいいんじゃね
こんなもんだと思うけど

まあブログに書くほどでもなかったりとか書きにくかったりする
泥臭いtipsとかバッドノウハウとか
実際のところXXXの問題はどうやってるのかとか
そういうのがもっとあればなーとか
2chなんだから良い意味でもっと書き捨てて書き殴れよ的な
0208nobodyさん2008/05/26(月) 14:56:05ID:???
じゃあ燃料投下

最近Rails本の出版ブームだけどこの動きは何かね?裾野が広がってるとみていいんだろうか

それから2への完全移行を検討してるんだけどみんなの意向具合はどう?俺は既存プラグインの動作確認、ページネーション問題が解決しそうにないので後半年は待つしかないと思ってる
自分のスキル不足も原因だけどね
0209nobodyさん2008/05/26(月) 15:17:25ID:???
Rails本増えた事で、
とっつきやすくなって始めてくれる人がいれば嬉しいな。

Rails2移行は結構難航するらしいけど、
とりあえず、まずは、warning出ないようにしていく事からはじめて行けば
楽らしいぜ。

Rails2化もそうだけど、Ruby1.8.7正式リリースも今後あるだろうし、
スケジュール取るならそれからでもいいと思うぜ。
0210nobodyさん2008/05/26(月) 18:38:28ID:???
> 最近Rails本の出版ブームだけどこの動きは何かね?

売れると思ったから出した。公開はしていない。
0211nobodyさん2008/05/26(月) 20:15:27ID:???
>>199
何でも出来るみたいだけど、これって、セキュリティー的に問題ないの?
0212nobodyさん2008/05/26(月) 20:30:51ID:zf9CrWER
Rails初心者です。
質問させてください。

ActiveRecordを使って、複数のレコードをCreateして、複数レコードを同時にコミット
(save)したいのですが、どうしたらイイですか?

hoge1=Hoge.new(val=1)
hoge2=Hoge.new(val=2)

hoge1,hoge2を同時にsave(コミット)したい。
0213nobodyさん2008/05/26(月) 20:50:15ID:???
>>212
トランザクションを張るといいと思うよ。

Hoge.transaction do
 〜略〜
 hoge1=Hoge.new(val=1)
 hoge2=Hoge.new(val=2)
end
0214nobodyさん2008/05/26(月) 22:27:05ID:zf9CrWER
212です。ご解答ありがとうございます。

Hoge.transaction do
for i in 0..3 do
Hoge.create(:val=i)
end
end

こんな使い方もおkですか?
0215nobodyさん2008/05/26(月) 22:44:08ID:???
>>214
OK
トランザクションの中でfor文廻しても問題茄子!

でも、for文は変数のスコープルールが変わってて、

for i in 0..3 do
 Hoge.create(:val=i)
end
のあとで

p i

のように変数が参照できちゃうから注意な。
普通は繰り返し変数と同名な変数は書かないが
0216nobodyさん2008/05/26(月) 23:01:46ID:zf9CrWER
『while や for がスコープを作らない』って件ですね。了解です。

もうちょっと聞かせてください。先の例のような場合、create!にして
rescueでエラーハンドリングしとっくのが定番ですか?
0217nobodyさん2008/05/26(月) 23:12:47ID:???
>>216
Hoge.transaction do
 begin
  create!
 rescue
  エラー処理
 end
end
トランザクション内でエラーが発生した時、
ロールバックしたいなら例外を投げないとダメだから
必要だぜ。
0218nobodyさん2008/05/26(月) 23:31:08ID:zf9CrWER
ふむふむ。了解です。
どうもでした。
0219nobodyさん2008/05/26(月) 23:31:51ID:???
>>217
スマン。訂正、補足があるよ

create!の時は失敗したら自然に
raise(RecordNotSaved)
が投げられるから
rescue しなくてもロールバックされるよ

create の時には
自分で発生させないとロールバックされないんだ。

rescue では投げられるエラー受け取って
(例外があればロールバックはするから)
エラーメッセージ表示したり、redirect_to で前に戻ったりするような
事書くといいよ。

酔って質問に答えるもんじゃねえな・・・正直すまなかった・・・
0220nobodyさん2008/05/26(月) 23:34:34ID:???
補足の補足。

トランザクションでの注意点
ttp://underrails.seesaa.net/article/54762314.html

saveとsave!
ttp://d.hatena.ne.jp/LukeSilvia/20070712/1184251102

読んで見るといいよ

create! の中では save! してるのは事実だよorz
0221nobodyさん2008/05/27(火) 00:21:54ID:???
関数名に!ってダサいと思う。
!の意味って実質無いも同然だし。
0222nobodyさん2008/05/27(火) 11:39:57ID:???
釣られておくけど、 ! がつくかつかないかは
そのメソッドが破壊的かそうじゃないかの違い
破壊的とはオブジェクトそのものを変化させること
rubyでは同名のメソッドがあって片方が
破壊的な場合は ! をつける慣習がある
意味が無くは無い、少なくともrubyにおいては

でもrailsでは別の意味で使われているものもある
saveみたいに例外を投げるか投げないかの違いとか
正直なんでこのメソッドに ! がついているのか
分からないものもrailsにはいくつかある
0223nobodyさん2008/05/27(火) 13:47:17ID:???
>>222
だから、ダサいっていってるの。

慣習じゃなくて、エラーが出るようにすればよかったんだよ。
!をつけていないと、オブジェクトを変更できないとか。

結局、独創的(笑)な命名規則以外のなにものでもない。
0224nobodyさん2008/05/27(火) 14:50:34ID:???
横レスですまんけど
!ってやっぱりScheme由来なのかな
Eiffelにもなさそうだったし
0225nobodyさん2008/05/27(火) 15:40:48ID:???
アマです
PHPは致命的なエラーじゃない限りは処理を続行してくれるけど、Railsは些細なエラーでも処理を止めるので困ってる
例えばnilオブジェクトに何かしようとした時とか

Railsに限らないのかもしれないけど、徹底的に例外処理を施すべきなのでしょうか?
0226 [―{}@{}@{}-] nobodyさん2008/05/27(火) 16:02:37ID:???
class NilClass; def method_missing(name, *args); end; end;

nil.asdf.asdf.zxcv.zxv.aasdf


エラーになってほしい場面でもエラーにならなくなるからおすすめしない。
0227nobodyさん2008/05/27(火) 17:16:03ID:???
>>225
俺もphp→ruby組だが、PHPがゆる過ぎるだけなので
もうちょっと型(クラス)を意識した方がいいと思う

nilオブジェクトについてはnilが帰る可能性を常に考えるようにして
戻りでnilが帰る可能性がある場合はto_a/to_i/to_sとかで
正常な戻りの型に合わせてやるように意識すると
チェインする時もエラーを出さずうまくいく

return_nil_or_array(foo).each { 〜 }
return_nil_or_str(foo).uppercase
return_nil_or_int(foo) + 123
↓
return_nil_or_array(foo).to_a.each { 〜 }
return_nil_or_str(foo).to_s.uppercase
return_nil_or_int(foo).to_i + 123
0228nobodyさん2008/05/27(火) 20:49:53ID:???
ぬるぽ考慮は、プログラムの常識じゃね?

unless aaa.xx

end

とか簡単なのでいいから一応チェック汁!
0229nobodyさん2008/05/27(火) 22:14:26ID:DQKAsM9l
497 名前:デフォルトの名無しさん[sage] 投稿日:2008/05/27(火) 21:48:37
Ruby人口って実際のところ増えてるの?
過去数年分のMLのトラフィックとか求人にRubyという文字列が含まれてる件数とかの
定点観測データで推移が見られるものってどっかにないのかな。

498 名前:デフォルトの名無しさん[sage] 投稿日:2008/05/27(火) 22:06:07
http://groups.google.co.jp/group/ruby-talk-google/about

これ見ると流量は2008年入って減ってるね。
0230nobodyさん2008/05/28(水) 00:01:09ID:pgzZgd6l
最初に使った言語がJavaだったせいかGrailsのDynamic Finderが最も親しみやすい
02312252008/05/28(水) 14:21:52ID:???
皆さんありがとう
nil考慮してるんだけど、予想できないユーザーの行動に対する配慮漏れが自分には完全に防げてない

227さんの方法とか、後はtestをもっと重視してエラーを探すべきなのかと思った
0232nobodyさん2008/05/28(水) 19:08:18ID:???
質問なのですが。通常、ファイルをサーバーにアップロードする
場合はフォームにファイルINPUTタグを入れてユーザーがファイルを選択して
POSTするというものですが。Railsのプログラムでファイルの名前だけをもらって
そのクライアント側ファイルをサーバーにアップロードするというのは絶対不可能なのでしょうか?
普通の考えでは無理そうなのですが、裏技とかもないものでしょうか・・・。
■ このスレッドは過去ログ倉庫に格納されています