【Ruby】Ruby on Rails Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/30(木) 23:07:27ID:???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
0175127
2009/05/27(水) 02:11:16ID:jIlGcikVむーんやはりそんな感じですか・・
ありがとうございましたm(_ _)m
0176167
2009/05/27(水) 03:42:10ID:???>>171 さんのそういう情報も聞きたかったでした!!
こちらの環境:
・CentOS 5.1
・Apache 2.2.3(httpd-2.2.3-22.el5.centos)
・ruby 1.8.5 (2006-08-25) [i386-linux]
# gem list
actionmailer (2.1.1)
actionpack (2.1.1)
activerecord (2.1.1)
activeresource (2.1.1)
activesupport (2.1.1)
cgi_multipart_eof_fix (2.5.0)
composite_primary_keys (1.0.10)
daemons (1.0.10)
dcov (0.2.2)
fastthread (1.0.7)
gem_plugin (0.2.3)
haml (2.0.9)
mongrel (1.1.5)
mysql (2.7)
passenger (2.2.2)
rack (0.9.1)
rails (2.1.1)
rake (0.8.4)
rcov (0.8.1.2.0)
rspec (1.1.12)
rspec-rails (1.1.12)
0177167
2009/05/27(水) 03:43:18ID:???http://redmine.jp/tech_note/apache-passenger/ にあるように
VirtualHost 形式でやってみたところ、Passenger で Rails アプリは動いた。
これは問題なし。
つぎに http://rubyist.g.hatena.ne.jp/Ubuntu/20080729/1217336403 のように、
VirtualHost を使わず、
# ln -s /usr/local/foo/public /var/www/html/foo
として、httpd.conf に以下を追記した方式で、
RailsBaseURI /foo
Rails アプリを http://myhost/foo/ でやってみた。結果としてうまく動いた。
アプリの view の中で image_tag("icon.png") とすると、
<img src="/foo/images/icon.png">
というように /foo が付加された。
また <%= @controller.request.relative_url_root %> とすると、
/foo が出力された。(*1)
ということで問題ないようです。
ちなみに >>168 にあるように、 config/environments/production.rb に
config.action_controller.relative_url_root = '/foo'
は書いていません。
production.rb をいじらなくても目的は達成できたけど、以下を追試した。
0178167
2009/05/27(水) 03:43:45ID:???production.rb に >>168 を書いて Apache を再起動し、http://myhost/foo にアクセスすると、
Rails アプリが立ち上がらない。Passenger の HTML が出て、
Ruby on Rails application could not be started
Error message:
undefined method `relative_url_root=' for ActionController::Base:Class
というのが出る。
もし書くとしたら、どう書くのが正しいのだろうか?
○追試2( >>171 を見て):
(*1) の時、view で <%= @controller.request.relative_url_root %> の代わりに以下のように書くと、
<%= ActionController::Base.request.relative_url_root %>
以下のようなエラーになった。
ActionView::TemplateError (undefined method `request' for ActionController::Base:Class) on line #?? of index/index.html.erb:
これも同じ問題かな?
0179nobodyさん
2009/05/27(水) 14:03:41ID:???素朴な疑問なのですが、
通常データベースの最初の作成って、どんな風におこなっているもんなんでしょうか?
rake db:create だと mysqlのroot ユーザみたいなあらかじめ権限あるユーザでないと作れないし、
というかdevelopmentとかtestはrootでも別にいいかって感じなんですけど(と、Railsによるアジャイル本P26にあった)、
productionの場合、さすがに root まんまってのも変だし…
結局、mysql コマンドでroot で
create database 'my_project_production' default character set utf-8;
grant all privileges on my_project_production.* to my_project@localhost identified by (パスワード)
みたいにDB作ってユーザー作成ってことをするのも、他の開発者とか、テスト環境とかで
毎回やってたらあれなんで、テキストに書いて、
myslq -u root -p < create_db.sql
みたいにやってもらう、ってことになるかと思うのですが、
その辺、スマートな方法ってないもんでしょうか?
0180nobodyさん
2009/05/27(水) 17:58:08ID:???0181nobodyさん
2009/05/27(水) 18:25:31ID:???0182nobodyさん
2009/05/27(水) 19:04:52ID:???0183nobodyさん
2009/05/27(水) 19:11:52ID:???なぜunixの権限設定の話になるの?データベースユーザの話でしょ?
ちなみにおれはマイグレーション機能を使っていない、
が元レスに対する回答かなあ
0184nobodyさん
2009/05/27(水) 19:27:27ID:???バージョンあげてもっとひどい目に遭いたくないから躊躇してしまう。
0185nobodyさん
2009/05/27(水) 20:07:31ID:???create database は、MySQL にログインして実行しているけど、
そこからさきのテーブルを作るところは、rake db:migrate でやっている。
>他の開発者とか、テスト環境とかで 毎回やってたらあれなんで、テキストに書いて、
別にあれというほどの作業でもないと思うが。
チームに人が増えたら、DB 担当者に「佐藤さんが今日から入ったので、satou スキーマを作ってあげてください」
でいいんじゃないの?
>>184
どう不安定なのか知りたい。
0186nobodyさん
2009/05/27(水) 21:25:43ID:???アパッチごと落ちるとかインターナルサーバーエラー。
落ちるのはやめてほしいが1日に1回くらいかな。
知りたいってことは安定してるの?
0187nobodyさん
2009/05/27(水) 21:33:39ID:???Passenger2.2.2使ってるけど、特にApacheが落ちるという事はないな。
環境が違えば、結果も変わると思うので、ここで聞いても仕方ないのでは?
テスト環境作って、そこで最新版のテストをしてみる事をお勧めします。
0188nobodyさん
2009/05/27(水) 22:34:45ID:???sendmsg()がEBADFで失敗するところまでは追いかけたけど、なんで失敗するのか
さっぱりわからん。
0189nobodyさん
2009/05/27(水) 23:27:55ID:???ふ〜む、サーバーのメモリが足りないのだろうか。
ちょっと開発環境でバージョンあげてテストしてみる。
mongrelの方がよかったかもと後悔中。
0190187
2009/05/28(木) 00:12:48ID:???ところで、このあたりの値ってどうしてます?
PassengerMaxInstancesPerApp
PassengerMaxRequests
自分は今このくらいで動かしてる。
PassengerMaxInstancesPerApp 8
PassengerMaxRequests 15
ちなみにサーバのメモリは4GB。
以前、PassengerMaxRequestsを設定しなかったら
passenger-statusで表示される1個あたりのProcessedが500とかになってて大変な事になってた。
アクセスが多すぎてApacheが落ちる?という事があり得るなら
PassengerMaxInstancesPerAppとPassengerMaxRequestsを調整してみるといいかも。
確証はないけど。
0191nobodyさん
2009/05/28(木) 01:17:36ID:???ありがとう。
おれの方は個人、といっても趣味ではないんだけど、
VPS(メモリ200Mくらい)を使って立ち上げた卵サービス。
パラメータは、
PassengerMaxPoolSize 2
しか設定してない。
マニュアルを見ると「2」でも少しきついかもなんだけど。
アクセスは重なっても瞬間3リクエスト/秒くらいだから、
悔しいけどアクセス過多というのはあり得ないんだよね・・・orz
mongrelの方が消費するメモリが少ないみたいだから、
これくらいの小っちゃい規模ならmongrelの方がいいのかなと思った。
0193nobodyさん
2009/05/28(木) 10:51:19ID:???NO
>>183
そです。
>>185
うん、まあそんなもんかー。それくらい手間じゃなかろう、というスタンスですか
参考になりました。サンクス
0194nobodyさん
2009/05/28(木) 11:13:37ID:???passengerかmongrelか迷うな〜。
passengerはVMにいれて動くとこまで確認したけど、いいのか悪いのか
わかんねー。
0195nobodyさん
2009/05/28(木) 13:20:08ID:???そもそも、開発者は production 運用時のパスワードとか知る必要はないんじゃね。
ウチはそこんとこ、deployスクリプトでよろしくやってる。
0196nobodyさん
2009/05/28(木) 14:52:22ID:???Processed とはどういう意味でしょうか?
こちらでは、開発チーム4人、テスト環境で passenger を使っていて、ホストしている web アプリは1つ、という状況。
ラッシュテストではなく、make/UT フェーズの後で、ブラウザをぽちぽち触っている程度。
あと httpd.conf では、おきまりの追記する 3行と、RailsBaseURI /foo しか定義していない。
----------- Domains -----------
/home/******/rails:
PID: 10322 Sessions: 0 Processed: 111 Uptime: 23m 26s
PID: 15097 Sessions: 0 Processed: 80 Uptime: 7m 33s
Core2Duo E8400、メモリ3GB、CentOS 5.1(32bit)です。
0197nobodyさん
2009/05/28(木) 15:57:18ID:???あ、すまん。もう少し詳細に。
まず、負荷を抑えるために静的ファイルにできるものは全部静的にしてるから、
そのアクセスすべてがRailsのコントローラーを通るわけじゃない作り。
Railsのコントローラーを通るリクエストは全体のうち10〜20%くらい。
瞬間3リクエスト/秒というのは1日1回あれば上等で、1日平均2000〜4000リクエストくらい。
1つ上のプランにしようか検討中(メモリが倍くらいになる)。
0198nobodyさん
2009/05/28(木) 19:46:53ID:???1つのRailsインスタンスが処理しているプロセス数だと認識している。
初期値では無制限になっているから負荷が高い時は
PassengerMaxRequests 50
など少ない数値を指定すると良いかも。
こうすると、各インスタンスのProcessedの値が最大50に制限される。
0199nobodyさん
2009/05/28(木) 21:57:11ID:???俺はとりあえずキャッシュとか一切考えないで作って、
支障でてきたらメンテナンスしようかなってくらいなんだが・・・
結構しんどそう。
0200nobodyさん
2009/05/28(木) 21:58:30ID:???0201nobodyさん
2009/05/28(木) 22:02:19ID:???0202nobodyさん
2009/05/28(木) 23:27:35ID:???0203nobodyさん
2009/05/29(金) 03:17:14ID:2GV35QJ0外部キーの定義にt.references :userを使わずt.integer :user_idを使っています。
なぜなんでしょうか?
0205nobodyさん
2009/05/29(金) 21:04:19ID:???ヘルパで定義したメソッドから、別のヘルパに定義されているメソッドを呼び出そうとしたら
上手く呼び出せないんだ
なぜかActionView::Helpers::JavaScriptProxy のインスタンスが帰ってくる
どうすればいい?
0206nobodyさん
2009/05/29(金) 21:43:02ID:???0207nobodyさん
2009/05/29(金) 23:19:50ID:???0208nobodyさん
2009/05/29(金) 23:23:02ID:???去年は会場が広かったせいかわりと余裕があったが今年はどうだろうね。
0209nobodyさん
2009/05/30(土) 01:57:19ID:???0210nobodyさん
2009/05/30(土) 02:36:46ID:???チケットは瞬殺してしまうものなのでしょうか?
0211nobodyさん
2009/05/30(土) 02:41:08ID:???映画ラストエンペラーでアカデミー音楽賞とった人?
0213nobodyさん
2009/05/30(土) 10:29:12ID:???東京から遠かったせいか、もっとゆっくりだったと思う。
0214nobodyさん
2009/05/30(土) 17:53:01ID:???アクティベーション用につかってたんだけど、とづぜんおくれなくなった。
気になるのは、GMAILにログインして送信済みトレイをみるとそのメールは
送ったことになってる。
なお普通にメールは送れる。
なんか同じような手形式のメールばっかりやってたから、迷惑メールのサーバーとして
利用してると勘違いされて、ブロックかけられてるような気がするのだが・・・。
0215nobodyさん
2009/05/30(土) 18:19:50ID:???0217nobodyさん
2009/05/31(日) 15:45:27ID:???Google Apps の Gmail は2,500だったような気がする。
Gmail アカウントを10コ取得、アカウントをランダムで
回してメール送信すれば OK。
0218113
2009/06/02(火) 12:05:26ID:???production環境でもdevelopment環境みたいに
エラーが発生した時に詳細を出したいんですがどこで設定したらいいですか?
また、Controllerのメソッドを特定のアドレスからのみ実行させたいんですが、
これってrailsの設定でできます?
(ENV['REMOTE_HOST']を取得して分岐させた方が早いですか?)
0219nobodyさん
2009/06/02(火) 12:12:45ID:???0220nobodyさん
2009/06/02(火) 18:37:29ID:???作者メンテ終了ってきいて不安…
0221nobodyさん
2009/06/02(火) 21:31:58ID:???http://www.infoq.com/jp/news/2009/03/ruby-deploy-roundup
Capistrano の後継は vlad というのかな?
もっとも自分は、デプロイは、ローカルで tar.gz つくる→転送する→サーバ側で
Passenger の touch restart.txt する
という原始的なことしかしてないけど(笑)
Capistrano は評判いいらしいが、使ったことない。
0222nobodyさん
2009/06/02(火) 21:35:02ID:???ある程度使っている人がいるだろうから
なにかあってもなんとかなりそうじゃね?
0223nobodyさん
2009/06/02(火) 21:37:41ID:???aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</div>
で、firefoxだとdivの枠線を突き抜けてしまう現象についてなんだが・・・。
今はrubyで<wbr/>タグを文字と文字の間にはさみこんで対処してるんだが・・・
これってみんなどうしてんの?
転送量増えるし、出来ればこの方法はとりたくないなぁ。
0225nobodyさん
2009/06/02(火) 21:40:31ID:???0227nobodyさん
2009/06/03(水) 03:54:32ID:???さっくり商用ソフト使ってサポート契約しておくのが安心。
0228nobodyさん
2009/06/03(水) 11:48:06ID:???0229nobodyさん
2009/06/03(水) 22:26:10ID:???びぎんっ!れすきゅー!
0230nobodyさん
2009/06/04(木) 19:17:08ID:???svnなどのバージョン管理ツール経由でデプロイする場合は、
リポジトリサーバーを公開しておく(デプロイ先からアクセス可にしておく)必要があるわけでしょうか?
リポジトリが公開サーバーからアクセスできない(例えばローカルネットワークやファイヤーウォール内にあるなど)
場合は、どうしたものでしょうか?
また、svn等SCM経由でデプロイする利点というのは何があるのでしょうか?
0231nobodyさん
2009/06/04(木) 19:25:16ID:???set :deploy_via, :copy
set :copy_remote_dir, "/tmp/tmp2"
0232nobodyさん
2009/06/04(木) 21:27:28ID:???ルーツはネットの掲示板が普段言えないこと=反良識だったところだろうね。
で、良識と左派思想に近いものがあったのが原因かと。
多分今のネットの言論の遡った先って、大昔のあめぞうとかUG系の掲示板で話されてた
中二病的な会話だったと思う。
「うぜえ、氏ね」とか「ハッキングが問題なんじゃねえ、ちょっとつついたら入られる
くらいセキュリティもちゃんとせずにネットやるほうが悪いんだよ」とか「殴られても
やりかえすな、ヘラヘラしてろってかw」みたいな。
表によろしい発言かというとそうじゃないけど、まあちょっと良識に反発しようと
思って考えずに口にだす暴論、みたいな。
それが2chになって、2chが巨大化して一般人も流入して、セコウ工作が……となっていくうちに
「ヘイトスピーチ」「自己責任」「9条破棄」と変質していったと。
でも確かにほんとうざいな、右翼コメ。
雑談スレで何かっつーとそういうネタ持ってくる人とかもうね。
0234nobodyさん
2009/06/04(木) 23:27:36ID:???0235nobodyさん
2009/06/05(金) 01:44:35ID:???:if とか :unless とか上手く使えばスマートに書けるのだろうか・・・。
それとも Model 内で 呼び出し元の action 取得できるような機能ってあったりする??
0236nobodyさん
2009/06/05(金) 01:51:08ID:???どこでそんなのが必要になるのかさっぱりわからんが、
新規作成時と既存レコードの更新時で変えたいなら方法はある。
0238nobodyさん
2009/06/05(金) 06:58:11ID:???なんか意味が分からない。
validate_on_create、validate_on_update、validate
をモデルに定義するだけじゃ足りないの?
0239235
2009/06/05(金) 08:46:49ID:???>>238
そんなに意味がわからない程珍しいシチュエーションかなー??
DB上は一つのテーブルだから一つのModelなんだけど、カラムによって登録・更新する画面がいくつかに分かれてしまった場合とかってそれなりにあると思うんだが・・・。
ttp://blog.masuidrive.jp/index.php/2008/02/23/rails_valid_columns/#
ttp://www.fraction.jp/log/archives/2008/02/29/Rails_de_Wizard
この辺の記事にもあるけど、ウィザード形式の入力フォームとか。
「じゃあ記事の方法でいいじゃん」って事かもしれんが、上の記事の方法だと一回全部 validate が実行されるし、
下の記事は API ドキュメントにある方法だけど、明示的に Controller からどの画面かを渡してるのが微妙だな、と思って、
他になんか方法がないかなー、と。
0240nobodyさん
2009/06/05(金) 09:22:02ID:???bodyが2画面目で入力されるとして、
class Entry < ActiveRecord::Base
validates_length_of :body, :if => :_body_required?
def _body_required?
!!self.body
end
end
みたいに普通にやれば良いだけじゃないの?
1画面目ではvaildation走らない。
0241nobodyさん
2009/06/05(金) 09:24:07ID:???その値によって入力する内容が変わったりするってことか?
どういうものかイメージがわかないのだが、複数の画面で登録するってことは、
1つのテーブルにまとめてること自体がおかしいというわけではないの?
0242nobodyさん
2009/06/05(金) 10:23:57ID:???自分なら、モデルではなく、バラのセッションデータとして属性値を持ち回って、
ウィザードの最後でモデルを作るという形にすると思う。
0243nobodyさん
2009/06/05(金) 10:30:16ID:???validationをどうするかって話でしょ。
ウィザードの最後でvalidationするの?
0244nobodyさん
2009/06/05(金) 10:42:09ID:???0245235
2009/06/06(土) 00:39:58ID:???みんないろいろなレスありがとう。
とても参考になります。
>>240
確かにシンプルでいいんだけど、最終的に body が必須(validates_presence_of)の場合だと駄目だよね?
実際ちょっと困ったのが、後の画面では必須なのに前段階の画面には入力欄の無いパターンなんだ。
>>241
選択によって入力させる内容が変わるというよりは、入力項目が多い画面なんかで、「次のステップ」みたいに画面分割された感じ。
テーブル設計のミス、と言われればそれまでなんだけど、画面が開発後半になって分割されたりしたから、タイミング的にテーブルを分けるのは難しいんだ・・・。
>>242
確かに良くないとは思う。
ただその方法だと >>243 の指摘の通りで、入力画面が分かれてるから、最期にまとめて実行すると一部の項目が入力欄がないのにエラーメッセージが出てる状態になっちゃうんだよね・・・。
>>244
それって
ttp://blog.masuidrive.jp/index.php/2008/02/23/rails_valid_columns/#
ここの人がやってた validatoin 一旦走らせて、不要な項目のエラーを errors から取り除く、ってことかな??
確かにこの方法使うとコード自体はすっきりしそうなんだけど、毎回全部の validation が一度は実行される、ってのは微妙な気がしてる。
例えば Java の Struts なんかだと ValidatorActionForm みたいに、同じ ActionForm でも パス毎に異なる検証ルールを適用できるよね?
そういう方法が Rails にも用意されているのかと思ったんだけど・・・。
そういう事やるためのプラグインとかってあったりする?
0246nobodyさん
2009/06/06(土) 01:13:48ID:???↓(valid_for_B?)
入力ページB
↓(valid_for_C?)
入力ページC
↓(valid?)
確認
↓(valid?)
完了
って感じで遷移するんだよね、きっと。
controllerのprivateにでもvalid_for_XX?みたいなのを作ってしまえばどうでしょう。
遷移の都合なんだから直書きでもいいかもしれない。
def valid_for_B?(record)
record.valid?
return !(errors.on(:body) || errors.on(:title))
end
昔validate_attributesってプラグインを使ったことがある。
validateするカラムをonly/exceptで指定できる。
検索してどこのリポジトリのが使えそうかおしえてちょ。
最近はgithubでforkされまくるからどこのが良さそうか迷うわな。
0247235
2009/06/06(土) 02:00:03ID:???errors.on(:body) で特定カラムにエラーがあったかどうかチェックできるのか・・・これは知らなかった!
この書き方だと確かにシンプル且つ画面との結合がControllerだけに押さえられそうだね。
valid? 呼んじゃってるから validation が一旦全部実行されちゃう、ってのを無視できる箇所ならこれで良さそう。
validate_attributes ってプラグインがあるんだね。
検索してみたら日本の人が作ったのがあるみたい。
ttp://blog.imishin.com/projects/ruby/validattributes/#
ttp://github.com/kusakari/valid_attributes/tree/master
今年5月くらいにも更新入ってるようなので、メンテはされてそう。
サイトを見る限りなかなか良さそうなので、時間見て触ってみるよ!!
0248nobodyさん
2009/06/06(土) 02:42:03ID:???NetBeans 6.5でRailsアプリケーションのテスト駆動開発を:企業IT部門の変革を支援するエンタープライズ実践情報サイト EnterpriseZine
http://enterprisezine.jp/article/detail/910?p=3
NetBeans 6.5でRailsアプリケーションのテスト駆動開発を:企業IT部門の変革を支援するエンタープライズ実践情報サイト EnterpriseZine
http://enterprisezine.jp/article/detail/910?p=4
Productクラスにフィールドの値を検証するコードを追加しています。
Productクラスにインスタンスメソッドvalidateメソッドを実装すると、saveメソッドの直前に実行されます。validateメソッドの中で、
不正な値を見つけ出したら、errorsオブジェクトのaddメソッドを使って、エラーを登録します。このメソッドは第1引数にフィールドの名前、第2引数にエラーメッセージを取ります。
1行目と2行目は、test_should_create_productとほぼ同じですので、3行目から見ていきましょう。
assert p.errors.invalid?(:price)
priceフィールドでエラーが生じていることを確認しています。これは一種のイディオムとして覚えてください。
0249nobodyさん
2009/06/06(土) 05:57:25ID:???cap deploy:setupが無事に終わり、cap deploy:cold しようとするのですが、
リポジトリからチェックアウト時にこけてしまいます。
config/deploy.rbは
set :repository, "svn+ssh://my_server/my_program/trunk"
set :deploy_to, "/home/www/#{application}"
set :deploy_via, :copy
みたいにしてあるのですが、
ローカルでの実行結果を見ると、
svn checkout -q -r13 "svn+ssh:\\my_server\my_program\trunk" c:\cygwin\tmp
になってて、権限がない、とかでエラーになってました。
試しに
svn checkout -q -r13 "svn+ssh://my_server/my_program/trunk" c:\cygwin\tmp
とすると問題なく実行されました。
svnに渡されるパス区切りが何故かバックスラッシュになっているみたいです。
(すいません、細かいログはちょっと忘れました。後でまた書きます)
Windowsのせいなのかな…
環境
・Windows XP SP3
・cygwin + ssh + ssh_agent
・svn, バージョン 1.5.3 (r33570) plink.exeとpageantでssh鍵接続
0250nobodyさん
2009/06/08(月) 08:19:40ID:???比較的日本語のせつめいもあるからね
0251nobodyさん
2009/06/08(月) 10:27:16ID:???0253nobodyさん
2009/06/08(月) 11:11:23ID:???0254251
2009/06/08(月) 11:27:36ID:???252 的なつまらん回答としては
xrea に Rails や、GAE を JRuby on Rails とかかなぁ。
0255nobodyさん
2009/06/08(月) 11:29:14ID:???can't activate gettext (= 1.93.0, runtime) for [], already activated gettext-2.0.4 for []
と出ます。gettext は 1.93.0 と 2.0.4 が入っています。
エラーメッセージから推察するに 1.93.0 を指定する必要がありそうな感じなのですが、
どうしたらいいでしょうか。
0257nobodyさん
2009/06/08(月) 14:42:45ID:???0259nobodyさん
2009/06/08(月) 14:47:37ID:???Morph AppSpaceだ。
PaaS, the leader in Platform as a Service :: Morph Labs
http://mor.ph/
Java/GrailsのWebアプリを無料クラウド環境で動かす (1/3) - @IT
http://www.atmarkit.co.jp/fjava/special/appspace/appspace_1.html
0260251
2009/06/08(月) 14:57:16ID:???DB 5M までなら今も無料です。
ただ、5M は小さすぎて。
ttp://heroku.com/pricing#blossom-1
>>259
ありがとうございます。
DB も MySQL/PostgreSQL が用意されていてすごいですね。
0262249
2009/06/08(月) 15:59:55ID:???謎をとくべく、リポジトリのパスが何故バックスラッシュが円記号になってしまうのか、該当箇所が見つからず困ってます…。
リポジトリのパスが lib/capistrano/recipes/deploy/scm/base.rb の repositoryメソッドで
repositoryという設定から読まれていて、
cap deploy:coldによって、
lib/capistrano/recipes/deploy/strategy/base.rb の Capistrano::Deploy::Strategy.deploy! から、
lib/capistrano/recipes/deploy/scm/subversion.rb の checkout でrepositoryメソッドが呼ばれているまではわかりました。
円記号への変換ルーチンが見つからないよヽ(`Д´)ノ ウワァァン!!
0263249
2009/06/08(月) 16:31:58ID:???if RUBY_PLATFORM =~ /win32/
cmd.gsub!('/','\\') # Replace / with \\
というようなコードがあり、置換されているようでした。
本家でも確認されたこちらの問題のようです。
#76 Invalid subversion url - Capistrano - capistrano
https://capistrano.lighthouseapp.com/projects/8716/tickets/76-invalid-subversion-url
[Capistrano] Problem with :deploy_via, :copy and windows
http://www.mail-archive.com/[email protected]/msg05626.html
パッチあたるバージョンが出るまで、
置換されないように、/ 渡す方法ってないもんでしょうか?
Ruby一般な問題な気がするので、本スレの方で聞いてみます。
0264nobodyさん
2009/06/09(火) 00:32:39ID:???これってファイルを更新したくなったらどうするんですか?
ユーザ1人1人に顔アイコンをuploadできるような仕組みを考えてて、
userモデルはphotoモデルをbelongs_toしてる。
photoモデルはhas_attachmentして、uploadされたデータをファイルとして保存してる。
こんな感じで保存してるんだけど
@photo = Photo.new(params[:uploaded_data])#ファイルフィールドからのポスト含む
@photo.save
User.update(ユーザID, [{:photo_id => @photo.id}]
これで新しい画像をアップロードしたときどうすればいいんだろうか・・・と悩んでいるのだけれど・・・。
User.photo.destroy if User.photo
@photo = Photo.new(params[:uploaded_data])
@photo.save
User.update(ユーザID, [{:photo_id => @photo.id}]
こうすればいけるのはわかるのだけど、
@photo = Photo.find(params[:id])
@photo.update_attributes(params[:photo])
こういう風に更新するのが正しいような気がするのですが・・・
0265nobodyさん
2009/06/09(火) 16:21:04ID:???全体像がつかめません。
どうしたら、どのファイルが必要であるかわかったり、
ファイルごとの関連性がわかるなど
全体像をつかむことが出来ますか?
0266nobodyさん
2009/06/09(火) 18:01:27ID:???I/O BOOKSの「はじめてのRuby on rails2」がおすすめ。
慣れるとまったく読むことの無い本になるけど、
非常に簡単に説明してくれるので、まずつまづくこと無くサンプルアプリが組めるはず。
学習の最初に火種にいい本だと思ってる。
他はレシピブックが個人的には神だった。
Ruby on rails Webアプリケーションスーパーサンプルは駄目だった。
0267nobodyさん
2009/06/09(火) 18:40:55ID:???今まさにこれで勉強してる訳だが(´;∀;)
0268nobodyさん
2009/06/09(火) 18:45:52ID:???あ、すまん。つい
0269nobodyさん
2009/06/10(水) 00:00:25ID:???ごめん、「駄目」って言い方悪かった。
最初にその本から始めたんだけど、俺の頭が悪くて理解不能だった。
「はじめてのRuby on rails2」は、相当ハードル下げてくれてるから
(その分進みが遅くて内容が薄い)、俺でも理解できた。
> Ruby on rails Webアプリケーションスーパーサンプル
は、バージョンが1.3なのがマイナスだけど、ある程度理解した状態で読んだら
普通にいい本だったよ。
0270nobodyさん
2009/06/10(水) 01:15:45ID:???has_attachment :content_type => :image, :storage => :file_system,
validates_as_attachment
モデルにこの設定でも、exeとかdllとかでもupできてしまう・・・
has_attachment :content_type => :image,
:storage => :file_system,
:path_prefix=>"public/image/d/",
:max_size => 3000.kilobytes,
:resize_to => '130x100'
validates_as_attachment
この設定でなんでもuploadできるし、3M超えても普通にアップロードできる・・・。
:storage => :file_systemだから?。。。
自分でファイルサイズとかのvalidate作らないとだめなんでしょうか。
他にいい画像アップロードのプラグインないでしょうか。
0271nobodyさん
2009/06/10(水) 06:36:31ID:???やりたい事がアップロードできるファイルの種類の制限(画像のみ)やファイルサイズ
だけなら、簡単そうだからプラグインのソースを直接修正すればいいと思うよ。
0272nobodyさん
2009/06/10(水) 10:51:34ID:???0273nobodyさん
2009/06/10(水) 11:08:18ID:???一回アップロードされるのはRailsのプラグインだと、
いまのところ仕方ないこと。
アップロード後にvalidationかけてはじく。
仕事で使うとどうしても確認画面入ってくるから、
そういう場合はいまだfile_column一択になってしまう。
0274nobodyさん
2009/06/10(水) 11:22:05ID:???仕事で Rails 使っている人発見!
入力→確認→登録の流れをどう実装していますか。
登録画面にも確認画面を表示しているならその方法や、
確認→登録の hidden は何か特別なこととかしてるかとか。
■ このスレッドは過去ログ倉庫に格納されています