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

Ruby on Rails のスレ が

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/04/06(日) 04:59:29ID:???
無いのはどうしてだろう?
消えたのか?
流行ってないのか
死亡
0116nobodyさん2008/05/09(金) 01:13:57ID:???
>>115
C-c ↑ のことかな?
C-c C-p でもできるようにキーバインディングを変えてます。
0117nobodyさん2008/05/09(金) 12:59:17ID:???
>>116
ちょーさんくす
あいしてるよ
01181162008/05/09(金) 13:39:24ID:???
キーバインディング変更はこんな感じで

(define-key rails-minor-mode-map "\C-c\C-p" 'rails-lib:run-primary-switch)

あとは、Rail2.0でファイル拡張子に.html.erbを使うようになったのに対応して
rails.elの中でこんな設定をしておくとよい

(defvar rails-templates-list '("html.erb" "erb" "rhtml" "rxml" "rjs" "haml" "liquid"))
0119nobodyさん2008/05/09(金) 14:47:55ID:???
Railsで
select a.id, a.name, o.name
from accounts a, organizations o
where a.organization_id = o.id
order by o.name;
というSQLを発行するにはどうしたらいいですか。
Account.find(:all, :include[:organization])
でOK?
0120nobodyさん2008/05/09(金) 14:49:41ID:???
>>119
find_by_sql

変数取り込むならちゃんとエスケープしてからやれよ?
0121nobodyさん2008/05/09(金) 21:14:37ID:???
>>120
さんくす

> 変数取り込むならちゃんとエスケープしてからやれよ?
こういう心遣いができるおまえは優秀なエスパー
これからも地球の平和を守ってくれ
0122nobodyさん2008/05/09(金) 22:30:39ID:???
>>121
今SQLインジェクションアタックが盛んだからじゃね?
ttp://www.tokumaru.org/d/20080502.html

普通は
:conditions => ['hoge = ?' , params[:hoge]]
のようにすればいいけど、

フルSQLとかに変数使いたい時は
Hoge.find_by_sql("select * from hoges where hoge = #{connection.quote(params)}")
がオヌヌメ

ttp://pirochin.blogspot.com/2007/08/activerecordbaseconnectionquote.html
0123nobodyさん2008/05/10(土) 01:12:35ID:???
sanitize_sql(["select * from hoges where hoge = ?", params[:hoge]])
0124nobodyさん2008/05/10(土) 01:35:58ID:???
redmineを http://www.example.com/redmine/ で動かすことには成功しました。
http://www.example.com/~foo/redmine/ で動かしたい場合には
httpd.confをどのようにすればよいのでしょうか

DocumentRoot /usr/local/apache2/htdocs
RailsBaseURI /~foo/redmine
とすると
Passenger error #2
Passenger thought that the Rails application's "public" directory is "/usr/local/apache2/htdocs/~foo/redmine".
となり、必ずDocumentRoot配下を見るようになってしまいます。
0125nobodyさん2008/05/10(土) 01:50:18ID:???
情報足りないですねorz
Linux上でApache2.2.8+mod_rails(passenger-1.0.5)です。
0126nobodyさん2008/05/10(土) 01:55:26ID:NOkob+Vn
>>125
おぉ!mod_railsの情報か!!

ほとんどhttpd.confに書くんだっけ?
app/controller/foo/
app/views/foo/

って内部にサブディレクトリ切るんじゃダメだろうなぁ・・・
0127nobodyさん2008/05/10(土) 01:55:53ID:???
~を使えるのはUserDirそれ自体のみじゃないかな。
/~foo を本来のファイルシステム上の絶対パスで書いたらどうよ?
01281242008/05/10(土) 02:10:09ID:???
>>126
Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用
ttp://redmine.jp/tech_note/apache-passenger/
の通りにやるとサクッと動きました。

>>127
RailsBaseURI /home/foo/public_html/redmine と書いて ~foo/redmineにアクセスすると
Apacheがrailsを認識してくれず、普通のindexリスト表示になってしまいます。
0129nobodyさん2008/05/10(土) 23:24:32ID:???
URLが~foo/でなきゃいかん理由って何よ?
~fooの絶対パスを/foo に Alias して
http://example.com/foo/redmine
じゃだめなん?
0130nobodyさん2008/05/12(月) 12:32:39ID:MkPAtgFM
無料レンタルサーバーでRails使えるところあったら教えてください。
0131nobodyさん2008/05/12(月) 19:17:18ID:???
>>130
ないと思います。GoogleAppEngineでサポートされることを祈っておいてください。

質問なんだけど、migrationで、add_columnするときに、:null=>falseを指定できますか。
データが1行もないときはできると思うけど、すでにデータが入っているテーブルに:null=>falseつきでadd_columnしたいんです。
あるいはadd_columnしたあとにfind(:all).each でデータを設定してから、:null=>falseを追加するとか。
0132nobodyさん2008/05/12(月) 19:40:44ID:???
>>131
change_column という大変便利なものをみつけてしまいました。
add_column :items, :newcolumn, :string
Items.find(:all).each {|item| item.newcolumn = '...'; item.save! }
change_column, :items, :newcolumn, :string, :null=>false
でいけました。
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

のように変数が参照できちゃうから注意な。
普通は繰り返し変数と同名な変数は書かないが
■ このスレッドは過去ログ倉庫に格納されています