【RoR】Ruby on Rails Part16
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/01/31(木) 08:07:31.27ID:GGHiBszvhttp://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
0410nobodyさん
2013/05/31(金) 10:18:17.43ID:+PRRlHZrhttp://www.ustream.tv/channel/rubykaigi1
http://www.ustream.tv/channel/rubykaigi2
0411nobodyさん
2013/06/01(土) 11:04:04.45ID:PrhkBdJGhttp://www.ustream.tv/recorded/33559705
http://rubykaigi.org/2013/talk/S76
Amazon.co.jp: WEB+DB PRESS Vol.70
実践Rails高速化
http://www.amazon.co.jp/gp/product/4774151904
0412nobodyさん
2013/06/03(月) 11:29:37.37ID:???MongoDBとMySQLはどちらがオススメ?
0413nobodyさん
2013/06/03(月) 17:04:33.89ID:???0414nobodyさん
2013/06/03(月) 18:24:00.41ID:???0418nobodyさん
2013/06/07(金) 17:59:31.41ID:???Railsアプリの動きは遅くなるのかな?
0419nobodyさん
2013/06/08(土) 09:01:28.16ID:???参照元テーブルのデータ1件1件に対してSQLを発行して
参照先テーブルのデータを抽出してる。
何か嫌だなと思い、joinsメソッドを利用しようかなと思うと、
本には「可搬性を損なう可能性があり余り使うな」的なことが書かれている。
うまい具合にjoinさせるにはどんなやり方がスマート?
0420nobodyさん
2013/06/08(土) 09:10:39.43ID:???0421nobodyさん
2013/06/08(土) 11:25:43.61ID:???has_manyのincludeオプションがrails4では無くなってるぽいし、
とりあえず気にしないことにするわ
0422nobodyさん
2013/06/08(土) 11:55:01.89ID:bZllAe6Bactive_record/relation/query_methods.rb で
定義されている Post.includes(:author) みたいな方じゃないの?
0423nobodyさん
2013/06/08(土) 21:51:56.32ID:???そんなに早い?
0424nobodyさん
2013/06/08(土) 22:46:38.06ID:???けどruby1.9→2.0ほどは変わらない
ちゃんとベンチマーク取ってない印象レベルだけど
0425nobodyさん
2013/06/08(土) 22:59:29.22ID:bZllAe6Bせいぜい「1.8を切り捨てたので方々で場合分けをする必要がなくなった」くらいで。
0426nobodyさん
2013/06/08(土) 23:31:05.54ID:???ってそんなに早くなったかなぁ
0427nobodyさん
2013/06/09(日) 09:03:38.88ID:???スループットはそんなに変わらん
0428nobodyさん
2013/06/09(日) 12:39:49.72ID:???0429nobodyさん
2013/06/12(水) 21:14:40.81ID:???0430nobodyさん
2013/06/13(木) 08:18:46.12ID:EofK01c0サーバはturbolinks経由で呼ばれていることには気付かず、従来どおり
HTMLをまるごと返す。よってページのHTML生成に関してのサーバ負荷は
変わらない。
headにあるlinkやscript要素の解釈がなくなる分が高速化ということらしい。
スタイルシートやスクリプトの読み込みについては、asset pipilineがあるので、
基本的に全ページ同一のはず。
0431nobodyさん
2013/06/13(木) 22:27:25.95ID:???0432nobodyさん
2013/06/14(金) 02:41:26.20ID:???css側にimage-url指定しても同じようで、どうすれば解決できますか?
0433nobodyさん
2013/06/14(金) 06:07:42.18ID:???background-image: url(image_path('check.png'));
http://stackoverflow.com/questions/15257555/how-to-reference-images-in-css-within-rails-4
0434nobodyさん
2013/06/14(金) 11:52:47.97ID:???その質問は既に実践してみたけどダメっぽいす
rails4のsprockets-railsがハッシュ化したものしか吐き出してくれなくて、CSSで自動対応orハッシュ化しないものも吐き出すのどっちか実現できるといいんですが
0435nobodyさん
2013/06/14(金) 13:45:06.60ID:Tnh0zzXS0436nobodyさん
2013/06/14(金) 13:53:35.38ID:Tnh0zzXSということは、直接 public/images (を掘って) 使え、ということなのだろうか。
0437nobodyさん
2013/06/14(金) 14:23:26.62ID:???ここでいうcssはscssのことです
画像をそのままpublicにコピペしてprecompile、で済めばいいんですがCSSフォントをstylesheetのフォルダに入れていたりして
逐一手作業でやるとうっかりミスがありそうで怖いっすね
0438nobodyさん
2013/06/18(火) 15:46:00.85ID:???あるときは必須入力だが、またあるときは空白でもいい、という具合に
0439nobodyさん
2013/06/18(火) 21:55:59.97ID:tjJhZDGu0440nobodyさん
2013/06/18(火) 22:18:51.93ID:hv3t4vIG◆じゃあのさん来た!◆
15:名無しさん@13周年[]
2013/06/18(火) 20:44:34.07 ID:xHiEGVRK0
おうwww俺だwww
なんか色々起きてるみてえだなあwww
最近しばき隊大活躍だもんなあwww在特の奴らも巻き込まれてかわいそうになあ
これな、俺から言わせれば警視庁本部警備課と新宿署の不手際だわwww
完全に本部カラ派遣された本部警備課員と新宿署がドジ踏んだ案件だわ
--- 以下スレ情報 ---
【東京】嫌韓デモで衝突 在特会会長やしばき隊のメンバーなど8人を逮捕★12
http://uni.2ch.net/test/read.cgi/newsplus/1371555637/
0441nobodyさん
2013/06/23(日) 12:47:46.80ID:???database.ymlをそろえて片方からmodelとhelperをautoloadで読み込む方法以外にありますか?
0442nobodyさん
2013/06/24(月) 00:40:42.32ID:QnIiM3MY0443nobodyさん
2013/06/24(月) 07:26:45.49ID:???modelだって2つのアプリで異なるだろう
2つともまったく同じだというなら、それは別アプリにする必要があるのか?から考えた方がいい
database.ymlをそろえて後はそれぞれで実装すればいい
>>442
逆だろ
0444nobodyさん
2013/06/24(月) 07:59:17.65ID:7cn1fuW10445nobodyさん
2013/06/26(水) 07:31:56.30ID:???0446nobodyさん
2013/06/26(水) 16:03:45.08ID:y0jOgAZsモデルからコントローラへ値を渡す際はどのような方法がありますでしょうか?
モデルで値を代入したインスタンス変数を用いて、以下のように[モデル]→[ビュー]へ値を渡そうとしたのですができませんでした(Rails 3.2.13)。
---
■失敗したコード
○モデル
@next_page = "test"
○ビュー
<%= form_for @tmp_order, :url => {:action => @next_page} do |form| %>
(省略)
<p><%= form.submit %></p>
<% end %>
---
そこで考えてみると、[モデル]→[コントローラー]→[ビュー]のような流れで渡さなければいけないのではと気づいたのですが、具体的にどのように記述すればよいかが分かりません。
上記の「失敗したコード」のモデルの記述をそのままコントローラーに記述すると、フォームのサブミットボタンを押下した際に文字列に対応するページへ遷移することができます。
ですので、[コントローラー]→[ビュー]へ値を渡したい場合はインスタンス変数を用いれば良いと分かったのですが、[モデル]→[コントローラー]へ値を渡す方法が分からない状況です。
参考となるサイトなどありましたらご教示いただけますと幸いです。よろしくお願いいたします。
0447nobodyさん
2013/06/26(水) 16:33:14.55ID:???返り値をビューに渡せばOK
Controller:
@hoge %3d Model.hode
Model:
def self.hoge
return 'hoge'
end
View:
hoge %3d <%%3d @hoge %>
0448nobodyさん
2013/06/26(水) 16:34:30.90ID:???0449446
2013/06/26(水) 19:15:01.21ID:ubczZcmNそもそもやりたいことの実装方法に何か見落としてがある気がしてきました。
フォームのサブミットボタンを押下した際に、
以下のようにコールバックを利用して、
createやupdate_attributeが呼ばれた後に
バリデーションの結果に応じてビュー(form_forメソッドの:url)に渡す
遷移先のページ名を切り替えれるようにしたかったのです。
---
■失敗したコード 2
○モデル
after_create :set_next_page
after_update :set_next_page
def set_next_page
self.valid? ? @next_page = 'next_test' : @next_page = 'test'
end
○ビュー
<%= form_for @tmp_order, :url => {:action => @next_page} do |form| %>
(省略)
<p><%= form.submit %></p>
<% end %>
---
0450446
2013/06/26(水) 19:17:40.96ID:ubczZcmN再入力をうながすようにしたいというのがはじまりです。
しかし、はじめはfrom_forの「:url => {:action =>」に「'next_test'」と
リテラルで記述していたので、バリデーションエラーの発生有無にかかわらず
次のページ('next_page')に遷移してしまいいとした挙動となりませんでした。
そこで、前述のようにコールバックを利用してなんとかできないかなと、
試行していますがどうもうまくいきません。
「:url => {:action => @next_page}」を記述しないと「undefined method `hoge_path'」のように怒られてしまいます。
なにか、アイデアやヒントがありましたらご教示いただけますと幸いです。
0451nobodyさん
2013/06/26(水) 20:05:10.77ID:???バリデーションを行うメソッドをコントローラに用意する
そのメソッドの中でエラーフォームをrenderするか次のページにredirectするかを決める
0452nobodyさん
2013/06/26(水) 21:23:47.18ID:KC4YmkCBバリデーション結果(@tmp_order.valid? とか @tmp_order.errorsとか)を
見て判断するばいいのでは?
0453446
2013/06/26(水) 22:02:25.58ID:ubczZcmNいただいたアドバイスをもとに
(バリデーションを行うメソッドをコントローラに用意する方法は分からなかったのですが、)
コントローラーで次のページにredirectする処理を入れるというのが良いと思ったので、
失敗したコード2(>>449)のモデルの記述を全て削除して、以下のように書き直しました。
「helper_method :select_next_page」を書くことで、
ビューからコントローラーメソッドを呼び出すことができるという記事を見つけたので、
その方法を使ってみました。
0454446
2013/06/26(水) 22:04:40.03ID:ubczZcmN■失敗したコード 3
○コントローラー
helper_method :select_next_page
def hoge
private
def select_next_page(validation_flg)
redirect_to :action => 'next_test' if validation_flg
end
end
○ビュー
<% @next_page = 'test' %>
<%= form_for @tmp_order, :url => {:action => @next_page} do |form| %>
(省略)
<p><%= form.submit %></p>
<% end %>
<%= select_next_page(@tmp_order.valid?) %>
---
このコードだと、ビューが読み込まれる際に
必ず最下部の「<%= select_next_page(@tmp_order.valid?) %>」が
実行されてしまうので、testページが表示されないままnext_pageページが表示されてしまいます。
サブミットボタンを押下するまで「<%= select_next_page(@tmp_order.valid?) %>」が
実行されないようにすることはできないのでしょうか?
0455446
2013/06/26(水) 22:07:28.44ID:ubczZcmN---
○コントローラー
helper_method :select_next_page
private
def select_next_page(validation_flg)
redirect_to :action => 'next_test' if validation_flg
end
0456nobodyさん
2013/06/26(水) 22:08:24.95ID:???ビューにそういう仕事をさせない
そういうのはコントローラの仕事
どうもPHP臭い癖が残ってるようだが、PHPと違ってビューはあくまで表示に徹するという意識改革が必要
0457446
2013/06/26(水) 22:17:20.64ID:ubczZcmNありがとうございます!
また考えなおしてみます!
0458nobodyさん
2013/06/29(土) 06:05:07.02ID:4ayE3ytLサーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html
ITmedia エンタープライズ:自社サーバがフィッシングサイトに「踏み台化」されたら? (1/3)
また、電源を切ってしまうことも良い対応ではない。
オンメモリ上で稼働しているフィッシングサイトの場合は、電源を切ることによって、すべてのデータが消えてしまい、原因究明や対応に遅れなどが出ることも考えられるからだ。
事実、フィッシングサイトを構成するツールの中には、後に証拠が残らないよう、すべてがオンメモリ上で動作するものがある。
このような場合、再起動や電源オフによって、メモリ上にあるすべてのプログラムやファイルが消え、事実や原因の確認が困難になる。
http://www.itmedia.co.jp/enterprise/articles/0603/17/news004.html
0459nobodyさん
2013/06/29(土) 12:26:21.94ID:???Rails4.0.0正式版を使っているんですが、
publicフォルダに独自のindex.htmlを置いたのです。
developmentモード時は
http://0.0.0.0:3000/
でindex.htmlが表示できたのですが、
productionモード時は
http://0.0.0.0:3000/
とアクセスしても
The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.
というエラー表示が出てしまいます。
ログを見ると
ActionController::RoutingError (No route matches [GET] "/"):
となっています。
productionモード時でもindex.htmlを表示できるようにするにはどうしたらいいでしょうか?
0460nobodyさん
2013/06/29(土) 14:18:14.35ID:hP/NWwWJwebサーバに頼らず自力で配信したいなら config/environments/produciton.rb の
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = false
を変更する。
0461nobodyさん
2013/06/29(土) 17:50:02.42ID:???デプロイ先がHeroku(Webrick)なので、
config.serve_static_assets = true
にして対応しました。おかげ様で表示することができました。
ありがとうございました!
0462nobodyさん
2013/07/06(土) NY:AN:NY.ANID:???Railsでやるんですか?
それともrhtmlを別ソフトで編集するんですか?
0463nobodyさん
2013/07/06(土) NY:AN:NY.ANID:???0464nobodyさん
2013/07/07(日) NY:AN:NY.ANID:???Deginoのようにdb自体をクラウドに置くのは嫌なんです
TuigwaaかDrupal+cck+viewsなら出来そうなんですが、
エンドユーザーがmodel追加可能なプラグインさへあれば後は何とかなりそうなんですが・・・
0465nobodyさん
2013/07/07(日) NY:AN:NY.ANID:???0466あ
2013/07/08(月) NY:AN:NY.ANID:kIUaRpvBhttp://www1.city.matsue.shimane.jp/tyumoku/johoseisaku/rubygw_kochiku.html
http://www1.city.matsue.shimane.jp/tyumoku/johoseisaku/rubygw_kochiku.data/youkyuushiyousho.pdf
0467nobodyさん
2013/07/11(木) NY:AN:NY.ANID:???GUIからgemfileは編集できないってことなのでしょうか?
0468nobodyさん
2013/07/12(金) NY:AN:NY.ANID:0ocwBlfR0471nobodyさん
2013/07/14(日) NY:AN:NY.ANID:???0472nobodyさん
2013/07/15(月) NY:AN:NY.ANID:V1KW3/2Mhttp://weblog.rubyonrails.org/2013/7/12/Rails-3-2-14-rc1-has-been-released/
0473nobodyさん
2013/07/15(月) NY:AN:NY.ANID:???DreamWeaverみたいなの使って作って
それをあてがってる?
それともデザインもhtmlをタグ打ちしてる?
最近はデザインのほうが面倒く感じるようになってきた。。。
0474nobodyさん
2013/07/15(月) NY:AN:NY.ANID:IrAB52ny0475nobodyさん
2013/07/15(月) NY:AN:NY.ANID:???何か良いアドバイスないですか?
皆さん予め自分用のテンプレート作ってますか?
コントローラーから同じ変数だけビューに渡して
ビューだけそれぞれのページを
pc用、スマホ用に分けて表示させるかんじで
0476nobodyさん
2013/07/15(月) NY:AN:NY.ANID:???photoshopでカンプ作ってからコーディングする
livereloadがあるからエディタはなんでもいいんじゃないすか
0479nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???うは
初めて知った!!
みんな、デザイン部分はphotoshopとかでやってから
それを利用してテキスト部分だけをrailsであてがうのか。。。
俺、今まですべてタグ打ちでデザインレイアウトまでやってて
時間がかかりすぎてたから
レイアウト作るのは本当に億劫な作業だったわ
0480nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???ただ、コンプで検索してみたところ基本的にPC用デザインしか対応できなさそうだけど
スマホ用のデザインはどうしてる?
0481nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???1ページ1ページの読み込みがクソ遅い
都度更新が行われるSNSなんでキャッシュは実装していない
ソーシャルボタンも重くしてる要因だと思うけど
それ以外のページでも読み込みがクソ遅い
なぜ?
ページを読み込む際にカウント使ってリアルタイムの値を表示させまくってたりするから?
0482nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???phpMyAdminやphpのアクセス解析をRailsAppと併用して使いたいがためにApache2+Passengerの組み合わせを利用しています。
様々な記事を読んでいるとnginx+Unicornのほうが圧倒的に早いとのことです。
phpMyAdminやphpのアクセス解析を利用しつつ
nginx+Unicornを利用する方法はありますか?
0483nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???スマホサイトでもカンプ作るのは割りと普通だが、CSS3がほぼ対応してるからインブラウザデザインをすることも多い
ただスマホの場合はデザインの自由度が限られてるからlivereloadかけながらゴリゴリやっても問題ないかも
0484nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???cgiは基本的にapacheで処理しつつ、railsだけをnginxのupstreamで処理する
というかphpMyAdminもphpもnginxで動くから、すべてnginxに移行したほうが楽なんじゃないのか
nginxもapache同様ログが残せてWebanalizerも使える
0485nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???カンプってそのまま使えないの?
俺の見解だとただの完成予想図みたいなかんじなんだけど。
実際にそれを利用して、テキスト部分だけを変数的なもので入れ替えるってことはできるの?
0486nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???HTML用に書き出せることはできるけど、あくまで完成予想図だよ
ブラウザでデザインしてると一つの要素をいじると他の要素に影響与えたり、コーディングが複雑になると容易に変更できなくなる
カンプなら自分の考えを短時間で表現できるし、後からの変更に対応しやすい点が特徴
0487nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???やっぱりそうか
何らかの形で直感的にイメージ(レイアウト)を作成して
そこにRailsのコントローラーで吐き出したものをあてていくって出来ないかな?
そうすれば楽なのに
出来ればテンプレートとかあって
PC用、スマホ用のレイアウトとカバーできたらいいのに
0488nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???Railsって元々が遅いもんかな?
メモリ1GBのさくらVPSで色々試しています。
helperの多用とか、リロードごとのcount集計(カウンターキャッシュを使ってない)とかやってるとかなり遅い。
1ページが完全に表示されるまでに3秒くらいかかります。
同時にアクセスしてる人なんてほとんどいないのに。。。。
こんなもんなんですか?
大手とかみたいにサクサクと表示させるには
ページキャッシュの利用が必要ですか?
ログインサイトでTwitterみたいな投稿サイトだとキャッシュはフラグメントキャッシュくらいしか使えないので。。。。
しかもフラグメントキャッシュはあまり効果的じゃないみたいですね
0489nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???https://github.com/swanandp/acts_as_list
みなさん、モデルのレコードの順番を変更するのに、何使ってます?
acts_as_list以外に選択肢ってありますか?
0490nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???自分がさくら1Gプランでやってたときはunicornをアプリケーションサーバにして100ms/reqくらいのパフォーマンスでした
クックパッドはRailsで大量のトラフィックさばいて60ms/req前後出してるからチューニングすればそれくらいになるはずです
まずはapacheのabベンチなり、ブラウザのデベロッパーツールで純粋なリクエスト速度を測定しましょう
おそらく3秒もかかっていることはないでしょう
RDBSを使用しているかと思いますが、保存・更新はオンメモリで動作しないために非常に遅いです
リロードごとに更新処理が入るのならmongoやredisのようなデータベースを使用しましょう
helperなど独自メソッドを使用した場合の遅延は相当に多用しない限り大きくならないはず
実際にループで回した時にどれくらいの遅延になるかをベンチマークして把握しておきましょう
キャッシュはページキャッシュが有効ですが動的サイトには向きません
フラグメントキャッシュがどれだけ有効なのかはキャッシュを無効にした時にビューの読み込みにどれくらい時間がかかっているか、ログを出力すればわかるはずです
余りに時間がかかっている場合はフラグメントキャッシュを導入しましょう
0491nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???事細かい説明ありがとうございます
Railsアプリを立ち上げてるとき
ab -c 100 -n 500 "http://localhost"
を実行すると
Requests per second: 80.54 [#/sec] (mean)
程度
Railsアプリを立ち上げていないときは
1600くらいの結果がでています
なにが重いんでしょうか?
ちなみにユーザーがページ遷移するごとにUserテーブルのとあるカラムを毎回書き換えてます。
あとjQueryを利用していたり
link_toを使っていたり
ソーシャルボタンを多く表示していたり
1ページ内でページを表示するときに同時に20項目くらいカウントをとっています
どれが致命的に思えますか?
0492nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???できれば同時接続一人でリクエストに要する時間を出したほうがいいかもしれません
コードを修正した時にミリ秒単位で算出した方がわかりやすい(といっても好みの問題ですが)
さっきいったようにMySQLなどのRDBSでリロードごとに更新処理を挟むとそれだけでかなりの遅延になるので
redisのようなオンメモリで更新できるベータベースを使用するだけで大幅に時間短縮できます
jQueryやソーシャルボタンはクライアント側で読み込み後の非同期処理なのでアプリケーションのリクエスト速度には影響しません
ただし公式のソーシャルボタンはリクエスト数を非常に増やす要因なので、ボタンは独自に用意して自分でAPIを叩くといったことをすると非同期処理も短縮できるでしょう
0493nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???それともう一点だけ疑わしい点が!
application_controller.rb
の中に10ほどのアクションを記述しています。
しかも、どれも若干複雑な処理です。
これらはいろんなコントローラーから呼び出されるのを想定したため
ここ一カ所で集中管理しています。
もしかしてapplication_controller.rbの中のアクションって
ページごとにその値が必要、不要関係なく、
すべて実行されてしまい重くなっている原因になりえますか?
それとも、そのアクション自体を外部コントローラーから呼び出したときだけ、そのアクションのみが実行されるのでしょうか?←これが私の現在の認識なんですが
0494nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???mini profilerというgemで試しに各ページのリクエストに要する時間を見てみると
こんなかんじです
ページ
�@1771ms
�A1484ms
�B3388ms
�C624ms
�D381ms
�E583ms
�F305ms
�G1080ms
ページごとに大きく差はありますが
普通はどの程度までが許容でしょうか?
0495nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???さすがにいちいちクレクレしすぎw
どの程度が許容出来るかは数値じゃなくて実際の体感によるものだし、チューニングはベンチマークとって一つひとつ検証するしかない
0496nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???甘えちゃって申し訳ないです。
そうなんですね、やはり体感で検証しながら修正かけていくしかないんですね。。。
最後にどうか一つだけ質問させてください。
たとえば、
テーブル(モデル)�@〜�Dの異なる5種類のテーブル
それぞれで10レコード、合計50レコードを表示するとき
それぞれ1レコードづつにつき
5項目(カウント集計だったり、helperだったりを呼び出し)
あったとしたなら
表示するときに重くなって当然なのでしょうか?
それぞれ1レコードにつき40msで返してきても
50レコードあるので2000ms、つまり2秒になり体感だと重いです。
でも、いろんなDBサイトではこういう表示の仕方も普通にしてますよね?
その方式で素早い読み込みを
どうやって実現すればいいか悩んでいます。
0497nobodyさん
2013/07/16(火) NY:AN:NY.ANID:e/3ts/rmさくらインターネットVPSのIOPSが
http://pc.casey.jp/archives/153904156
Amazonクラウド、2テラバイトのSSD、60GBメモリ搭載で12万IOPSを実現するインスタンスを発表 − Publickey
http://www.publickey1.jp/blog/12/amazon2ssd60gb12iops.html
0498nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???http://blog.digital-squad.net/article/149685338.html
http://www.techscore.com/blog/2012/12/25/railsライブラリ紹介-n1問題を検出する「bullet」/
0499nobodyさん
2013/07/16(火) NY:AN:NY.ANID:???横からだけど、1ページ表示させるのに
何十、下手すると100以上のSQLを裏で発行させているのでは。
もしそうなら遅くて当然です。
むしろ今のサーバーは安いVPSでも頑張るなというのが率直な感想です。
0500nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???複数のRailsアプリがあるとして、それらから何らかの統一された認証機構にアクセスして、
ユーザー認証を行いたいのですが、なにか良い方法はないでしょうか?
◆背景
目的毎に複数のRailsアプリを運用する予定があり、それぞれのRailsアプリでDeviceなどで個々に認証するようにしてしまうと、アカウント情報が分散してしまい、統一管理できない。ユーザーにRailsアプリ毎にアカウント情報の登録・管理の負担を与えてしまうことは避けたい。
◆現在考えている方策
VPSでLDAPサーバーを立て、ユーザーアカウントの登録・管理はこのLDAPサーバーで行う。各RailsアプリはこのLDAPサーバーを使って認証を行う。
という感じなのですが、上記以上の良い方法はありますでしょうか?
ちなみに、TwitterやFacebookのアカウントで認証させればいい、という方法は、これらのWebサービスを使っていない人もいるため、避けたいです。
あくまで、自前でアカウント管理を行い、各種Railsアプリがそれを見にいく方法でいきたいと思っています。
0501nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???0502nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???トレードオフのある状況では具体的な選択肢の長所と短所をすべて考慮したうえで決定を行うことが求められる。
0503nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???「ベストプラクティス」というと、「うたがいなく常に最善である」という印象を与える。
大抵まちがった印象である。
どれだけ自信があったら「ベストプラクティス」などという言葉を疑いもなく使えるんだろうか。
私は「こうしなさい」などとは言えない。
今の自分の考えを説明するが、自分でもそれが正しいとは思わない。
ある特定の問題に対処するのに、こういう考え方ができる、というだけにすぎない。
たぶん1ヶ月たったら別の手法に向かってるだろう。
http://tomykaira.hatenablog.com/entry/2013/07/10/222012
0504nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???http://ameblo.jp/archive-redo-blog/entry-10035200905.html
counter_cache
http://wiki.usagee.co.jp/ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active%20Record%20Associations
0505nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???500msかかってるページで100sqlほど
1300msかかってるところで80sqlほど
1500msかかってるページで30sqlほどですね←sqlクエリ少ないのに何故か時間がかかってる
>>496にも書いたように
特定テーブル5種類>それぞれのテーブル特定レコード10個づつ
これをeachで回して
それぞれのレコードをレンダリングで呼び出しています
レンダリングしている内容にcountやら様々な情報が含まれています
それとCanCanのload_and_authorize_resourceを使っているのですが
これが重くなっている理由とかになり得ませんか?
0506nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???マスタテーブルが複数あります。
特定レコードの各項目にはそのマスタテーブルのidで保持させている場合だと
特定レコードを1つ表示させるごとに
その項目の数だけsqlが発行されるのは仕方ないですよね?
たとえば
【対象テーブル】生徒
【マスタテーブル】性別 血液型 都道府県
で生徒を10件表示させようとしたとき
生徒テーブルにはseibetsu_id、ketsuekigata_id、todoufuken_idに数値が格納されているので
生徒1件につき少なくとも3回のsql発行
生徒10件の表示だと30回のsql発行になりますが、これが普通の設計方法じゃないのでしょうか?
どうやらこれが原因で遅くなってそうですね。。。
0507nobodyさん
2013/07/17(水) NY:AN:NY.ANID:???0508nobodyさん
2013/07/17(水) NY:AN:NY.ANID:y2fD7JwWhttp://qiita.com/tachiba@github/items/797ea74e7eeb7f32f886
■ このスレッドは過去ログ倉庫に格納されています