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

【RoR】Ruby on Rails Part16

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/01/31(木) 08:07:31.27ID:GGHiBszv
前
http://kohada.2ch.net/test/read.cgi/php/1341589839/
http://unkar.org/r/php/1341589839

■参考サイト
<英語>
本家:http://rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
http://ruby-toolbox.com/
http://rubygems.org/
http://agilewebdevelopment.com/plugins/top_rated

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

http://doc.ruby-lang.org/ja/1.9.3/doc/index.html
0002nobodyさん2013/01/31(木) 17:58:26.67ID:McZkc4zd
a
0003あ2013/01/31(木) 23:17:53.99ID:McZkc4zd
b
0004nobodyさん2013/02/01(金) 10:19:11.63ID:???
sanitize('>>1')
0005nobodyさん2013/02/02(土) 04:40:50.70ID:???
質問させてください

たとえばタグクラウドがあって
その中のfooというタグをクリックして

http://hoge.com/posts?tag=foo

に飛んだとします


すると

@posts = Post.find_all_by_tag(params[:tag])

で結果レコードを取得して表示しますが
ここでブラウザー(safari)の戻るを押すと
いちいち「フォームを再送信してもよろしいですか?」といったメッセージが出てきます。

これが出てこないようにする方法ってありますか?
googleでキーワード検索してブラウザーで前画面に戻っても出ませんよね

それが理想です
0006nobodyさん2013/02/02(土) 05:35:29.46ID:???
Railsの質問というより、HTTP MethodのPOSTとGETの違いを勉強するよろし
Googleのソレは、GETだから フォーム再送信の注意が出てこない
0007nobodyさん2013/02/02(土) 06:46:38.27ID:???
>>6
前ページのHTML内のFORMのMETHODは全てGETなんです

なので不思議でたまりません

あ、分かったかも。。。Twitterの新
ウィジェットがもしかして悪さしてますか?あれってツイート入力してそのまま送れますよね?
0008nobodyさん2013/02/02(土) 12:49:58.97ID:???
Railsを動かすサーバってVPSかクラウドだけ?
0009あ2013/02/02(土) 13:06:51.79ID:gQtUcBSu
http://www.heroku.com/
http://sqale.jp/
http://c4sa.nifty.com/
http://mogok.jp/
http://www.gehirn.co.jp/
http://rackhub.net/
https://www.action.io/
https://c9.io/
0010nobodyさん2013/02/02(土) 13:21:08.72ID:???
ほとんどクラウドじゃん
0011nobodyさん2013/02/02(土) 14:58:00.44ID:???
http://ja.wikipedia.org/wiki/PaaS
http://ja.wikipedia.org/wiki/SaaS
http://ja.wikipedia.org/wiki/IaaS
0012nobodyさん2013/02/02(土) 20:13:29.27ID:???
Macをお使いの方
どなたか>>7をお願いします

実際にどのページでも常に表示されるように設置してみて
ブラウザの戻るを押してみてください。

これって解決方法ないですかねぇ
0013nobodyさん2013/02/02(土) 21:26:06.19ID:???
safari以外では再現しないの?
0014nobodyさん2013/02/02(土) 23:32:33.80ID:???
>>12
Macじゃないし全く確認もしてないけど、

ページAのTwitter新ウィジェットとやらで何かPOST
→ページBを表示 (このページがPOSTパラメータに依存)

ページBのタグクラウドとやらをクリック
→ページCを表示

このとき、CからBに戻ったときにその確認が出るのは
あたりまえ。ウィジェットとやらをGETで使えないか調べるか
それ使うのをやめるしか無い。

ページCの内容はこの話になんにも関係ない
0015nobodyさん2013/02/03(日) 00:22:42.85ID:???
>>13
再現しませんね
Twitterはこんなことを検証しないでリリースしたのでしょうか?
それともMacのsafariを見限ったか



>>14
調べてもなかなか出てきませんね
確実にtwitterウィジェットとsafariの組み合わせの問題のようです
0016nobodyさん2013/02/03(日) 00:25:56.97ID:???
横槍すみません

現在運用してるRoRで作られたサイトがあります
メモリ1GBなのが辛いのか?
それとも設計自体に問題があるのか?

少し閲覧者が増えただけで
ページをロードするだけでバカみたいに重く(遅く)なってきました。


スペックの高いサーバーを別に借りて
同じソフトを入れていって
同じ環境を作り

アプリをそのままコピペ

既存のデータベースをエクスポートしておきたものを
新しい方へインポート

通常であればこれだけで動き出しますか?
該当ディレクトリ内の各種パーミッションが気になるところではありますが
0017nobodyさん2013/02/03(日) 11:05:57.60ID:???
Ruby on Rails 3.1 でセッションを memcached に保存する - ux00ffの日記
http://d.hatena.ne.jp/ux00ff/20111128/1322495435

Rails3からmemcachedを利用する | Banana Systems 株式会社
http://www.banana-systems.com/2010/09/rails3_memcached/
0018あ2013/02/03(日) 22:31:44.88ID:???
スタートアップ企業で8年間Webの開発をしてみての反省点いろいろ - Masatomo Nakano Blog
5. ハードウェアは正しく適正なものを買おう
6. サーバ周りの人材をしっかり確保しよう
http://b.hatena.ne.jp/entry/blog.madoro.org/mn/84
http://blog.madoro.org/mn/84
0019nobodyさん2013/02/04(月) 02:34:37.60ID:???
nginx と apacheだと全然速度が違ってきますか?

productionにしたんですが
なんというか時間の経過とともにhttpの動き自体が異常なくらいに重くなっていきます。

アクセスも最大接続20程度なのに。。。。

どなたか、よろしくお願いします
0020nobodyさん2013/02/04(月) 02:35:31.93ID:???
ちなみに現在がapache2です
0021nobodyさん2013/02/04(月) 07:39:09.41ID:???
プログラムの作り
使ってるDBとその設定
サーバスペック

などによりけり
0022nobodyさん2013/02/04(月) 08:02:41.46ID:???
>>21
メモリ1GBでデイリーPV1万人越えの会員サイトは絶えられますか?
0023nobodyさん2013/02/04(月) 09:53:58.83ID:???
だからメモリだけじゃないと言ってるだろ…
0024nobodyさん2013/02/04(月) 10:21:13.32ID:???
OSにもよるな。もしLinuxでないなら。
あまりに古いマシンでなければ、デイリー1万PVなんて余裕でしょ。
動画サイトだと厳しいだろうが。
0025あ2013/02/04(月) 11:40:11.70ID:???
Togetter(トゥギャッター) - まとめ「700万PVのRails製サイトが月$60のVPS(メモリ1GB)で動かせるという話」
http://togetter.com/li/4514
0026nobodyさん2013/02/04(月) 12:31:18.93ID:5sF210yV
リンギオ - Railsで遅延読み込みする
http://ringio-blog.appspot.com/2011/08/to-lazy-loading-in-rails

Railsで高速表示のために遅延読み込みを利用する - お題目うぉっち
http://blog.livedoor.jp/maru_tak/archives/50698407.html

Togetter(トゥギャッター) - まとめ「700万PVのRails製サイトが月$60のVPS(メモリ1GB)で動かせるという話」
http://togetter.com/li/4514

Rails アプリを nginx の拡張モジュールで置き換えて高速化する方法 - HeartRails Tech Blog
毎秒 1000 アクセスはクリア。CPU の使用率は 25% 前後
http://techblog.heartrails.com/2011/01/rails-nginx.html
0027nobodyさん2013/02/04(月) 14:38:47.67ID:5sF210yV
Rails + New Relic ならレスポンスタイム等のパフォーマンス監視が簡単にできるよ - 彼女からは、おいちゃんと呼ばれています
http://b.hatena.ne.jp/entry/d.hatena.ne.jp/inouetakuya/20121216/1355656214
0028nobodyさん2013/02/04(月) 19:42:42.93ID:???
>>23
>>24
CentOSです

とくにページキャッシングやフラグメントキャッシングは使っていません。

サイトのほう自体の動きは大して重くならないんですが

webminのapacheメニューでapply changesを押したとき
今まではすぐに反映されてたのが
今は10秒くらいかかるようになり
なんだか管理側のアクセス?が異常に重くなっています


それに伴いサイト自体の動きも遅くなっているのでは?と判断しています
0029nobodyさん2013/02/04(月) 22:08:48.05ID:???
自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
ADSL でつないでれば大丈夫だよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html
0030nobodyさん2013/02/04(月) 22:14:55.10ID:???
サーバー管理知識が無くても「さくらVPS」をレンタルサーバーのように使える方法
http://b.hatena.ne.jp/entry/www.wakatta-blog.com/vps.html
0031nobodyさん2013/02/04(月) 22:18:02.79ID:???
ITmedia エンタープライズ:自社サーバがフィッシングサイトに「踏み台化」されたら? (1/3)
また、電源を切ってしまうことも良い対応ではない。
オンメモリ上で稼働しているフィッシングサイトの場合は、電源を切ることによって、すべてのデータが消えてしまい、原因究明や対応に遅れなどが出ることも考えられるからだ。
 事実、フィッシングサイトを構成するツールの中には、後に証拠が残らないよう、すべてがオンメモリ上で動作するものがある。
このような場合、再起動や電源オフによって、メモリ上にあるすべてのプログラムやファイルが消え、事実や原因の確認が困難になる。
http://www.itmedia.co.jp/enterprise/articles/0603/17/news004.html
0032nobodyさん2013/02/04(月) 23:10:08.64ID:5sF210yV
New York Timesの記事によれば、同紙は米Symantecのウイルス対策製品を使っていたが、
Mandiantが調べた結果、攻撃者が使った45種類のカスタム版マルウェアのうち、Symantecの製品で検出できたのは1種類のみだったという。
http://bylines.news.yahoo.co.jp/yamamotoichiro/20130204-00023332/
0033nobodyさん2013/02/05(火) 07:33:38.29ID:???
2つ質問させてください

普通にrailsでアプリをくめば無意識に
idカラムには自動的に索引は適用されるようになっているのでしょうか?


もしアプリがすで動いていて
booksテーブルのtitleカラムに既存のレコードも含め
索引を急遽付けたくなった場合は
マイグレーションファイルを作成して対処できますか?
その場合はどのように記述すべきでしょうか?
0034nobodyさん2013/02/05(火) 10:38:28.96ID:???
railsが自動的にって事はないはず
ただしDBによっては勝手に張られるみたい
mysqlでは張られてて、sqlite3では張られてなかった
これはDBの機能ってどっかで読んだ

普通に add_index :books, :title で良いんじゃないの
0035nobodyさん2013/02/05(火) 13:25:02.75ID:XBXTjn08
RubySource | Anatomy of an Exploit: An In-depth Look at the Rails YAML VulnerabilityRubySource
http://rubysource.com/anatomy-of-an-exploit-an-in-depth-look-at-the-rails-yaml-vulnerability/
0036nobodyさん2013/02/05(火) 18:02:39.35ID:???
iphoneアプリ、Windowsアプリを売って生き残れ Ver 1.6
http://tinyurl. com/9w97424
0037nobodyさん2013/02/07(木) 23:11:16.21ID:NFy8vZhH
ruby on railsを本気で勉強したいです。
出来るだけ詳細で深く突っ込んだ書籍を探しています。
英語は苦手ですが洋書も含めて探しています。
本じゃなくてもサイトでもepubでもkindleでもなんでも構いません。

オススメの書籍がありましたら教えてください。よろしくお願いいたします。
0038nobodyさん2013/02/07(木) 23:58:16.55ID:Te1cij5l
はじめる! Rails3(1) - 達人出版会
http://tatsu-zine.com/books/rails3

Amazon.co.jp: Ruby on Rails 3 アプリケーションプログラミング: 山田 祥寛: 本
http://www.amazon.co.jp/gp/product/4774146633

Amazon.co.jp: RailsによるアジャイルWebアプリケーション開発: Sam Ruby, Dave Thomas, David Heinemeier Hansson, 前田 修吾: 本
http://www.amazon.co.jp/gp/product/4274068668
0039nobodyさん2013/02/08(金) 00:39:07.29ID:???
すいません、生意気なことを言って申し訳ないですが、そういう初心者向けの本は求めてないです。
0040nobodyさん2013/02/08(金) 00:47:53.18ID:???
>>37
今から勉強しても金にならない技術だよ
それにrailsってクソ遅いよ

rails 遅い でググってみ

チューニングがみたいなこと言い出す奴いるけど
それ以前の問題だから


素直にjavaやったほうが100倍将来性もあるし
いいよ
0041nobodyさん2013/02/08(金) 00:48:48.99ID:???
twitterといい脱railsだからね
未だにrailsをメインで使ってる時代遅れなサービスってあるの?
0042nobodyさん2013/02/08(金) 01:13:50.88ID:???
本気で勉強したいならコード読むのが良いんじゃないの
0043nobodyさん2013/02/08(金) 01:44:06.79ID:???
https://github.com/rails/rails
0044nobodyさん2013/02/08(金) 03:06:27.47ID:???
>>41
お約束だけどクックパッドとか?
0045nobodyさん2013/02/08(金) 07:37:57.93ID:???
>>44
もうそんなもんじゃん
0046nobodyさん2013/02/08(金) 08:13:07.52ID:???
girhub, 食べログ
0047nobodyさん2013/02/08(金) 17:37:38.97ID:???
twitterはむしろ途中までよくあの規模のサイトでrailsで運用してたなと感心するレベル
0048nobodyさん2013/02/08(金) 17:47:49.04ID:???
>>47
一日何UVくらいまでrailsでやってたの?
メインホストPC1台だけだったの?
さすがにクラスタリングとかしてるよね?
0049あ2013/02/08(金) 17:48:28.57ID:???
2月13日。「バレンタインデー」の前日に、クックパッドのシステム負荷は1年で最も高くなる。
手作りチョコレートなどのレシピを求めて、ユーザーが殺到するからだ。
この日のアプリケーションサーバーへのリクエスト数は、
最大で毎秒5000件。負荷は通常時の数倍に達する。
http://itpro.nikkeibp.co.jp/article/Active/20120719/410229/
0050あ2013/02/08(金) 17:52:43.98ID:???
結局何度かテストを実施したところ一番良い時で4813件/秒まで行きました。
http://blog.flect.co.jp/labo/2012/09/heroku-meetup-6-5d24.html
0051nobodyさん2013/02/08(金) 17:57:36.30ID:5Ag+30XH
なぜTwitterは低遅延のままスケールできたのか 秒間120万つぶやきを処理、Twitterシステムの“今” − @IT
http://www.atmarkit.co.jp/news/201004/19/twitter.html

RORのままアーキテクチャの変更で10000%高速化したとな。
ttp://b.hatena.ne.jp/entry/highscalability.com/scaling-twitter-making-twitter-10000-percent-faster

ミニブログの Twitterのstats(統計)データ。
http://kaworu.jpn.org/kaworu/2008-01-16-2.php
- 350,000を超えるユーザ。
- 秒間600リクエスト
- 平均毎秒200-300コネクション。最大時は秒間800コネクション
- MySQLは秒間2,400リクエストを処理する
- 180のRailsインスタンスがある。MongrelのWebサーバを使っている。
- 1つのMySQLサーバ(1つの大きな 8コアのサーバ)と1つのスレーブ。スレーブは、統計とレポートのための読み込み専用(リードオンリー)。
- 雑用処理をするための30+のプロセス
- 8台のSun X4100s
- Railsでのリクエストの処理時間は200 msec
- データベースにかかる時間の平均は、50-100 msec
- 16GBの memcached
0052あ2013/02/08(金) 17:59:11.68ID:???
米Twitterが12月18日、月間アクティブユーザー数(MAU)が2億人を突破したと、公式Twitterで発表した。1億人を超えたのは昨年9月だった。
http://www.itmedia.co.jp/news/articles/1212/20/news101.html
0053あ2013/02/08(金) 18:02:12.62ID:???
1000000 daily users and no cache
http://www.slideshare.net/wooga/1000000-daily-users-and-no-cache

高トラフィックサイトをRailsで構築するためのTips基礎編
http://www.slideshare.net/kaznum/railstips
 
Games for the Masses: Scaling Rails to the Extreme
http://www.slideshare.net/wooga/games-for-the-masses-scaling-rails-to-the-extreme

ドリコム的Railsアプリ開発流儀
http://www.slideshare.net/takafumionaka/rails-11635710
0054nobodyさん2013/02/08(金) 18:04:27.59ID:???
うちのVPSクソサイトなんて
一秒間に2つしかリクエストを処理できない

なんで、こんなにも違うのさ
0055nobodyさん2013/02/08(金) 18:22:51.32ID:???
今はJavaだよ
http://www.infoq.com/jp/news/2012/11/twitter-ruby-to-java
0056あ2013/02/08(金) 18:38:41.59ID:???
Rails Hub情報局: Twitterは意外なほどRuby on Railsでできている!?
http://b.hatena.ne.jp/entry/el.jibun.atmarkit.co.jp/rails/2012/10/twitterruby-on--0ce5.html

Twitter がまだ Ruby on Rails を使っているらしい証拠を発見した。 - 杉風呂2.0 - A Lifelog -
http://d.hatena.ne.jp/suginoy/20120726/p1
0057nobodyさん2013/02/08(金) 18:56:38.25ID:???
>>54
それは ab の結果?
さすがにおかしくないっすか
0058nobodyさん2013/02/08(金) 18:58:34.67ID:???
昨年末くらいにコケた時、一部でRailsのテンプレ周りのエラーメッセージ出てたからビックリしたわ
0059nobodyさん2013/02/08(金) 21:59:43.86ID:???
毎秒5000程度ならどんなフレームワークでも対応できそうだけどw
0060nobodyさん2013/02/09(土) 20:24:14.39ID:???
Railsはオワコンとかクソ重いとか、ちゃんと自分で測って言っているのか?
他人の記事のURLを引用して主張するなんてバカでもできる。

もっと、Railsが今でも使えるモノかどうか、客観的な議論はないのか?
もちろん、Twitterレベルの規模のサービスで使うのは無理があると思うが……。
0061nobodyさん2013/02/09(土) 22:42:13.16ID:???
nginxを使って、時間のかかるアクションはthin
かからないアクションはunicorn とかって出来ますか?
0062nobodyさん2013/02/10(日) 00:32:59.71ID:???
delayed_job
0063nobodyさん2013/02/10(日) 01:34:02.48ID:???
https://devcenter.heroku.com/articles/delayed-job
0064nobodyさん2013/02/10(日) 10:06:29.96ID:???
正直railsはオワコン
0065nobodyさん2013/02/10(日) 11:11:56.80ID:???
バックグラウンド処理じゃなくて
例えばapiを叩いてごにょごにょして出力とかだと時間がかかるので
unicornはそういうのには向いてませんよね。
なのでそれだけthinで出来ないのかなと思ったのでした。
0066nobodyさん2013/02/10(日) 11:29:12.12ID:???
質問させてください


コントローラー
@users = @post.users
@posts = Post.find_all_by_category(params[:category])


ビュー
<%= @users.count %>
<%= @posts.count %>

のようなカウンター値を全てのページで表示させる場合、
カウンターキャッシュを使う方が遙かに処理時間(負荷)は少なくて済みます?

それともどちらにせよ@usersや@postsとして
記事を引っ張り出して
それらを表示させているのであれば

カウンターキャッシュを使わず
.countとしても大して負荷はかからないから気にしなくてもいいですか?

カウンターキャッシュにしてもいいのですが
管理側でphpMyAdminからレコードを消したときに
カウンター値との誤差が出てくるので
できれば.countにしておきたいのですが
どうでしょう?


もしくは、createやdestroyのアクションの際に毎回集計をとりなおして
カラムに正しい集計値を格納してやるのも有りですか?
0067nobodyさん2013/02/10(日) 11:53:06.52ID:???
length とすると countのSQLは発行されず
ロードしたオブジェクトの個数を返すよ
0068nobodyさん2013/02/10(日) 12:15:33.74ID:???
>>67
ありがたや、ありがたや

要するにviewで
<%= @users.length.to_s %>
とすればいいんですね

となるとカウンターキャッシュを使う利点って何になってくるんですか?

・全てのアソシエーションをdependant=>destroy

・webアプリ自体以外からのレコード削除を行わない!


これらを前提としたときだけ
カウンターキャッシュが有用だよ!ってことですか?
0069nobodyさん2013/02/10(日) 12:18:33.72ID:???
>>67
すみません。追加で質問です

コントローラー内でも

@posts = Post.find_all_by_category(params[:category])

@posts_count = @posts.count

これでも二回SQLが発行される
つまり遅い
したがって二行目は

@posts_count = @posts.length
のほうがいい!という認識で合ってますか?
0070nobodyさん2013/02/10(日) 12:23:39.32ID:???
.order("posts_count") とか

includes(:posts)せずに
- @users.each do |user|
 = user.posts_count
とか
0071nobodyさん2013/02/10(日) 12:32:26.80ID:???
>>69 あってると思う
パフォーマンス計測にはbulletとか newrelicがおすすめ。
mysql専用のもあったんだけど名前忘れた。
0072nobodyさん2013/02/10(日) 12:33:30.82ID:???
>>70
ごめんなさい。ちょっと理解できるレベルじゃないみたいです。


>>71
ありがとうございます。
0073nobodyさん2013/02/10(日) 13:14:20.50ID:???
カウンターキャッシュの利用の有効性は>>68に書いた条件でいいですか?
0074nobodyさん2013/02/10(日) 20:31:40.28ID:???
レコードは rails console や、rails admin とか active admin なんかの gem から削除すれば良いよ
カウンターキャッシュに dependent: destroy は関係ないんじゃないかな
0075nobodyさん2013/02/11(月) 12:02:52.87ID:???
外国向けのアプリを作るとき
国によって時間の表示のさせ方を変えるのってどうすればいいですか?
0076nobodyさん2013/02/11(月) 15:33:36.27ID:???
i18n
0077nobodyさん2013/02/11(月) 15:34:47.47ID:n5nNToTb
http://guides.rubyonrails.org/i18n.html
0078nobodyさん2013/02/11(月) 15:40:52.68ID:???
>>76
>>77
ありがとう
i18nって変動する値には対応してないという認識なんだけど

言葉みたいな固定のものだけを
言語設定にあわせて表示してくれるかんじ

各国のユーザーが投稿しはじめたら
イギリスの標準時間に合わせて保存しておいて
表示させるときにどうにか計算させなおして
表示させるのかな?
仕組みが良く分からない
0079nobodyさん2013/02/11(月) 16:22:57.02ID:???
この記事参考になるんじゃないかな
http://qiita.com/items/68341489a9c5149b815d
0080あ2013/02/11(月) 18:25:58.92ID:???
I18n.localize Time.now
http://d.hatena.ne.jp/willnet/20100430/1272618929

http://www12.atpages.jp/~nekomike/blog/2010/05/11/rails-日付を国際化-表示/
0081あ2013/02/12(火) 04:12:29.01ID:???
Riding Rails: [SEC][ANN] Rails 3.2.12, 3.1.11, and 2.3.17 have been released!
http://weblog.rubyonrails.org/2013/2/11/SEC-ANN-Rails-3-2-12-3-1-11-and-2-3-17-have-been-released/

https://github.com/rails/rails/compare/v3.2.11...v3.2.12
0082nobodyさん2013/02/12(火) 11:01:11.07ID:6eTPG0HR
ActiveRecordとマルチスレッドの組み合わせで教えてください。抜粋ですが以下のようなスクリプトです。
ruby1.9 rails3.2です。

ActiveRecord::Base.configurations["working"]= {
:adapter => 'sqlite3',
#:database => ':memory:'
:database => DATABASE
}
module Working
ActiveRecord::Base.establish_connection "working"
class Dealer < ActiveRecord::Base
end
unless Dealer.table_exists?
ActiveRecord::Schema.define do
create_table "dealers" do |t|
t.column :no, :integer
...
t.column :capital, :integer
end
end
end
end
FROM
record = Working::Dealer.new
record.no, ... , record.capital = [num, ... , capital]
record.save!
Working::Dealer.connection.close
TO
FROMからTOのの部分がマルチスレッドで動きます。
データベースを実ファイルにしているときはエラーになりません。
0083nobodyさん2013/02/12(火) 11:08:54.84ID:6eTPG0HR
しかし,:memory:にすると、record.save!の行で
DEPRECATION WARNING: Database connections will not be closed automatically,
please close your database connection at the end of the thread by calling `close` on your
connection. For example: ActiveRecord::Base.connection.close
. (called from mon_synchronize at /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211)
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:
in `initialize': SQLite3::SQLException: no such table: dealers:
INSERT INTO "dealers" ("capital",...,"no") VALUES (?,..., ?) (ActiveRecord::StatementInvalid)
のエラーが出てしまいます。
これはデータベースへのアクセススピードが速すぎて,競合してしまっているのでしょうか?
レコードの追加のみなので,特にトランザクションやロックを考慮していないのが原因なのでしょうか?

ググっても手がかりがつかめなかったので,すみませんが教えてください。
0084nobodyさん2013/02/12(火) 11:51:52.90ID:???
誰もそんな高レベルな質問分からないよ
0085nobodyさん2013/02/12(火) 12:49:54.80ID:???
単純にスレッドが終わるの待ってないからでは。
エラー内容も読んでね。
0086832013/02/12(火) 17:19:58.23ID:6eTPG0HR
DEPRECATION...のエラー(ウォーニング)のほうは問題ないようです。
(connection.closeが呼ばれる前に,エラーでストップするからだけのよう?ウォーニングがでないときもある)
追尾のために
ActiveRecord::Base.connection_pool.with_connection do
print "pool, "
Working::Dealer.transaction do
print "transaction, "
record = Working::Dealer.new
print "new, "
record.lock!
print "lock, "
record.no,..., record.capital = [num,..., capital]
print "=, "
record.save!
p record
end
としたところ。(3つスレッドが作られて)
-- create_table("dealers")
-> 0.0182s
pool, pool, pool, transaction, transaction, transaction, new, new, new, lock, lock, =, lock, =, =
in `initialize': SQLite3::SQLException: no such table: dealers: INSERT INTO "dealers"...(ActiveRecord::StatementInvalid)
という結果でした。
テーブルが作られたにもかかわらず,`無い'というエラーなので、どうもわかりません。
もしかして,:memory:でやっているので,スレッドがメモリを食い尽くしてしまっているのでしょうか?
0087nobodyさん2013/02/12(火) 23:00:08.94ID:IdZcVAQx
Rails SQL Injection Examples
http://rails-sqli.org/
0088nobodyさん2013/02/13(水) 11:27:53.61ID:???
RailsとCakePHPの両方やったが
Railsのメリットってなに?

CakePHPならレンタル鯖だろうが
ぶっこむだけで動き出すじゃん

しかも、鯖のメンテはホスティング会社が勝手にやってくれる

RailsはVPS以外では使えないし
そもそも一から必要なものをいろいろとSSHで入れていかなきゃダメ
かなりメンドイ

しかも、入れていくにしても
パッケージのバージョンの依存関係のせいでエラー勃発しまくり
まともな組み合わせを探せるまで
相当時間がかかる

時間が経てば旧バージョンを落とせなくなってたりもするし

そこまでしてなんでRailsを選ぶの?
何がそうさせる?
0089nobodyさん2013/02/13(水) 11:28:44.91ID:???
下手したらデプロイのほうが開発より時間かかる

とくにgemを多用してたりすると
0090nobodyさん2013/02/13(水) 13:04:59.79ID:???
Ruby+Railsは、PHP+CakePHPと比べて快適だから。
感覚的な問題だから、PHPのほうがいいという人もいるだろうし
そういう人はPHPを使ったほうがいいでしょう。
0091nobodyさん2013/02/13(水) 13:31:46.53ID:???
>>90
具体的にどういうふうに?
0092nobodyさん2013/02/13(水) 17:06:13.31ID:???
海外のVPS借りてる人いますか?

ftpでファイルをちょっと書き換えてアップとか
SSHが遅いんだけど、海外鯖だとこんなもんなのかな?
0093nobodyさん2013/02/13(水) 18:47:01.03ID:???
海外だとRTT大きいしSSHとかだと当然そうなるんじゃないの
0094nobodyさん2013/02/13(水) 20:17:35.22ID:???
>>91
感覚的にって書いてあるだろ。
日本語読めよ
0095nobodyさん2013/02/13(水) 21:39:34.56ID:???
しばらくは自己弁解モードでした。Rubyに変更しないための理由を作っていました。
一日経つと「Rubyが本当に好き」になり、一週間経つと「PHPには戻れない」状況になりました。
http://capsctrl.que.jp/kdmsnr/wiki/transl/?AnInterviewWithDHH

DHH:極端なことを言うと,Rubyが一番美しく自分のコードが書けるからです。
DHH:PHPとJavaです。でも,どんなにリファクタしても綺麗なコードが書けなかった。
http://gihyo.jp/dev/serial/01/alpha-geek/0004

404 Blog Not Found:そろそろPHPに関して一言いっとくか
http://b.hatena.ne.jp/entry/blog.livedoor.jp/dankogai/archives/50835571.html
http://b.hatena.ne.jp/entry/blog.livedoor.jp/dankogai/archives/50993137.html
0096nobodyさん2013/02/13(水) 21:40:10.01ID:pFcuxYSR
インタビュー:[楽天]Ruby活用事例とROMA,Fairy|gihyo.jp … 技術評論社
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

第4回 Railsに変えてよかった!:iKnow!の場合 | Think IT
http://thinkit.co.jp/article/156/4?page=0,1
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。
またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。
0097nobodyさん2013/02/13(水) 21:41:01.88ID:???
食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/
0098nobodyさん2013/02/13(水) 22:39:37.17ID:pFcuxYSR
https://twitter.com/junya/status/301581347649122306


https://twitter.com/Espen_Antonsen/status/299665397404274689
0099nobodyさん2013/02/13(水) 23:34:24.94ID:???
バージョンの依存関係で悩んだことなんてないぞ
もしかしてwindowsで使ってるimagemagickのひと?
0100nobodyさん2013/02/14(木) 05:20:58.50ID:XsxLpfIW
Show HN: Build your own Heroku on your own servers | Hacker News
http://news.ycombinator.com/item?id=5213862

Cloud 66 | Code to Cloud in 5 minutes
https://www.cloud66.com/
0101nobodyさん2013/02/14(木) 05:28:46.90ID:???
Automate Amazon Web Services - Skeddly
http://www.skeddly.com/

Ruby On Rails and PHP Cloud Hosting PaaS | Managed Rails Development
http://www.engineyard.co.jp/
■ このスレッドは過去ログ倉庫に格納されています