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

【RoR】Ruby on Rails Part18

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2014/01/11(土) 20:04:00.68ID:???
前
http://kohada.2ch.net/test/read.cgi/php/1382097427/
http://unkar.org/r/php/1382097427/

■参考サイト
<英語>
本家: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さん2014/01/11(土) 20:07:19.72ID:???
【ヘロク】 Heroku Part1 【PostgreSQL】
http://toro.2ch.net/test/read.cgi/hosting/1329378677/


■■ 国内クラウド/VPSスレ 8 ■■
http://toro.2ch.net/test/read.cgi/hosting/1378124154/
0003nobodyさん2014/01/12(日) 01:27:24.84ID:q2C1gqcI
debianで、rails -vでバージョン確認すると、2.3.14とでます。
バージョンを上げた方が良いと思うんですけど、どうやれば良いんでしょう?
初心者でわかりません。教えてください。
000432014/01/12(日) 01:50:32.50ID:q2C1gqcI
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
/usr/lib/ruby/vendor_ruby/railties/lib/rails_generator/generators/applications/app/app_generator.rb:7: Use RbConfig instead of obsolete and deprecated Config.
このあとダラダラでて、怒られてるような気がするんですけど、どうすれば良いでしょうか?
初心者だから、教えて欲しいです。
0005nobodyさん2014/01/12(日) 03:44:14.59ID:???
gem install rails --version "~>4.0.2"

gem install バージョンでググレば山のように出てくる
あとエラーメッセージは自力で嫁 その程度の英語が読めないならRubyに限らずプログラミングは困難
000632014/01/12(日) 04:36:25.96ID:q2C1gqcI
う〜ん、日本語で書かれてても理解できなさそう。
>>4の一行目は、iconfは将来的に廃止されるから,String#encodeを代わりに使えって言われても謎。
一応、そのファイルの36行目周辺を見ても、iconfの文字はないし。
>>4の2行目は、ConfigとRbConfigって何ってなってしまう。
0007nobodyさん2014/01/12(日) 11:32:10.72ID:???
>>3
まずはrvmかrbenvを入れて、Rubyのバージョンを上げよう
000832014/01/12(日) 14:59:20.08ID:q2C1gqcI
>>7
ruby -vで確認すると、
rubyのバージョンは、1.9.3p194(2012-4-20)ってでるんですけど、
バージョン低いんですかね?
確かに、2012の4月でちょっと昔そうではあるんですけど
000932014/01/12(日) 15:02:42.21ID:q2C1gqcI
http://inokara.hateblo.jp/entry/2013/03/23/133515
一応、これ見ながら、何も考えずにwgetのとこのコマンド打ちました。
001032014/01/12(日) 15:05:43.22ID:q2C1gqcI
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz
このコマンドうったときって、どっから拾ってきてるんですかね?
言い方を変えると、こういうのって誰が作ってるんですか?ってことが知りたい。
0011nobodyさん2014/01/12(日) 16:00:02.26ID:???
>>9
rvmかrbenvを使いましょう
0012nobodyさん2014/01/12(日) 17:23:14.60ID:???
>>10
http://www.ruby-lang.org
001332014/01/12(日) 18:32:54.67ID:q2C1gqcI
rbenvを使って、なんだかrubyのバージョンは上げられました。
1.9.3-p484です
ですが、またそこから謎です。
0014nobodyさん2014/01/12(日) 19:01:59.35ID:???
>>13
いちいち手取り足取り全部教えてくれというのはきついよ。
金払ってどこかの研修にでも行け。

http://railstutorial.jp/
くらいでも君にはきつそうだ。
0015nobodyさん2014/01/12(日) 20:08:22.31ID:???
教えて君
相手の負担を考えず、自分への奉仕を要求する。

教えて君には回答を与えない。
回答してしまうと、質問者だけでなく他の人まで「この質問の仕方で良い」と思ってしまう。
メンバー全体に迷惑をかけることになる。
http://www.geocities.jp/stardust774/
0016nobodyさん2014/01/12(日) 20:37:51.84ID:???
ここには教えられるレベルの人間は来ていないからな
私みたいに出来るレベルの人間はたまに暇潰しに覗いてツバを吐いて出ていくだけ
文面から分かるけど、教えて君とか何とか言っているのは常連の無能だよ

そんじゃノシ
0017nobodyさん2014/01/12(日) 23:56:36.42ID:???
うそはうそであると見抜ける人でないと(掲示板を使うのは)難しい
http://dic.nicovideo.jp/a/うそはうそであると見抜ける人でないと(掲示板を使うのは)難しい
001832014/01/13(月) 01:19:26.70ID:mgMypIex
色々教えてくれた方、ありがとうございます。
色々やってみましたが、rubyのバージョンを最新版に上げたのに、少し下げたりと、
なんか色々な方法を試して失敗してるみたいな感じです(よくわからない)。
railsはbundleなんとかまで上手くいったのですが、
gitあたりになんか色々詰め込んで、requireで指定するか、消すかで、
よくわからないんで、しばらく諦めようと思います。
とりあえず、linux周りの勉強をもっとして、先輩あたりに聞いてみたいと思います。では。
0019nobodyさん2014/01/13(月) 01:20:33.12ID:???
rspecが全然わからん
どういうときに、何を書けばいいんだ
こういうコード書いてるから、こういうテストスクリプト書くっていう
例を教えてくだちい
0020nobodyさん2014/01/13(月) 02:13:12.40ID:???
>>19
消えろ虫けら
二度と来るな
ここには教えられるレベルの奴は来てない
0021nobodyさん2014/01/13(月) 02:59:16.64ID:???
>>19
rspecで何を書けばいいかはプロジェクトによるとしか言えない
自前のプロジェクトなら自分が気になるとこだけやっておけばいいんじゃなかろうか
0022nobodyさん2014/01/13(月) 10:03:57.18ID:???
>>20
残念でちゅ

>>21
そういうものですか。
単体テストというと、ifでの分岐とか
クラスから生成したら、そいつがちゃんとクラスかとか
そういうの見ればいいのでしょうか

どうにも基準がわからなかったのです
0023nobodyさん2014/01/13(月) 10:56:29.89ID:???
>>22
世の中に基準は色々あれど、採用するかどうかはプロジェクトによる
0024nobodyさん2014/01/13(月) 13:41:15.25ID:???
>>22
simplecovなどと合わせてカバレッジを見るようにしてみると
最低限のテストにはなるんじゃないかな。
0025nobodyさん2014/01/13(月) 19:04:15.78ID:???
>>19
例えばAPIを書いていて下方互換が必要かつ、バージョンアップごとに機能を追加する場合

当然データベース構造やモデルのメソッドやスコープをいじることになるが
その時にいちいちブラウザで全てのバージョンごとに動作確認するのは時間の無駄だし、絶対に漏れがでる

rpsecであらゆるパターンごとの結果を検証していれば適切な動作になるかが一目瞭然だし
失敗している場合もどこをどう修正すればいいのか明確になる

ウェブアプリで下方互換の必要がなくても、モジュール化された部分が変更されると
どこに影響が生じるかは判別しづらいし、その度にブラウザポチポチするのは確実でない

最も大きいのはRailsのバージョンアップで、あらゆる箇所に影響を与えるから
テストを書いていないと事実上バージョンアップに耐えられなくなる
0026nobodyさん2014/01/13(月) 19:32:35.92ID:???
Rails の ActiveRecord モデルテストの書き方ガイドライン - passingloopの日記
http://b.hatena.ne.jp/entry/d.hatena.ne.jp/passingloop/20111125/how_to_write_rails_activerecord_model_tests
0027nobodyさん2014/01/15(水) 04:52:17.94ID:???
【PHP】フレームワーク CakePHP 16ホール目【v2.4】
http://kohada.2ch.net/test/read.cgi/php/1378659370/
0028nobodyさん2014/01/15(水) 21:56:30.82ID:???
def [](hoge)
all[hoge]
end

def all(reload = false)
〜
end

この記述の仕方ってどういうことを挿してるのでしょうか
def [] でググってもあたらなくて。
0029nobodyさん2014/01/15(水) 22:01:21.72ID:XpYxBZdp
obj[hoge] の形で呼び出す [] メソッドの定義だよ
0030nobodyさん2014/01/15(水) 22:10:14.30ID:???
すみません、いまいちイメージがつかめず
objで呼び出すとはどういうことですか

あと ||= の演算子もよくわからず
0031nobodyさん2014/01/15(水) 22:23:39.83ID:???
普通、メソッド呼び出しは

obj.hoge

みたいに呼び出すよね?それに加えて、

obj[huga]

という書き方でobjというオブジェクトの[]というメソッドを呼び出す
ことができるんだ。この[]というメソッドを定義しているのが

def [](hoge)

というわけ。あと、

a ||= b

は

a = a || b

の省略形
0032nobodyさん2014/01/15(水) 22:33:32.63ID:???
>>31
おお、なんとなく判った気がします
丁寧な解説で助かりました
ありがとうございまう
0033nobodyさん2014/01/15(水) 22:50:21.57ID:???
すぐにぐぐらずに〜マニュアルを〜よ〜め〜
0034nobodyさん2014/01/16(木) 00:42:42.08ID:???
age
0035あ2014/01/17(金) 05:18:28.10ID:???
Support for Ruby version 1.9.3 will end on February 23, 2015.
We highly recommend you upgrade to Ruby 2.1 or 2.0.0 as soon as possible.

https://www.ruby-lang.org/en/news/2014/01/10/ruby-1-9-3-will-end-on-2015/
0036nobodyさん2014/01/17(金) 10:55:06.60ID:???
Ruby 1.9.3、サポート終了は2015年2月 | マイナビニュース
http://news.mynavi.jp/news/2014/01/15/060/
0037nobodyさん2014/01/18(土) 03:30:34.27ID:nh9P47yc
あ、localhost:3000に繋がった! やったね!
0038nobodyさん2014/01/18(土) 03:35:27.19ID:nh9P47yc
>>37 = >>3
0039nobodyさん2014/01/19(日) 15:33:19.88ID:???
マカフィー株式会社 | McAfee Blog -高度なマルウェアに関する神話 第1話: 『課題は、高度なマルウェアは検知できないということだ』
http://www.mcafee.com/japan/security/mcafee_labs/blog/content.asp?id=1379

New York Timesの記事によれば、同紙は米Symantecのウイルス対策製品を使っていたが、
Mandiantが調べた結果、攻撃者が使った45種類のカスタム版マルウェアのうち、Symantecの製品で検出できたのは1種類のみだったという。
http://bylines.news.yahoo.co.jp/yamamotoichiro/20130204-00023332/

ソニーPSNの個人情報漏洩に英国で約3500万円の罰金支払い命令、「防げた事件」と判定 - Engadget Japanese
http://japanese.engadget.com/2013/01/24/psn-3500/
0040nobodyさん2014/01/21(火) 09:07:00.73ID:???
日々是横着 - 「サーバ」に対する誤った認識

自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html
0041nobodyさん2014/01/21(火) 09:07:48.71ID:???
ITmedia エンタープライズ:自社サーバがフィッシングサイトに「踏み台化」されたら? (1/3)
また、電源を切ってしまうことも良い対応ではない。
オンメモリ上で稼働しているフィッシングサイトの場合は、電源を切ることによって、すべてのデータが消えてしまい、原因究明や対応に遅れなどが出ることも考えられるからだ。
 事実、フィッシングサイトを構成するツールの中には、後に証拠が残らないよう、すべてがオンメモリ上で動作するものがある。
このような場合、再起動や電源オフによって、メモリ上にあるすべてのプログラムやファイルが消え、事実や原因の確認が困難になる。
http://www.itmedia.co.jp/enterprise/articles/0603/17/news004.html
0042nobodyさん2014/01/22(水) 18:54:34.66ID:???
Node.js + Express
http://kohada.2ch.net/test/read.cgi/php/1357402658/
0043nobodyさん2014/01/25(土) 10:10:12.36ID:KuoCcVFE
Amazon.co.jp: 強いチームはオフィスを捨てる: 37シグナルズが考える「働き方革命」: ジェイソン・フリード, デイヴィッド・ハイネマイヤー・ハンソン, 高橋 璃子: 本
http://www.amazon.co.jp/gp/product/4152094338
0044nobodyさん2014/01/26(日) 10:58:22.87ID:WqthtWoB
a
0045nobodyさん2014/01/26(日) 21:26:03.56ID:WqthtWoB
jQuery-File-Uploadを使っていますが、addでアップロード中のテンプレートを紐づけた後、
アップロード完了後に別のテンプレートを紐づけたいと思っています。
この場合、doneを使えば良いのでしょうか?
かなりマイナーな質問ですが宜しくお願いします。
0046nobodyさん2014/01/26(日) 21:38:54.14ID:???
場違いかもしれないですが、他に適切なスレが無かったので質問させてください。

今までずっとRailsの開発をしていて、今回初めてsinatraの開発をすることになりました。
Ajaxのレスポンスで、Railsではjs.erbのように、変数を埋め込むjs を返せましたが、sinatraでこれを実現する術が見つかりません。
そのためレスポンスはいつも静的なjsやhtmlを返す必要があるため、コントローラ側でインスタンス変数を用意しておいてviewでそれを使う、といったことが出来ません。
これを実現する方法は無いでしょうか。
0047nobodyさん2014/01/26(日) 22:09:25.42ID:???
普通に出来るはずだが

http://ginzanomama.hatenablog.com/entry/2013/04/07/152242
0048nobodyさん2014/01/26(日) 22:31:21.87ID:WqthtWoB
一応解決しましたが、アップロードがループしてるみたいで、何個も重複でされてしまいますw
助けて欲しいですが、もう少し悪戦苦闘してみます。
0049nobodyさん2014/01/26(日) 23:15:38.96ID:WqthtWoB
上級者にはこの説明だけで分かるかと思いますが、
createアクションで何をどう返せば良いのかが分かりません。

使用しているのはdataTypeはscriptです。
0050nobodyさん2014/01/26(日) 23:16:13.53ID:???
久々の煽り教えて君
0051nobodyさん2014/01/26(日) 23:18:38.09ID:???
どう見てもRailsの話じゃない
JavaScriptスレ行け
0052nobodyさん2014/01/26(日) 23:18:43.70ID:???
>>50
久々の無能解答者
0053nobodyさん2014/01/26(日) 23:23:00.46ID:???
>>51
どう見てもrailsの話だろ railscastにももろ載っている分野w
質問者の聞いていることはダイレクトには載っていないから試しにきたのか はたまたただの質問か
>>51のようにrailsとは関わりもないと思う低能ワーカーが多いから面白そうだ
まぁ私は答えられるが君たちの実力でも見物させてもらうことにするお
0054nobodyさん2014/01/26(日) 23:24:16.50ID:???
>>53
JavaScriptの話はJavaScriptスレの方が適切な回答を得られる
0055532014/01/26(日) 23:26:52.59ID:???
>>51 = >>54
分からないnaraごたごた語るなよw
Railscastにも載っている分野と言っているだろうが
しかもjavascriptに限定した問題じゃねえからw
馬鹿丸出しだなw
こんなことも分からずどんな仕事してんの?w
しかもここに何しに来てんの?w
0056nobodyさん2014/01/26(日) 23:29:22.07ID:???
>>55
せっかく適切な場所に誘導してやってるのに、問題を解決したいんじゃないのかい?
(なお君が質問者本人であることはバレバレなので)
0057532014/01/26(日) 23:30:32.44ID:???
>>49
俺は分かったけど ここにいるゴミたちはもう少しヒントがないと分からないと思うぞ
その存在すら知らないで糞サイト作ってるやつばかりだから
javascript絡みと認定する"上級者"の発言見て笑い転げてるんだろ?w
0058nobodyさん2014/01/26(日) 23:57:06.80ID:???
次の方どうぞー
0059nobodyさん2014/01/27(月) 00:04:31.31ID:???
ここは相変わらずだな〜
上級者は荒らしに来て、下級者は自分が答えられる低レベル質問だけに答えて悦に浸る
気持ち悪い輩が多いからしばらく見ていなかったがレベルは低いままだw
0060nobodyさん2014/01/27(月) 00:12:54.68ID:???
>>49
doneのところでreturn data.submit()やってるだろ?多分
それがあるなら消してやってみな
うちの部下も間違えていたからそれじゃないかな?
もし違ったらまたここで言いな
でもここ俺みたいに応えられる人間それほどいないから、ググりまくったり試行錯誤しまくったりの方が実力つくよ
すでにここにいるゴミよりはレベル高いから頑張り奈
0061532014/01/27(月) 00:15:27.44ID:???
>>60
あっ、俺ね
多分これ答えられるの俺だけ
君が試験しているのなら、君と俺だけ
javascriptの問題と思ってるアホがいて辟易としただろ?w
railsCastも読み漁っていないワープアばかりなんだよここは
俺と君除いてね
ほんじゃノシ
0062nobodyさん2014/01/27(月) 00:39:39.10ID:e6GdOtI/
>>61
おおおおおいけましたああああああ!!!!!!!!
試験?いえ、そんなレベルは高くないです^^;
今後ともご指導宜しくお願い致します。
0063nobodyさん2014/01/27(月) 01:04:42.54ID:???
1人で何やってんのw
0064nobodyさん2014/01/27(月) 01:07:45.49ID:???
俺もRuby Railerだが
てめぇらクズのせいで
一括りにクズ扱いされるのはゴメンだ
0065nobodyさん2014/01/27(月) 01:15:52.43ID:???
>>63
気付かないフリしてやれ
0066nobodyさん2014/01/27(月) 01:17:25.06ID:???
答えられなかった低脳が戻って来たね
あっ、俺以外全員かw
プライドだけは高いから自演による罠だとでも思っているようだw
まぁ、君たちは糞サイト作って一生終われば良いよw
0067nobodyさん2014/01/27(月) 01:19:33.45ID:???
こいつらじゃ絶対にクリエイティブなものは生まれない
レベルが低すぎるし、プライドはアンバランスに高すぎる
こんな問題も答えられずにグダグダこのスレに住み着いている
屑どもだ
私は失敬するよ
ゴミ臭さが移る
0068nobodyさん2014/01/27(月) 01:22:00.75ID:???
分かったからさっさと消えろよ
お前つまんね
0069nobodyさん2014/01/27(月) 01:46:53.84ID:???
>>68
心に傷を負ったか?
チェリーボーイさん
0070nobodyさん2014/01/27(月) 02:10:39.34ID:???
本当につまんないね
0071nobodyさん2014/01/27(月) 11:07:08.34ID:???
必要以上に親切にしない。教えて君はエスカレートする。
最初は自分で努力しようと考えている人も、親切にされるとそれを当たり前だと思い、次からはもっと人に頼るようになる。
甘やかすことは、その人から向上心やプライドを奪うことでもある。
http://ja.uncyclopedia.info/wiki/教えて君
0072nobodyさん2014/01/30(木) 00:32:31.65ID:YnHSSLC6
has_manyとhas_oneのデータベース上の違いがわかりません。
両方とも外部テーブルの主キーを外部キーとして持つんですよね?

languages
| id | name |person_id |
|─┼──┼───┤
| 01| PHP |   02  |
| 02| Ruby |    03 |
| 03| Perl |    01 |

persons
| id | name          |
|─┼─────────┤
| 01| Larry Wal        |
| 02| Rasmus Lerdorf     |
| 03| Yukihiro Matsumoto  |

frameworks
| id | name      | language_id |
|─┼──────┼─────┤
| 01| Ruby On Rails |       02 |
| 02| CakePHP    |       01 |
| 03| Catalyst    |       03 |
| 04| Sinatra     |       02 |
| 05|Symfony    |       03 |


この場合、languageはhas_one person、lanaugesはhas_many frameworksとするのが妥当ですが、
これはModel側の記述であり、DB上は特にhas_oneとhas_manyに違いはないですよね?
0073nobodyさん2014/01/30(木) 01:51:06.32ID:???
>>72
has_oneはlimit 1がつく
0074nobodyさん2014/01/30(木) 12:05:51.35ID:SFIRhpo1
Gyazo ブログ: 「Rails+Mongoで日本最大規模」 - Gyazo.comがRuby on Rails+ MongoDBで月間600万ユーザーのサイトを全面再構築。イベントも開催
http://blogjp.gyazo.com/2014/01/gyazo-rails-mongodb.html
0075nobodyさん2014/01/30(木) 19:18:14.28ID:SFIRhpo1
MySQLなんて、1億レコードもあったら、確実に固まります(笑)。
http://ascii.jp/elem/000/000/856/856173/index-3.html
0076nobodyさん2014/01/30(木) 19:58:36.39ID:???
facebookもtwitterもMySQL使って何十億単位で捌いてるけどそれはどうなん?
0077nobodyさん2014/01/30(木) 20:13:27.09ID:???
sharding
0078nobodyさん2014/01/30(木) 21:59:47.52ID:???
MySQLで1億レコード保持するテーブルの横断検索について。 現在2.. - 人力検索はてな
http://q.hatena.ne.jp/1322544557
0079nobodyさん2014/01/30(木) 23:49:22.97ID:???
>>73
ありがとうございます
違いはそれだけですか?
0080nobodyさん2014/01/31(金) 00:36:01.57ID:???
>>79
データベース上はそれだけ
Rails上での扱いやパフォーマンスは異なる
0081nobodyさん2014/01/31(金) 00:58:17.26ID:???
rake test
を実行するとdevelopmentの方のDBが使われちゃうんだけど、これはどこを直せばいいんだろうか?
rake test RAILS_ENV=test
これならうまく動くんだが
0082nobodyさん2014/01/31(金) 01:02:27.14ID:???
>>81
https://github.com/rails/rails/issues/7175
これと関係ある?
0083nobodyさん2014/01/31(金) 01:22:58.47ID:???
>>82
関係有るかな?ちなみにRails4.0.0
ただtest_helper.rbをENV["RAILS_ENV"] = "test"に
直しても同じなんだよなー
0084nobodyさん2014/01/31(金) 08:27:25.38ID:???
>>80
ありがとうございます。
0085nobodyさん2014/02/01(土) 23:47:38.22ID:???
クエリーの結果が

[
 { id: 1, category: "game", title: "foo" },
 { id: 2, category: "game" ,title: "bar" },
 { id: 3 ,category: "anime", title: "baz" },
 { id: 4, category: "manga", title: "hoge" },
 { id: 5, category: "manga", title: "fuga" }
]

というハッシュの配列なのですが、扱いにくいので

{
 "game": [ { id: 1, title: "foo" }, { id: 2, title: "bar" } ],
 "anime": [ { id: 3, title: "baz" } ],
 "manga": [ { id: 4, title: "hoge" }, { id: 5, title: "fuga" } ]
}

という形式にしたいのです。
ActiveRecord側でやるとしたら、

{ "game": Table.where(:category=>"game").pluck(:title),
"anime": Table.where(:category=>"anime").pluck(:title),
"manga": Table.where(:category=>"manga").pluck(:title) }

ですが、リモートDBに3回もアクセスしてしまうのがネックです。


Ruby側でflatternの反対みたいなことしたいのですが、無理なのでしょうか?
0086852014/02/01(土) 23:53:35.89ID:3TbUHFmS
Enumerable#group_byがありました
0087nobodyさん2014/02/02(日) 00:03:08.70ID:???
お、おう
0088nobodyさん2014/02/02(日) 04:27:31.92ID:PCf1V6FE
(1..6).group_by {|i| i%3} #=> {0=>[3, 6], 1=>[1, 4], 2=>[2, 5]}
0089nobodyさん2014/02/04(火) 20:24:52.19ID:6aYeGabM
Quantcast - Top Ranking International Websites
https://www.quantcast.com/top-sites
0090nobodyさん2014/02/04(火) 23:50:47.19ID:gU4r7kTu
ブログ記事があって、そのブログ記事に貼り付けるタグ(複数)も同時に編集できる画面があります。


そのタグは、既存のタグを@tags = Tag.where(:article_id=>@article.id)とかで持ってくるのですが、
その既存タグたちを編集するときの仕様が困っています。

@tags.each do |tag|
form_for tag

とかやってしまうとタグの数だけformが作られてしまいます。

form_tag
@tag_each do |tag|

とすればいいのですが、formよりもjQueryでエンドポイントにそのままputするほうがスマートでしょうか?


Railsでどういう作り方が推奨されてるのでしょうか。
0091nobodyさん2014/02/05(水) 00:22:36.80ID:???
>>90
has_many through と fields_for あたりでググればなんか出てくるよ
0092nobodyさん2014/02/05(水) 23:58:56.05ID:CUveIPVW
>>91
has_many :throughは中間テーブルがあるとき限定っぽいです
0093nobodyさん2014/02/06(木) 00:08:00.85ID:na+0nu86
めずらしいな。

>>90 の実装だと同じ字面のタグが複数できちゃうから、taggings みたいな
中間テーブル作って has_many trhough が常套手段だけど。

それはともかく、本体は fields_for なのでそっちも調べてよ。
0094nobodyさん2014/02/06(木) 03:18:59.78ID:???
今日から勉強し始めた正直なんか複雑で難しい
0095nobodyさん2014/02/06(木) 04:51:06.58ID:???
2,3年フルタイムで使ってるけど未だに使いこなせないし
どんどんRails自体の機能やライブラリが新しくなって2,3年前の記事が参考にならないくらいだから
初めは取っ付きづらくて当たり前だと思う

むしろ下手に習熟してアプリケーションが肥大化するとバージョンアップにとてつもなく苦労する
0096nobodyさん2014/02/06(木) 07:08:23.67ID:???
実務でRails使えるなんて幸せだね
0097nobodyさん2014/02/06(木) 11:24:18.66ID:???
>>96
何使ってるの?
0098nobodyさん2014/02/06(木) 17:48:33.77ID:???
>>97
「最大公約数的な考え方をするとPHPしかない(キリッ」って言われて
どうしてもPHPなんだよね。
実務レベルでRails使えるエンジニアなんて求人出しても応募してこないでしょ。
0099nobodyさん2014/02/07(金) 01:08:55.49ID:???
新規事業だとRailsの方が多いんだけどね
受託系だとどうしてもPHPしか選択肢がない
0100nobodyさん2014/02/07(金) 11:57:43.26ID:???
>>99
そうなの?そんな感覚受けないけどな。
0101nobodyさん2014/02/07(金) 12:42:29.67ID:???
実際開発に使ってるところはIDEとか開発環境何でやってんだろ
0102nobodyさん2014/02/07(金) 13:46:29.73ID:???
netbeansのrailsプラグインはなぜか
railsプロジェクトだと自動scpアップロード機能が使えなくてがっかりした。
0103nobodyさん2014/02/07(金) 15:37:10.32ID:???
最初二つはIDEじゃないけどVim、Sublime、intelliJ(RubyMine)じゃないんかな
0104nobodyさん2014/02/07(金) 18:06:36.60ID:???
Vimとかでがっつり開発してるのかな
sshでWinからやんのかね
なんかWeb開発ってGUIじゃないと捗らなそう
0105nobodyさん2014/02/07(金) 19:18:08.86ID:???
Vimは普通にGUIのあるし、プラグインも腐るほどあるぞ
0106nobodyさん2014/02/07(金) 19:46:01.66ID:???
RubyはIDEの性能がいまいちだからな

そのせいで会社がRailsに移行してくれん
JavaとPHPから抜け出せん
0107nobodyさん2014/02/07(金) 21:41:23.68ID:VfrloKNC
なんでvim使う程度でsshが出てくるかと思えば窓か。
0108nobodyさん2014/02/07(金) 21:54:24.56ID:???
Linux上で直接開発すんのか?
0109nobodyさん2014/02/07(金) 22:17:23.69ID:???
仮想環境にSSHするのが普通だわな。林檎だけどな
0110nobodyさん2014/02/07(金) 22:43:48.93ID:???
いや普通にMacで開発しろよw
0111nobodyさん2014/02/07(金) 23:16:17.12ID:???
Rails始めたいと思うんだがとりあえず本の通りにショッピングサイトみたいの作った方が良いですかね
ちょっと舐めてたのもあるけど一通りやらないと自分で自由に出来ない予感がする
0112nobodyさん2014/02/07(金) 23:22:44.92ID:???
実務でrailsやってるけど
macbook airでvimだな
最近はこれぐらいライトな開発環境が多いと思う。
javaとかcとか俺には絶対無理だし
0113nobodyさん2014/02/08(土) 00:25:55.91ID:???
>>111
もちろんその度にググレば場当たり的に対応できるけど、
ライブラリも交えて自由にショッピングサイト作れるようになるまでフルタイムで1年くらいかかるぞ

そもそもRails自体一人で扱うには範囲が広すぎて、新機能・ライブラリとのいたちごっこみたいにになる
0114nobodyさん2014/02/08(土) 00:32:08.64ID:???
前まではmacで開発してたけど
今は知り合いも会社もvagrant

会社ではvagrantで開発環境作るのがルールになってる
依存で悩む経験するとmacじゃ開発できなくなってくる
0115nobodyさん2014/02/08(土) 00:39:06.62ID:???
rails案件ばかりだとエンジニアとしては本当に馬鹿になるよな
0116nobodyさん2014/02/08(土) 00:52:14.76ID:???
何を求められてるかによるでしょ

ライブラリをカスタマイズしたりと自分で何かを生み出す能力は身につかないけど
既存ライブラリとRailsの特性を活かしてレールに乗れた時の生産性は非常に高い

前者を求める企業には適合しないけど、少ないリソースでいくらかの成果を求める分には適合する
0117nobodyさん2014/02/08(土) 00:59:50.35ID:???
Rails力という独特な能力ですな
0118nobodyさん2014/02/08(土) 01:15:20.16ID:???
Railsを書くのにRubyを知らなくてもいいなんて
Matzの対談で出るぐらいのことだからな

驚きですよ
0119nobodyさん2014/02/08(土) 13:20:37.97ID:NPzdtZy4
Ruby on Railsの求人・仕事を探すなら【クラウドワークス】
ttp://crowdworks.jp/public/job_skills/33
0120nobodyさん2014/02/08(土) 14:43:57.63ID:???
Rails得意そうな会社ってクックパッドとドリコムくらいしか思いつかない。
0121nobodyさん2014/02/08(土) 15:13:19.89ID:???
クックパッドはRailsじゃなくてサーバでしょ。
アプリケーションエンジニアは平凡な人たちだよ。言葉悪いけど。

できたてのWEBサービス系ベンチャーのRails率は半端ないよ。
0122nobodyさん2014/02/08(土) 15:45:41.97ID:NPzdtZy4
Rubyエンジニアのブラックホール
http://engineer.typemag.jp/article/forkwellxcookpad
0123nobodyさん2014/02/08(土) 15:49:44.16ID:???
twitterがRailsのまんまだったら代表的な例として挙げられたのに
クックパッドだといまいちインパクトに欠ける気がする
0124nobodyさん2014/02/08(土) 16:00:28.97ID:???
え?twitterってフロントもscalaにしたの?
0125nobodyさん2014/02/08(土) 16:02:44.89ID:???
>>123
アメリカで新興だけど1000万人規模のサービスとか結構Railsで作られてるよ
>>121の通り、世界的にベンチャーのRails採用率は異常に高い
0126nobodyさん2014/02/08(土) 16:03:57.73ID:???
>>124
あ、ごめん
詳しいことは全然知らん
0127nobodyさん2014/02/08(土) 16:07:59.45ID:???
フロントとバックエンドの分離ってデータベースの整合性どうしてるんだろう
ストアドプロシージャをメインで使うのかね
0128nobodyさん2014/02/08(土) 16:18:27.50ID:???
俺の知らない用語を使うなカス
0129nobodyさん2014/02/08(土) 23:34:09.50ID:???
>>93
ありがとうございました
fields_forでやっと出来ました
buildとか必要だったことがなかなか分かりませんでした


次はhas_many throughでテーブルから組みなおします
0130nobodyさん2014/02/09(日) 00:04:41.99ID:???
fields_for使わないほうがいいよ。そういうのをフレームワークに任せると細かい挙動が予測できないでしょ。
0131nobodyさん2014/02/09(日) 01:34:01.29ID:???
fields_for使わないで何をつかうというんだw
0132nobodyさん2014/02/09(日) 02:22:01.84ID:???
自前だよ。params二つ受け取って自分で親子関係設定すればいいだけ。
0133nobodyさん2014/02/09(日) 03:10:12.90ID:???
バカは放置
0134nobodyさん2014/02/10(月) 08:17:25.78ID:J/5zHJ5d
Egor Homakov: Paperclip vulnerability leading to XSS or RCE.
http://homakov.blogspot.com/2014/02/paperclip-vulnerability-leading-to-xss.html
0135nobodyさん2014/02/10(月) 08:18:28.09ID:J/5zHJ5d
RoR Paperclip infested by content type spoofing bug &#8226; The Register
http://www.theregister.co.uk/2014/02/09/content_type_spoofing_bug_in_ror_paperclip/
0136nobodyさん2014/02/10(月) 12:40:24.77ID:???
>>124
フロントScala
バックJava

RailsはRubyと一緒に捨てた
0137nobodyさん2014/02/10(月) 15:11:01.57ID:???
>>136
ソースはどこ?
0138nobodyさん2014/02/10(月) 19:42:03.77ID:???
TwitterってPHPエンジニアの募集してるんな
どこで使ってるんだろう
0139nobodyさん2014/02/10(月) 20:26:03.63ID:???
特定のコントローラーの特定のアクションだけ:layout=>falseにしたいのですが
before_filter exceptみたいな感じで指定することはできないのでしょうか

どうしてもrenderの直前にならざるをえないのでしょうか
0140nobodyさん2014/02/10(月) 22:14:36.36ID:???
>>139
http://api.rubyonrails.org/classes/AbstractController/Layouts/ClassMethods.html#method-i-layout
0141nobodyさん2014/02/10(月) 23:48:40.06ID:???
>>140
すいません
クラスメソッドだと条件文が使えないのでフィルター(インスタンスメソッド)で使いたいのですが
方法はないのでしょうか
0142nobodyさん2014/02/11(火) 00:01:14.27ID:???
>>138
apiをphpで使うことを想定してテストとかやらすんや
0143nobodyさん2014/02/11(火) 02:01:21.34ID:oikpYNJm
>>141

> Symbol
> call the method specified by the symbol, which will return the template name

これ、コントローラのインスタンスメソッドなんだよね。
0144nobodyさん2014/02/11(火) 02:25:45.15ID:iwHGH8gS
Skinny Framework: Scala on Rails : scala
http://www.reddit.com/r/scala/comments/1xg3oa/skinny_framework_scala_on_rails/

http://skinny-framework.org/
0145nobodyさん2014/02/12(水) 02:41:27.20ID:???
本の通りにやってるつもりだがうまくいかねぇな
学習コスト高いわ
0146nobodyさん2014/02/12(水) 04:13:31.94ID:???
# myapp.rb
require 'sinatra'
get '/' do
'Hello world!'
end

gemをインストールして動かしてみる。
gem install sinatra
ruby myapp.rb

localhost:4567 を見る。
http://www.sinatrarb.com/intro-jp.html
0147nobodyさん2014/02/12(水) 13:55:38.32ID:???
>>145
むしろ学習コスト高く無いとどこで思ったんだ?
0148nobodyさん2014/02/13(木) 06:40:07.00ID:???
Rails Hub情報局: 素人がWebサービスを作ってみて分かった9つのこと
手元で書いて動くコードは1分でできるのに、
例外処理をして9割の完成度に上げるのには、とてつもなく時間がかかる場合がある
http://el.jibun.atmarkit.co.jp/rails/2011/09/web9-1e8b.html

スタートアップ企業で8年間Webの開発をしてみての反省点いろいろ - Masatomo Nakano Blog
6. サーバ周りの人材をしっかり確保しよう
http://b.hatena.ne.jp/entry/blog.madoro.org/mn/84

Ruby on Rails が簡単というのはウソ - #生存戦略 、それは - subtech
http://subtech.g.hatena.ne.jp/secondlife/20120309/1331279496

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp
http://b.hatena.ne.jp/entry/blog.sumyapp.com/2013/07/no-recommend-rails/
0149nobodyさん2014/02/13(木) 06:41:23.89ID:???
自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html

運用中のApache Webサーバの大半にセキュリティ脆弱性 | マイナビニュース
http://news.mynavi.jp/news/2014/02/11/038/
0150nobodyさん2014/02/14(金) 12:01:08.20ID:???
400GbpsのDDoS攻撃発生、「NTP増幅」で過去最大規模に - ITmedia エンタープライズ
http://www.itmedia.co.jp/enterprise/articles/1402/13/news043.html

ntpd の monlist 機能を使った DDoS 攻撃に関する注意喚起
http://www.jpcert.or.jp/at/2014/at140001.html
0151nobodyさん2014/02/15(土) 01:45:41.24ID:???
>>125
huluに続くと言われてる
sidereelもRailsだよ

日本はどうしてRails需要がこんなにもないのか?
0152nobodyさん2014/02/15(土) 02:00:18.58ID:???
>>151
Rubyが日本発だから勘違いしてる人もいるかもしれないが、Railsは英語が使えない人は
お断りレベルで英語情報中心だからだと思われる
0153nobodyさん2014/02/15(土) 09:53:45.58ID:???
Railsのセキュリティ面が英語の情報に偏りすぎてて
日本で小規模で始めるには情報が足りなさ過ぎることだろうな
0154nobodyさん2014/02/15(土) 10:54:35.90ID:???
Rails Guideや和書で勉強した程度のRailsエンジニアに自社サービスを作ってほしくないもんな
パフォーマンスとか何も考えずに作るし
0155nobodyさん2014/02/15(土) 11:02:51.85ID:???
Ruby on Railsのパフォーマンス向上に関する10のtips
http://blog.tkmr.org/tatsuya/show/268-ruby-on-rails-10-tips
findメソッドはパワフルだけど基本SELECT * FROMなので場合によっては:selectで必要なカラムだけ読み込む、また:limitや:offsetを活用する

ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071114
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし

:selectで取得するカラムを絞ったらパフォーマンスが倍に
http://brass.to/blog/active_record_select_option.html
レコード件数は110万件くらい
カラム数は30程度
インデックスは効いている(explainで確認済み)

Rails で MySQL を使うときの注意点 | METAREAL
http://www.metareal.org/2007/07/24/notes-on-rubyonrails-with-mysql/
SQL を二段階に分けるといい
まず、最初の SQL でレコードの ID だけを SELECT する(int だけなので、このときの一時テーブルはメモリ上に作られる)
次に、その ID で必要な TEXT や BLOB を SELECT するんだ(これは ID による単純な検索なので一時テーブルは使われない)

MySQLパフォーマンスチューニングのためのインデックスの基礎知識
http://d.hatena.ne.jp/kiyo560808/20101117/1289952549
0156nobodyさん2014/02/15(土) 16:41:03.81ID:???
Railsに限らずウェブ系の仕事で飯食うのに英語読めないのはさすがに致命的
0157nobodyさん2014/02/15(土) 16:44:08.36ID:???
そうか?JavaやPHPは日本語の資料がそろっててすごいと思うよ
0158nobodyさん2014/02/15(土) 16:59:29.59ID:???
まぁ進歩の早いWEB系で英語力が重要なのは確か。
海外留学して英語がネイティブな人と仕事したことあるけどどう頑張っても勝てそうに無いと思った
0159nobodyさん2014/02/15(土) 17:42:49.20ID:???
これまで2ch連中と同じくグローバル化www状態だったのが
ウェブ系の仕事に就いたらまさに英語力が命だったでござるの巻
0160nobodyさん2014/02/19(水) 10:20:17.36ID:ELco+zCc
Riding Rails: Rails 3.2.17, 4.0.3 and 4.1.0.beta2 have been released!
http://weblog.rubyonrails.org/2014/2/18/Rails_3_2_17_4_0_3_and_4_1_0_beta2_have_been_released/
0161nobodyさん2014/02/20(木) 01:42:55.72ID:???
http://hoge.com/:paramってなっていて、ルートの直下に割とどんなパラメーターも受け付けるサイトなんですが、
管理画面でモデルを管理するとき、http://hoge.com/admin/モデル名にしようと思っています。

このモデル自体はアプリケーション全体から参照されているんですけど、
ルートにこういう記述をしたら
namespace :admin do
resources :model
end

コントローラーだけでなくmodelも参照するときは常にAdmin::Modelって感じに参照しないとダメだって怒られました。
でもそれは煩雑なのですが・・・どうすればいいんですかね?
0162nobodyさん2014/02/20(木) 07:04:05.02ID:???
scope '/admin' do
resources :model
end
0163nobodyさん2014/02/20(木) 10:26:12.50ID:ATjg5jOf
cakephp と ruby on railsの比較 - 田舎の技術者が奮闘中
http://piko.hateblo.jp/entry/2013/10/09/111746
0164nobodyさん2014/02/20(木) 13:10:05.02ID:???
>>163
>結局のところクルマを運転する上で、中身なんぞ知らなくてもいいだろ?使う奴は運転する技術だけ習得してこいって考え方がrailsだと思います。

土方向きだけのことはあるな
0165nobodyさん2014/02/20(木) 23:12:58.86ID:???
>>162
ありがとうございます
0166nobodyさん2014/02/23(日) 14:40:29.71ID:iS1220ph
class_eval()について訳がわからなくなってきた。

my_class = MyClass.new

my_class.class_eval do
 def m1; 'hello!'; end
 def self.m2; 'hello!'; end
end

上記の場合、カレントクラスのMyClassにm1というインスタンスメソッドが追加されて、
カレントクラスのMyClassの特異クラスにm2という特異メソッドが追加されるとう理解でいいですか?
01671662014/02/23(日) 15:12:35.43ID:iS1220ph
>>166のことは忘れて下さい。
0168nobodyさん2014/02/25(火) 23:28:09.96ID:???
ドメインモデルではない情報で、管理者設定画面などで管理できるものを扱う際は
データベースは作らず、読み書きできるYAMLを作るのが普通ですか?
0169nobodyさん2014/02/26(水) 00:46:37.59ID:???
管理者設定画面で設定できるものはDBに突っ込むべきだと思う
configみたいなテーブルでも作って。
0170nobodyさん2014/02/26(水) 02:08:48.86ID:???
wordpressだと汎用テーブル作ってとりあえずぶち込んでるな
0171nobodyさん2014/02/26(水) 21:18:20.42ID:kpHlwgHZ
はてなブックマーク - Ruby on Rails on MySQL チューニング入門
http://b.hatena.ne.jp/entry/www.slideshare.net/eccyan/ruby-on-rails-on-mysql
0172nobodyさん2014/02/27(木) 00:32:44.15ID:???
自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html

運用中のApache Webサーバの大半にセキュリティ脆弱性 | マイナビニュース
http://news.mynavi.jp/news/2014/02/11/038/

VPSに来た攻撃観察記
http://www.slideshare.net/ozuma5119/vps-26061504

VPSに来る悪い人を観察して通報してインターネットを少し良くする
http://www.slideshare.net/ozuma5119/vps-tuho
01731682014/02/27(木) 00:58:46.01ID:???
ありがとうございます
でもConfigモデルを作るとしてキーバリュー式だとform_forとかと相性悪いんですよね・・・
かといって1行しかあり得ないレコード作るのってどうなんでしょうか

Railsでなければ 本番 開発用 テスト用って感じで3レコードは作るのですが
0174nobodyさん2014/02/27(木) 05:29:33.48ID:???
ああ・・・次はMongoidだ
0175nobodyさん2014/02/28(金) 21:18:49.55ID:Sd8nPPeF
顧客からの要望で、異なるモデル(つながりは全くない)を一つのフォームで更新してほしいとのことなんですが、
この場合、Postするコントローラーはどこにすべきなんでしょうか?

resources: foo
resources: bar

とあって、foos#updateとbars#updaterがあるのですが
この場合、foosbars_controllerに#updateを作るべきなのでしょうか?
0176nobodyさん2014/02/28(金) 21:37:18.82ID:???
>>175
> この場合、foosbars_controllerに#updateを作るべきなのでしょうか?
色々考え方はあるけど、これが一番素直じゃないかな
0177nobodyさん2014/02/28(金) 22:09:35.94ID:???
【ruby】ActiveModelを使ってDBと関係ないFormを作成する【Rails】 - tanihiro.log
http://tanihiro.hatenablog.com/entry/2014/01/09/193720
0178nobodyさん2014/02/28(金) 22:17:40.49ID:???
自分はリソースという切り分けから、
レイヤーがもうちょい上になる業務よりのレイヤーで切り分ける感じにするかな
businessA_controller#updateみたいな感じで。
色んなリソース持ってるユーザーのマイページをmypage_controllerであれこれ処理したりしてる
0179nobodyさん2014/03/01(土) 16:53:35.83ID:kyl0LBj5
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
http://toro.2ch.net/test/read.cgi/tech/1393660194/2
0180nobodyさん2014/03/01(土) 22:23:30.44ID:???
>>176
>>178
ありがとうございました。
参考にします

>>177
ありがとうございました。
Rails4限定なんですね
0181nobodyさん2014/03/02(日) 16:04:33.91ID:???
Rails4で、あるモデルの関連オブジェクトの数のテストが何回やっても通らないと悩んでいたのですが

調べてみたところshop.itemsは実際は3レコードあるのに、
shop.items.count => 1
shop.items.size => 3

このようにcountだと1が返ってました。
どういうことなんでしょう・・・
01821812014/03/02(日) 16:09:38.67ID:???
さらにこんな不思議な現象が

puts shop.items.map(&:name)
=>
item1
item2
item3

puts shop.items.pluck(:name)
=>
item3
0183nobodyさん2014/03/02(日) 19:09:13.57ID:???
Rails3で
AbstractController::ActionNotFoundを表示しない方法ってありませんか?
存在しないアクション叩かれてエラーログが大量になるので困ってます
0184あ2014/03/02(日) 19:42:02.77ID:???
counter_cache
0185nobodyさん2014/03/02(日) 19:43:53.19ID:???
config.log_tags site:stackoverflow.com
0186nobodyさん2014/03/02(日) 21:06:18.23ID:f/Pqujp3
Imagesテーブルがあって、モデルが2つ画像を持っており、片方はimage_idというカラム名ですが
もうひとつはbackup_image_idというカラム名です。

@model.backup_imageとプロパティにアクセスしたときに、自動的にImageテーブルにクエリー走らせることはできないのでしょうか?
0187nobodyさん2014/03/02(日) 21:12:10.87ID:???
belongs_to :backup_image, class_name: 'Image'
0188nobodyさん2014/03/03(月) 00:15:09.71ID:???
count、size、lengthの違い - うんたらかんたらRuby - Rubyist
http://rubyist.g.hatena.ne.jp/rochefort/20090802/p1
0189nobodyさん2014/03/03(月) 00:42:54.12ID:eHHADPWD
>>187 ありがとうございます
0190nobodyさん2014/03/03(月) 01:01:41.74ID:???
一つのVPS鯖の中でマルチドメイン作って
複数のRailsアプリ(複数ドメイン)を走らせてる猛者はいる?

Railsアプリ1つにつきVPSを1つ契約するのが勿体なく感じてきた
0191nobodyさん2014/03/03(月) 01:03:32.20ID:???
別に猛者でもなんでもないと思うが…
0192nobodyさん2014/03/03(月) 11:32:43.29ID:???
結局Railsアプリのプロセスがどれだけメモリを食うかの問題じゃね
0193nobodyさん2014/03/03(月) 12:05:52.25ID:tPpkCX6/
マカフィー株式会社 | McAfee Blog -高度なマルウェアに関する神話 第1話: 『課題は、高度なマルウェアは検知できないということだ』
http://www.mcafee.com/japan/security/mcafee_labs/blog/content.asp?id=1379

New York Timesの記事によれば、同紙は米Symantecのウイルス対策製品を使っていたが、
Mandiantが調べた結果、攻撃者が使った45種類のカスタム版マルウェアのうち、Symantecの製品で検出できたのは1種類のみだったという。
http://bylines.news.yahoo.co.jp/yamamotoichiro/20130204-00023332/

ソニーPSNの個人情報漏洩に英国で約3500万円の罰金支払い命令、「防げた事件」と判定 - Engadget Japanese
http://japanese.engadget.com/2013/01/24/psn-3500/

Adobeにサイバー攻撃、顧客情報290万人分抜き取り、製品のソースコードも -INTERNET Watch
http://internet.watch.impress.co.jp/docs/news/20131004_618168.html
0194nobodyさん2014/03/03(月) 12:07:24.76ID:???
日々是横着 - 「サーバ」に対する誤った認識

自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html
0195nobodyさん2014/03/03(月) 12:43:05.49ID:???
なんで複数ドメインの話でまたこのコピペなんだよw
0196nobodyさん2014/03/04(火) 00:14:26.81ID:???
ただの宣伝でしょ
リンク踏んだらアフィリ貼りまくってるぺーじだったし
0197nobodyさん2014/03/04(火) 02:27:29.26ID:???
Rails4.0.1でclockworkを使い、
定期的にでっかいサイズのCSVファイルを作成してFTPサーバーにアップする処理をしています。
しかしこの処理が何回か実行されるといつもメモリオーバーのエラーになってしまいます。
どうやら一回のバッチのたびにメモリ使用量が20%ぐらい上がり、処理が終わっても下がらず
それが積み重なっていつか溢れてしまう、という現象のようです。
しかしどこが悪いのか分かりません。アドバイスいただけないでしょうか。

具体的には以下のような流れです。

csv = CSV.generate do |csv|
# 巨大なCSVを書き込む処理
end

ftp = Net::FTP.open('test-server.com', 'id', 'pass')
f = Tempfile.new('myfile.csv')
f.write(csv)
ftp.put(f.path, 'myfile.csv')
f.close
ftp.close

このバッチをclockworkで定期的に走らせています。
何かのリソースが解放されないままになっているのでしょうか?
0198nobodyさん2014/03/04(火) 02:31:49.04ID:???
↑ちなみにメモリ使用量はtopコマンドで確認しています。

バッチが2回ほど回ったときにtopコマンドを叩くと
メモリ使用量が40%ぐらいになってます。
ここでclockworkを再起動すると、また0%近くまで戻ります。
0199nobodyさん2014/03/04(火) 08:20:37.89ID:???
GC.start
0200nobodyさん2014/03/04(火) 21:56:50.40ID:???
>>199
ありがとうございます。
タスクの終わりにGC.startを入れてみましたが、メモリ使用量は下がらなかったです。
とりあえず1時間ごとぐらいに再起動することで乗り切りることにします。
低レイヤのこと分かってないとこういうのが辛いなあ
0201nobodyさん2014/03/04(火) 22:25:57.36ID:???
とりあえず巨大なCSVをオンメモリで作るのやめたら?
02021972014/03/04(火) 23:07:49.36ID:???
>>201
意味するところがちょっと分からないです><
途中でTempfileを使っているのがオンメモリということでしょうか?
Fileクラスを使うということですか?この場合もFileオブジェクトを作るから同じですよね。
見当違いのことを言っていたらすいません。
0203nobodyさん2014/03/04(火) 23:16:13.55ID:???
最初の csv = のとこだよ
02041972014/03/04(火) 23:43:42.65ID:???
CSV.generateを使わないということですか?
csvを作る処理は違うプロセスでやって
clockworkでは作成済みのCSVファイルをftpにアップするだけ、という流れでしょうか
0205nobodyさん2014/03/04(火) 23:56:04.97ID:???
最初の csv = で巨大な CSV 文字列を作ってるってことだろ?
それじゃメモリに巨大な文字列がのっかってるってことじゃん

じゃなくて、1行ずつファイルに書き込めって話

CSV.open は IO を引数に取れるから、詳しくはマニュアルを読め
0206nobodyさん2014/03/05(水) 00:05:46.31ID:???
> CSV.open は IO を引数に取れるから、詳しくはマニュアルを読め
間違えた。CSV.new な
0207nobodyさん2014/03/05(水) 00:08:04.53ID:???
>>206
わかりづらいです
もっと詳しく教えてくださいよ
02081972014/03/05(水) 00:26:50.66ID:???
丁寧にありがとうございます!実践してみます。
0209nobodyさん2014/03/05(水) 01:28:25.87ID:???
巨大なString作ったらもう終わりってこと?
メモリ解放する術は無いの?nil入れても無駄だし。GC.startってそもそもちゃんと働くのかね
0210nobodyさん2014/03/05(水) 02:02:07.37ID:???
>>209
プロセスは一度確保したメモリは解放しないことが多いよ
これはRubyレベルの問題ではなく、OSレベルの問題

それ以前の問題として、巨大な文字列を作らずに済む方法があるんだから
まずはそれを試したらどうだい?
0211nobodyさん2014/03/05(水) 02:05:30.78ID:???
プログラミングって動くものは誰でも作れるけどパフォーマンスで差が付くよな
0212nobodyさん2014/03/05(水) 03:13:39.75ID:???
巨大って言ってるけど本当にメモリ食いつぶすほどでかいのかね
0213nobodyさん2014/03/05(水) 07:19:15.16ID:???
Rails Hub情報局: 素人がWebサービスを作ってみて分かった9つのこと
手元で書いて動くコードは1分でできるのに、
例外処理をして9割の完成度に上げるのには、とてつもなく時間がかかる場合がある
http://el.jibun.atmarkit.co.jp/rails/2011/09/web9-1e8b.html

スタートアップ企業で8年間Webの開発をしてみての反省点いろいろ - Masatomo Nakano Blog
6. サーバ周りの人材をしっかり確保しよう
http://b.hatena.ne.jp/entry/blog.madoro.org/mn/84

Ruby on Rails が簡単というのはウソ - #生存戦略 、それは - subtech
http://subtech.g.hatena.ne.jp/secondlife/20120309/1331279496

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp
http://b.hatena.ne.jp/entry/blog.sumyapp.com/2013/07/no-recommend-rails/
0214nobodyさん2014/03/05(水) 11:34:41.73ID:???
>>210
普通は他のプロセスが利用しようとしたら手放すよ
RubyはGCに問題が多々あるといわれるから、そこじゃねか
0215nobodyさん2014/03/05(水) 23:11:59.25ID:???
というかプロセスがメモリ解放できなかったら常駐プログラムとかどうするんだ?
C言語のfree()とかってOSレベルではメモリ解放してるわけじゃないのかな
0216nobodyさん2014/03/05(水) 23:41:07.71ID:???
何にせよ常駐プログラムで巨大メモリを使うのはよろしくないね
巨大メモリを使わないようにするか、fork するなどして別プロセスで動かすようにするかのどっちか
0217nobodyさん2014/03/05(水) 23:44:19.51ID:???
いや巨大どうこうじゃなくて、メモリ解放できないならどんなにチビチビ使っててもいつかメモリが破綻するじゃん
常駐の体を成してないよねそれ
0218nobodyさん2014/03/05(水) 23:45:29.65ID:???
スレッドタイプのWEBサーバーなんかはどうやってメモリ管理してるんだろうな
すげー興味でてきた
0219nobodyさん2014/03/05(水) 23:47:43.77ID:???
>>217
使わなくなったメモリを再利用すれば多くの場合は問題ない
巨大な文字列などは連続した領域が必要なので再利用できない場合がある
チビチビ使う方が再利用しやすい
0220nobodyさん2014/03/05(水) 23:51:55.94ID:???
ほ〜勉強になるなぁ
フラグメンテーションとかそういう話だっけw
文系出身な俺には重いな
0221nobodyさん2014/03/05(水) 23:55:29.43ID:???
>>220
そうそう
RubyのGCはメモリコンパクション(デフラグメンテーション)をやらないので、今回ような使い方をすれば問題になる可能性がある
0222nobodyさん2014/03/06(木) 01:11:41.99ID:???
おお!やっぱそのことですね。RHG読んだ時に見た覚えがあるなぁ
Rubyが採用してるGCのスタイルがコンパクションと相性悪いとか何とか
0223nobodyさん2014/03/06(木) 10:57:14.72ID:???
やっぱRubyの弱点はGCだな
0224nobodyさん2014/03/06(木) 15:47:34.23ID:???
GCってGameCube? 何いってんの
0225nobodyさん2014/03/08(土) 01:09:20.34ID:???
高度なマルウエアは防げない、「アフターテクノロジー」が重要:ITpro
http://itpro.nikkeibp.co.jp/article/Interview/20131022/512834/

マカフィー株式会社 | McAfee Blog -高度なマルウェアに関する神話 第1話: 『課題は、高度なマルウェアは検知できないということだ』
http://www.mcafee.com/japan/security/mcafee_labs/blog/content.asp?id=1379

New York Timesの記事によれば、同紙は米Symantecのウイルス対策製品を使っていたが、
Mandiantが調べた結果、攻撃者が使った45種類のカスタム版マルウェアのうち、Symantecの製品で検出できたのは1種類のみだったという。
http://bylines.news.yahoo.co.jp/yamamotoichiro/20130204-00023332/

ソニーPSNの個人情報漏洩に英国で約3500万円の罰金支払い命令、「防げた事件」と判定 - Engadget Japanese
http://japanese.engadget.com/2013/01/24/psn-3500/

Adobeにサイバー攻撃、顧客情報290万人分抜き取り、製品のソースコードも -INTERNET Watch
http://internet.watch.impress.co.jp/docs/news/20131004_618168.html
0226nobodyさん2014/03/09(日) 01:42:11.20ID:givZU1Ab
ボタンが押されたとき、JavaScriptでHTMLの一部を描画したいんですが、

$.get("api/action", {}, function(data) {
 $("bar"),append ($(data));
});

def action
 render :partial=>"foo"
end


とか書いていたら、dataには改行コードしかありませんでした
コンソール見たら、actionは呼び出されており、指定したパーシャルがrenderされていることは確認できたのですが・・・
0227あ2014/03/09(日) 02:05:33.45ID:???
Ruby on Rails 3 の Ajax いろいろ - @yuumi3のお仕事日記
http://b.hatena.ne.jp/entry/d.hatena.ne.jp/yuum3/20120903/1346653974
0228nobodyさん2014/03/09(日) 19:10:25.85ID:???
画像や幾つかのテキストを投稿できるシステムがあり投稿前にプレビューできるんですが、

get 'articles/edit'
post 'articles/preview'
post 'articles/post'

class ArticlesController < ApplicationController

def edit
end

def preview
end

def post
end

end


こんな感じで、編集画面でフォーム送信 → プレビュー → プレビューで確認して投稿 というのを考えてましたが、
edit → preview でfile_fieldの値が引き継がれません。

file_fieldの値を別の画面に引き継ぐことは無理なのでしょうか? 
0229nobodyさん2014/03/09(日) 19:20:09.30ID:???
質問する時はソースを略すな
0230nobodyさん2014/03/09(日) 20:44:39.41ID:???
>>228
無理です
0231nobodyさん2014/03/09(日) 21:40:32.82ID:???
>>229
すいません
他にどの辺りのソースも書けばいいでしょうか・・・

>>230
無理なんですか・・・
ユーザがアップロードした画像をメモリの中におさめて別の画面の<input type="file">にセットするとかはできないんですね・・・
0232nobodyさん2014/03/09(日) 21:48:09.82ID:???
>>231
無理です
0233nobodyさん2014/03/09(日) 23:24:37.25ID:rV1atWDh
以前やったときは:

投稿に確定フラグを用意して、
確認画面に行くときに確定フラグOFFで保存(画像も)してしまい、
確認取れたら確定フラグをONにする。
別途、長時間(1時間とか1日とか)確定フラグOFFのままのものは、バッチで削除する。

とした。

面倒だし、未確定のものが見えてしまうことを避けるためにscopeの設定に注意、
という残念なアプローチなので、あまりお勧めはしない。
0234nobodyさん2014/03/09(日) 23:34:39.34ID:???
>>233
もっと詳しく書いて下さい
あまりにも説明がザックリすぎます。。。
0235nobodyさん2014/03/09(日) 23:35:11.57ID:???
>>233
できればコードで!
0236nobodyさん2014/03/09(日) 23:36:35.19ID:???
>>234
>>233 で分からないようならかなり勉強が足りない
Railsは広範な知識が前提になるから、君にはまだ早いかもしれない
0237nobodyさん2014/03/09(日) 23:40:35.43ID:???
>>236
すいません、>>234と>>235は私ではありません

>>233
ありがとうございます
そういう無理矢理な方法を取らないといけないという時点で大きなヒント
IE8ではHTML5も使えないですし、
やはりユーザーが一度プレビューでも確認しようとする画像はサーバーにあげるしかないんですね
0238nobodyさん2014/03/09(日) 23:42:42.92ID:???
>>237
HTML5とか関係ないよ
セキュリティ上の制約からfileフィールドに値を与えることは不可能
それができたら、ローカルのファイルを取り放題になるからね
サーバに上げる以外の方法はない
0239nobodyさん2014/03/10(月) 01:24:02.67ID:???
tmpファイル作るでは駄目なの?
何で悩んでるのかがイマイチ分からん

画像の保存先がDBにしろファイルシステムにしろ
そこへアップするのではなくtmpファイル作る
0240nobodyさん2014/03/10(月) 02:47:48.52ID:???
rails upload preview site:stackoverflow.com

https://www.google.co.jp/search?q=rails+upload+preview+site%3Astackoverflow.com&;oq=rails+upload+preview+site%3Astackoverflow.com
0241nobodyさん2014/03/10(月) 11:58:24.19ID:???
一対多の親子関係の2つのテーブルがあって親のレコードを取得する時に
あるビューでは子のレコードを最新の5件だけ、別のビューでは10件という風に
したいんですけど可能でしょうか?
0242nobodyさん2014/03/10(月) 13:24:50.06ID:???
scope
0243「ガスライティング 集団ストーカー カルト」で検索を!2014/03/10(月) 14:21:04.90ID:CT4FzesB
★マインドコントロールの手法★

・沢山の人が偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法


↑マスコミや、カルトのネット工作員がやっていること

TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。

リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
,,,
0244nobodyさん2014/03/14(金) 06:16:01.68ID:???
windowsのrailsでnewしてできるファイルのエンコードをデフォルトでutf-8にすることはできますか?
railsinstaller-2.2.1使用
0245nobodyさん2014/03/14(金) 07:07:13.95ID:???
すべてのファイルにマジックコメントをつけろってこと?
0246nobodyさん2014/03/14(金) 08:11:26.02ID:???
Ruby 2.0.0-p0 リリース
https://www.ruby-lang.org/ja/news/2013/02/24/ruby-2-0-0-p0-is-released/

default UTF-8 encoding: 多くのマジックコメントが不要に
0247nobodyさん2014/03/14(金) 08:22:50.53ID:???
ruby on rails - railsinstaller 2.2.1 fails on windows - Stack Overflow  
http://stackoverflow.com/questions/17917660/railsinstaller-2-2-1-fails-on-windows
0248nobodyさん2014/03/16(日) 00:46:27.85ID:sX6tK28V
MySQLのVARCHAR型のカラムにこんなデータがあり

テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!

そのまま出すと([email protected])

テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!


こうなるんです


=simple_format @hoge.text
[email protected](/\r\n/, '<br/>')


こんな風にしても


テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!


こうなるんです・・・



MySQLでの\r\nがどうして\r\nで置換できないのでしょうか
0249nobodyさん2014/03/16(日) 00:49:17.26ID:???
こうなるってどうなるの?
0250nobodyさん2014/03/16(日) 00:54:37.66ID:???
\\r\\nってオチでしょ
02512482014/03/16(日) 00:59:39.49ID:???
こうなるというのは「テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!」が表示されるという意味です・・・
でも確かに.gsub(/\\r\\n/, '<br/>')でしたら置換されました・・・

MySQLで\r\nで登録されている文字列はビューに来る頃には\\r\\nになってるんですか・・・
それでしたら組み込み関数のsimple_formatも使えないことになりませんか?
0252nobodyさん2014/03/16(日) 01:02:18.80ID:???
こうなるじゃわからん。
ちゃんと口で説明しろ
0253nobodyさん2014/03/16(日) 01:20:55.82ID:5H4+EUWX
>>251
250が言わんとしている事をもう少し分かりやすく言うと、
今回のケースではMySQLには改行コードではなくて
'&#165;r&#165;n'
っていう文字列そのものが入ってる。

Rubyで
print '&#165;r&#165;n' # 改行されずに&#165;r&#165;nっていう文字列そのものが表示される
と
print "&#165;r&#165;n" # 改行される
の実行結果を比較すると理解できるかと。
02542532014/03/16(日) 01:25:22.32ID:5H4+EUWX
>>253
で文字化けしてる部分はバックスラッシュの事だと読み替えてください
0255nobodyさん2014/03/16(日) 16:29:56.38ID:???
nl br rails site:stackoverflow.com
0256nobodyさん2014/03/19(水) 13:34:27.57ID:XfOUweW8
http://d.hatena.ne.jp/shio_chan/20120103/1325530100
この記事と同じところで躓いているのですが、
一番下の「追記 解決しました」はどういうことなのでしょうか?
「テストで作成しているデータが10文字以下だった」ら、
どこをどう変えれば解決するのでしょうか。
0257nobodyさん2014/03/19(水) 15:28:10.08ID:???
10文字より長くすれば?
0258nobodyさん2014/03/19(水) 17:20:29.04ID:XfOUweW8
>>257
レスありがとうございます。
何を10文字より長くすればいいのでしょうか?
0259nobodyさん2014/03/19(水) 18:33:11.75ID:???
description
0260nobodyさん2014/03/19(水) 18:46:53.11ID:XfOUweW8
>>259
descriptionを10文字より長くしても駄目でした。

Failed assertion, no message given.
1 failures
のままです。
0261nobodyさん2014/03/20(木) 07:58:58.79ID:8noYVroQ
>>256
>>257

解決しました。ありがとうございました。
0262nobodyさん2014/03/20(木) 10:48:45.83ID:???
app/assets/stylesheets/配下のCSS(SCSS)ファイルはAsset Piplineでコンパイルされて一つになるので、
コントローラごとに適用されるCSSを分けることは出来ないのでしょうか?
0263nobodyさん2014/03/20(木) 17:48:14.89ID:???
layouts/application.html.erb に
<body class="<%= controller_name %>">
と書き換えて、後は scss で分ける。
scss だったら一段階層を増やしてあげるだけ。
0264nobodyさん2014/03/20(木) 18:03:04.96ID:???
>>263
なるほど、クラスで分けるのがデフォなんですね。ありがとうございます!
0265nobodyさん2014/03/23(日) 21:14:41.33ID:???
「KADOKAWA」サーバに不正侵入、フィッシングメールの踏み台にされた恐れ サイト閉鎖 - ITmedia ニュース
http://www.itmedia.co.jp/news/articles/1403/23/news011.html

KADOKAWAの公式サイトが改ざん 閲覧者がマルウェア感染の恐れ - ITmedia ニュース
http://www.itmedia.co.jp/news/articles/1401/17/news047.html
0266nobodyさん2014/03/25(火) 10:58:40.13ID:cbd1slMB
『RailsによるアジャイルWebアプリケーション開発 』で
アプリケーションを作っている途中、カートを作るところまでいったのに
サーバーを実行しても、初期の"Welcome aboard"のページになってしまう
ようになってしまいました。
ファイルはあるのですが、ファイルを読み込むようにすることはできるのでしょうか。
0267nobodyさん2014/03/26(水) 06:35:55.97ID:XaAxxKBe
rm public/index.html
0268nobodyさん2014/03/29(土) 08:51:33.04ID:???
質問です。
[[親A.-子1-孫1], [親A-子2.], [親B-子1-孫1], [親A-子1-孫2], [親C]]
のような配列があり、各関係はハイフンで区切られています

この配列を
[親A[子1[孫1,孫2],子2], 親B[子1[孫1]], 親C]
のように親子関係を、同じ位のものは同じ階層の配列に
下のものはその中に配列として格納

というようなことをしたいのですが、rubyに慣れておらずサンプルコードいただけませんでしょうか
0269nobodyさん2014/03/29(土) 11:06:27.49ID:???
Ruby初心者スレへどうぞ
0270nobodyさん2014/04/04(金) 17:14:47.47ID:???
migrationを最近のDBからフラットに生成する方法ってありませんか
既存アプリをベースに新規アプリを作りたいのですが
既存アプリはDBの拡張ライブラリを使っていた時期があって
その環境を整えないとmigrationが通らないのですが今は使っていないのでスキップしたい
0271nobodyさん2014/04/04(金) 17:17:55.16ID:???
db/schema.rbにありました
サンクス
0272nobodyさん2014/04/05(土) 11:38:17.94ID:???
kyoto-u.com > 談話室 > 法学部・経済学部 > 帰国子女ロンダに関する考察
http://www.kyoto-u.com/lounge/tokeidai/html/200602/06020020.html
0273nobodyさん2014/04/05(土) 12:55:04.90ID:???
http://b.hatena.ne.jp/entry/headlines.yahoo.co.jp/hl?a=20140405-00050045-yom-sci
0274nobodyさん2014/04/05(土) 13:57:23.96ID:???
http://b.hatena.ne.jp/entry/www.yomiuri.co.jp/it/20140405-OYT1T50045.html
0275nobodyさん2014/04/06(日) 00:47:41.08ID:???
RoRをやり始めてから早2年

コーディングなんかよりも
環境のデプロイが辛すぎる

使い慣れたgemを使おうにも
新たに契約したVPSでは
毎度のこと環境(選択できるOS)が変わる

それに合わせてRubyだのPHPだのphp-fpmだのnginxだのapacheだのImageMagickだのと入れていくわけだが

バージョン相違の依存度のせいで動かなくなったりエラーが出たり頻発

いろいろ試してやっとで動かせるようにしても
また次回も新たにホスティングを契約すると同じことをしなくちゃならない

これだけで実に丸2〜3日は掛かる
正直辛すぎる
0276nobodyさん2014/04/06(日) 00:54:26.05ID:???
あらかじめ
コマンド一つで
決められた環境を全てデプロイしてくれるような自動化が作れればいいのになぁ
0277nobodyさん2014/04/06(日) 03:26:20.30ID:???
bundler使いましょう
0278nobodyさん2014/04/06(日) 05:16:19.81ID:???
>>275
依存関係を弱くするのは初心者にとって難しいかもな。がんばれ。
0279nobodyさん2014/04/06(日) 08:16:32.72ID:???
chef
vagrant
docker
0280nobodyさん2014/04/06(日) 09:34:39.96ID:???
chef使わなくても慣れれば普通に数時間以内で終わる件
0281nobodyさん2014/04/06(日) 23:13:05.66ID:???
高度なマルウエアは防げない、「アフターテクノロジー」が重要:ITpro
http://itpro.nikkeibp.co.jp/article/Interview/20131022/512834/

マカフィー株式会社 | McAfee Blog -高度なマルウェアに関する神話 第1話: 『課題は、高度なマルウェアは検知できないということだ』
http://www.mcafee.com/japan/security/mcafee_labs/blog/content.asp?id=1379

New York Timesの記事によれば、同紙は米Symantecのウイルス対策製品を使っていたが、
Mandiantが調べた結果、攻撃者が使った45種類のカスタム版マルウェアのうち、Symantecの製品で検出できたのは1種類のみだったという。
http://bylines.news.yahoo.co.jp/yamamotoichiro/20130204-00023332/

ソニーPSNの個人情報漏洩に英国で約3500万円の罰金支払い命令、「防げた事件」と判定 - Engadget Japanese
http://japanese.engadget.com/2013/01/24/psn-3500/

Adobeにサイバー攻撃、顧客情報290万人分抜き取り、製品のソースコードも -INTERNET Watch
http://internet.watch.impress.co.jp/docs/news/20131004_618168.html
0282nobodyさん2014/04/08(火) 11:49:50.27ID:???
新型マルウェア、54%は対策ソフトで検知できず――NTTグループが分析 - ITmedia エンタープライズ
http://www.itmedia.co.jp/enterprise/articles/1403/28/news118.html
0283nobodyさん2014/04/18(金) 00:39:33.69ID:???
こんなブログ記事があったのだが

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」
http://blog.sumyapp.com/2013/07/no-recommend-rails/

で、記事の途中にこんなくだりがあった。

>この記事にぐさっときた人、プログラミング初心者にとっておすすめしたいのはこの書籍だ。
>なれる!SE 2週間でわかる?SE入門 (電撃文庫)
>ぜひ頭の硬いプログラミング見習いの方には読んで頂きたい。技術職における最も大事なことはこの本に全て書いてある

やはりをなれるSEを読むようなクレバーな技術者はRuby on Railsなんてオモチャは
遠ざけるのだな。
0284nobodyさん2014/04/18(金) 03:16:15.18ID:???
http://b.hatena.ne.jp/entry/blog.sumyapp.com/2013/07/no-recommend-rails/
0285nobodyさん2014/04/18(金) 11:10:09.23ID:???
抽象化のバランスでいうと、今のRailsを初めとするフレームワークじゃ、
結局DB、SQLやWebサーバの詳細を結局勉強するはめになるわけで、
アセンブラやC言語を知らずにRubyを使えるレベル、とまでにはなってないよね。

いきなりRailsをやるより、PHPとApacheで素のWEBアプリをまず作ったり
した後の方がRailsのありがたみが良くわかるんじゃないだろうか。
0286nobodyさん2014/04/18(金) 12:10:11.41ID:???
>>285
Rails使わずにRubyでWEBアプリならまだしも、PHPはちょっと
0287nobodyさん2014/04/18(金) 14:11:40.28ID:???
>>283
それ、後の方の巻で出てくるソフト開発の描画が酷かったやつだな。
0288nobodyさん2014/04/18(金) 19:51:14.01ID:HvjAAhgy
http://www.hoge.com/index.html&;q=パラメーター

より

http://www.hoge.com/index/パラメーター

のほうがSEOはいいのでしょうか?
0289nobodyさん2014/04/18(金) 20:36:48.22ID:???
>>286
素のRubyとの比較だと、やっぱりPHPの方が何かと簡単だ(例えばSessionとか)。
個人的には、Rackから始めるのがいいと思うが、Rackを入り口に扱っている情報ってあんまりないよね。
0290nobodyさん2014/04/19(土) 16:05:29.73ID:h92l0Mdq
>>288

Web制作板のスレタイを SEO で探したほうが答えが手に入る可能性が高い
0291あ2014/04/20(日) 19:26:42.59ID:???
Google
パンダアップデート
ペンギンアップデート
0292nobodyさん2014/04/23(水) 01:16:16.25ID:dat1Z6dq
お気に入り機能の実装ってどういう感じでやってますか?
0293nobodyさん2014/04/23(水) 09:41:35.29ID:???
favorite rails site:stackoverflow.com

https://www.google.co.jp/search?num=100&;q=favorite+rails%E3%80%80site%3Astackoverflow.com
0294nobodyさん2014/04/24(木) 01:05:04.94ID:Xeh6xycu
class Product < ActiveRecord::Base
 has_many :tagging,
 has_many :tags, :through=>:tagging
end

class Tag < ActiveRecord::Base
 has_many :tagging
 has_many :products, :through=>:tagging
 validates :text, :presence=>true, :uniqueness=>true
end

class Tagging < ActiveRecord::Base
 belongs_to :product
 belongs_to :tag
end

こういう状態で、ProductのページでTagも追加するようなフォームを作っているのです。

= form_for(@product) do |f|
  = f.fields_for :tags do |f2|
    = f2.hidden_field :id
    = f2.text_field :text

しかし、
�@入力したタグがDBに存在しない場合は、tagsに新レコード追加し、taggingも更新
�A入力したタグがDBに存在する場合は、taggingだけ更新
という挙動を期待しているのに、実際は、POSTされたtagsのパラメーターにidが存在しない場合は、
常にtagsを新規作成しようとしてしまいます(結果として、ユニーク制約に引っ掛かってエラー)

望むような挙動をさせたい場合はどうすればいいのでしょうか?

既存のtagはセレクトボックス、新規作成の場合はテキストボックスなどでわけられるのが理想なのですが・・・
0295あ2014/04/24(木) 09:03:50.11ID:???
ASCII.jp:開発者はビットコイン採掘を狙うハッカーに備えて Amazon の請求書を確認すべき
オーストラリアのセキュリティ専門家が先月に実施したGitHubの検索では、約1万件のAWS 認証情報が発見されている。
http://ascii.jp/elem/000/000/886/886650/
0296nobodyさん2014/04/24(木) 12:42:49.45ID:???
>>294
taggingはproductに毎回付随していて、tagは全てのタグの一覧と言う認識でOK?
それならfields_forで入力させるのはtaggingで、taggingを保存する際にafter_saveで
そのタグが新規かどうかを判定して新規ならtagsを保存すればいいんじゃないのかな

といっても要件がよく理解できてないから的はずれかも
0297nobodyさん2014/04/24(木) 19:50:38.29ID:???
>>296
ありがとうございました。

ただし fields_forで:taggingを指定しても出てこないです・・・。
0298294, 2972014/04/24(木) 20:10:06.47ID:???
ループで回してnew_record?で判定することにしました
ありがとうございました。
0299あ2014/04/25(金) 16:27:02.89ID:???
国内セキュリティ企業が相次いで注意喚起:Struts 2の脆弱性は最新版でも未修正、Struts 1にも同様の脆弱性が存在 - @IT
http://www.atmarkit.co.jp/ait/articles/1404/24/news172.html

運用中のApache Webサーバの大半にセキュリティ脆弱性 | マイナビニュース
http://news.mynavi.jp/news/2014/02/11/038/
0300nobodyさん2014/04/25(金) 20:15:36.90ID:???
Ruby on Railsで作られた有名サイトの紹介 | PbTimes 情報誌
http://pb-times.jp/P_529d87c5b28d6
0301nobodyさん2014/04/29(火) 16:24:14.83ID:???
最近はじめたのですが、scaffoldってデータの管理画面を作るものって考えであってますか?
0302あ2014/04/29(火) 20:13:42.89ID:???
CRUD(クラッド)とは、ほとんど全てのコンピュータソフトウェアが持つ永続性[1]の4つの基本機能のイニシャルを並べた用語。
その4つとは、
Create(生成)、
Read(読み取り)、
Update(更新)、
Delete(削除)である。
ユーザインタフェースが備えるべき機能(情報の参照/検索/更新)を指す用語としても使われる。

ttp://ja.wikipedia.org/wiki/CRUD
0303nobodyさん2014/04/29(火) 23:21:27.82ID:???
>>301

scaffold - (建築・修繕・改装の際の)足場, 仮構え (scaffolding);
 (高層建築のガラス窓拭き用や画家の制作の際の)つり足場, (高所作業用の)ゴンドラ

(研究社 新英和大辞典 第6版から引用)
0304nobodyさん2014/04/30(水) 14:47:16.19ID:???
>>301
ぶっちゃけ商用レベルで管理画面作る時は使わない
手軽にRESTfulなMVCモデルを作れるものくらいの認識
0305nobodyさん2014/04/30(水) 22:15:24.71ID:CrhybghX
>>303-304
なるほど、thx!
0306あ2014/05/07(水) 01:41:55.35ID:???
Riding Rails: Rails 3.2.18, 4.0.5 and 4.1.1 have been released!
http://weblog.rubyonrails.org/2014/5/6/Rails_3_2_18_4_0_5_and_4_1_1_have_been_released/
0307nobodyさん2014/05/07(水) 22:53:01.45ID:???
Hoge.find(:all, include: :fuga)


これってRails2.0時代の記法なんですかね?
3.2とか4系だとfindは検索したい列名しかとらない気がするんですが
0308nobodyさん2014/05/08(木) 07:01:03.36ID:???
>>307
そうです
3.xからは Hoge.all でいけます
0309nobodyさん2014/05/08(木) 23:23:32.55ID:???
>>308
ありがとうございます

bullet使っていると、:includeつけろってうるさいんですが
これってこのgemが3系のまま変わってないってことですよね
0310nobodyさん2014/05/09(金) 00:04:20.97ID:???
>>309
とりあえずこの辺読んでRails3以降のクエリの書き方をお勉強なされ
http://guides.rubyonrails.org/active_record_querying.html
0311nobodyさん2014/05/13(火) 00:47:11.48ID:jc+wbYf6
>>293
thank you.
you are good japanese!
0312nobodyさん2014/05/13(火) 16:10:33.81ID:???
良い日本人がいるんじゃなくて、日本人はみんな良い人だよ
0313nobodyさん2014/05/13(火) 23:07:46.16ID:???
このスレ、外国の人も住んでるの?
0314nobodyさん2014/05/14(水) 07:59:55.63ID:???
>>312
素で言ってるとも思えんので何某かのネタなんだろうけど、笑う所が解らん。
流行りのコピペなのかな。
0315nobodyさん2014/05/14(水) 22:34:19.83ID:???
日本語のサイトである2chに英語のリンク貼ったって役に立たねーじゃねーか
という皮肉かと
0316nobodyさん2014/05/14(水) 23:43:03.92ID:0Cc29kMy
Railsのview(haml)でselfであるクラスの名前知りたいんですが、

self.class.nameがnilです。

名前がないクラスなんですかね?
0317nobodyさん2014/05/16(金) 21:13:11.48ID:uX+vzxIx
>>315
いや、俺が質問者で、英語の検索結果くれたから、英語で返事したんだよ。
当方TOEIC900近くはあるから問題なく読めて解決した。
皮肉のつもりはないよ。ありがとさん
0318nobodyさん2014/05/17(土) 19:48:44.85ID:???
Amazon.co.jp: 暴露:スノーデンが私に託したファイル: グレン・グリーンウォルド, 田口俊樹, 濱野大道, 武藤陽生: 本
スパイソフトを埋め込んだ米国製PC、ルーター、サーバーが、日本を含む世界へ拡散
http://www.amazon.co.jp/gp/product/4105066919
0319nobodyさん2014/05/18(日) 23:12:34.62ID:hk8drueV
達人な皆様Rails4で複数画像アップロード方法の詳しい説明がのっているサイト知りませんでしょうか?
0320nobodyさん2014/05/18(日) 23:16:10.04ID:???
>>319
ggrks
https://www.google.co.jp/search?q=rails+%E7%94%BB%E5%83%8F+%E8%A4%87%E6%95%B0+%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89
0321nobodyさん2014/05/18(日) 23:23:47.40ID:hk8drueV
早速のggrks有難うございます。ですが大体がRails3情報で4が一部あるんですが詳細なコードがなく、
できればjquery-fileupload-railsあたりを使いたいと考えています。

jquery-fileupload-rails+carrierwave+Rails4このあたりで詳細サイト知っていたら教えて下さいませんか?
0322nobodyさん2014/05/18(日) 23:33:47.58ID:???
3も4も大して変わらん
3のサイトのやつを4で試して動かなかったらまた聞けばいい
まずは試せ、手を動かせ
0323nobodyさん2014/05/21(水) 16:47:14.11ID:???
https://twitter.com/jingbay/status/468989574921072641
0324nobodyさん2014/05/22(木) 21:33:08.41ID:???
Railsって便利だけど、便利がゆえに振り回されたりした記憶もある。

例えばvalidation。
多対多(Hoges : Moges)の関係にあるモデルの一方(Moge)をsaveしようとすると
"Hoge can't be blank"というvalidation errorが発生して
saveが失敗してしまい困った記憶がある。

慣れないfield_forを使っていたせいもあり、
どうしたら良いのか分からずその時は敗北宣言的に迂回してしまったが、
未だに気になってる。そういうのがチラホラあるので勉強しなきゃなと。。
0325nobodyさん2014/05/22(木) 22:21:50.23ID:R9eMlpe5
railsってわけじゃないけど、客が住所入力した時に自動的にエリア入力できるようなシステム作ったことある人いる?
例えば上野浅草エリアとか
0326nobodyさん2014/05/22(木) 23:02:48.21ID:???
またこりゃざっくり仕様だね
0327nobodyさん2014/05/22(木) 23:41:19.05ID:???
うんこって書いたらトイレとかが自動で選択できるやつだろ?
0328nobodyさん2014/05/23(金) 11:57:24.92ID:???
googlemapsgeocoding使ったのなら
0329nobodyさん2014/05/23(金) 14:47:19.40ID:stzGS3lF
https://twitter.com/keisuke_matsuda/status/469682745472348160
0330nobodyさん2014/05/23(金) 15:25:30.61ID:???
ふくおかまで来いってか
0331nobodyさん2014/05/23(金) 21:14:44.51ID:shajvKcu
http://tabelog.com/rst/auth_rst_entry?pcd=0
良い例見つけました!
こういうので住所入れたらエリアが自動で出てきます。
この仕組みが知りたいっす。
0332nobodyさん2014/05/23(金) 22:34:01.29ID:???
単純に変換テーブル持ってるだけでしょ
0333nobodyさん2014/05/24(土) 05:04:07.32ID:???
>>331
googleのapiつかわんのなら、国土交通省のサイトから座標データのcsvとってきて作れ
0334nobodyさん2014/05/24(土) 21:26:52.46ID:1qo8C4Ld
Runしたらこんなエラーが出るんだけど
Documents/Aptana Studio 3 Workspace/sybentpro/app/controllers/application_controller.rb:1:in `<main>': uninitialized constant ActionController (NameError)
0335nobodyさん2014/05/25(日) 16:55:17.98ID:???
NameErrorだから、名無しなんだろ
0336nobodyさん2014/05/26(月) 02:20:32.01ID:5+hysLvg
>>332
ありがとうございます!
>>333
api使えば世界対応も可能っちゅうことかもしれませんね。あざす!!
0337nobodyさん2014/05/28(水) 01:47:46.31ID:???
ネットワークゲーム作ってて単にControllerからJSON返したいだけなのだが、ruby tutorial読んでても全然出てこないのだが何を見て勉強すべきだったんでしょうか?
0338nobodyさん2014/05/28(水) 07:08:14.63ID:???
rails render json でぐぐれ
0339nobodyさん2014/05/28(水) 07:14:59.02ID:???
>>337
算数の教科書見て応用力を身につけるべき。
0340nobodyさん2014/05/28(水) 08:45:35.41ID:???
プログラミングなんて決まったフォーマットの作業手順書を書いてるのと同じなんだけどなぁ
0341nobodyさん2014/05/28(水) 09:57:26.54ID:???
>>338-340
おお、優しい人々よありがとうございます。
0342nobodyさん2014/05/28(水) 13:52:34.02ID:???
なんだかんだで教えるツンデレーズ
0343nobodyさん2014/05/31(土) 18:11:46.95ID:???
モデルインスタンスの全てのカラムの値を削除したいんですが、そういう場合に

@instance = nil
@instance = Model.new

ってやる以外にいい方法ないでしょうか?
動的にModelを変更したいのでカラム名などがリテラルで書けないので、なんか良い方法ないかなと思ってます。
0344nobodyさん2014/05/31(土) 18:38:38.82ID:J5yjoJnZ
最初に nil を代入する意図は?
03453432014/05/31(土) 19:24:39.23ID:???
>344
ありがとうございます。@instance = Model.new だけで十分でしたね。。
0346nobodyさん2014/05/31(土) 19:24:52.08ID:???
SQL直でいいだろ
03473432014/05/31(土) 19:28:59.33ID:???
>>346
あ、確かに。そっちの方がいい。
0348nobodyさん2014/05/31(土) 20:33:30.11ID:J5yjoJnZ
newしちゃう(新しいidを振る)のが嫌なら #attributes= というメソッドもある。
0349nobodyさん2014/05/31(土) 21:36:29.54ID:???
Model.update_all(column: nil)
0350nobodyさん2014/06/01(日) 17:47:59.67ID:MVvg2g7w
皆様、最寄駅を表示するシステムってどうやって作ってます?
あれって、何個まで表示するとか、何かやっておかなければならないアルゴリズムってあるんですか?

海外バージョンでもやるとしたら、また気をつけなきゃならんことがありますでしょうか?

グーグルだけでもいけちゃいますかね?
0351nobodyさん2014/06/01(日) 19:47:49.55ID:???
なんというザックリな質問
0352nobodyさん2014/06/02(月) 01:04:22.83ID:cdjAC42f
>>351
すんません。ざっくりとしかイメージがわいていないのでw
国内対応だけだったら駅と緯度経度データベース作って、距離検索でしょうけど。グーグルとかの最寄駅はどういうアルゴで出るのかね。
海外対応までしようと思ったらグーグル使わんとにっちもさっちもいかんのか。
経験者がいれば、ざっくりとした回答が欲しかった
0353nobodyさん2014/06/02(月) 17:13:24.71ID:???
現在位置とズーム量から
表示中のランドマーク取得でいけそう
0354nobodyさん2014/06/02(月) 21:41:15.02ID:IKV43VQr
下記の方は以下の方法では成功していないようですが、これを成功させる記述法はあるのでしょうか?
<label>の生書きでなく、f.labelを使ってできませんか?
この方が書いてるもう一個の方法はできるのですが、labelのブロックで色々大きさとか調節したいんです。

http://gpsoft.dip.jp/hiki/?Rails%A4%C7%A5%C1%A5%A7%A5%C3%A5%AF%A5%DC%A5%C3%A5%AF%A5%B9%A4%CE%A5%E9%A5%D9%A5%EB%A4%F2%A5%AF%A5%EA%A5%C3%A5%AF%A4%B9%A4%EB

&#8226;<input>を<label>の子要素とする
<label><input type="checkbox" name="check1" />Check1</label>
0355nobodyさん2014/06/03(火) 08:00:47.64ID:???
> labelのブロックで色々大きさとか調節したい
すればいいじゃん
0356nobodyさん2014/06/03(火) 08:59:59.19ID:???
新しいプログラミング言語 Swift
http://dev.classmethod.jp/smartphone/swift/

米アップル、iOSアプリの新開発言語にSwiftを導入
http://ggsoku.com/2014/06/ios-8-swift/
米アップルは2日(現地時間)、iOS 8に新開発言語「Swift」を導入すると発表した。

Swiftは非常に軽快に動くことが特徴であり、Objective-CとC言語の中間に位置するようなイメージであるという。
コード体系はC言語を踏襲。
CocoaやCocoa Touchに対応することはもちろん、LLVMコンパイラを利用してビルドされる。

LLVM
http://ja.wikipedia.org/wiki/LLVM
LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。

LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。

playgrounds を使うとインタラクティブに実行できる。
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/Art/largeshot_2x.png
0357nobodyさん2014/06/03(火) 12:38:52.70ID:???
Swiftがキモい件はがいしゅつです
0358nobodyさん2014/06/03(火) 17:17:13.70ID:???
Rspecでエンドツーテストをする際、
コントローラのメソッドから特定の返り値を取得したいのですが、
stubを使って書く際のObjectをどのように指定したら良いか分かりません。

[ここに何かが必要だと思うけど分かりません].stub(:method).and_return(value)

スタブで取得することは可能でしょうか?
可能な場合どのようにオブジェクト指定したらよいのでしょうか?
0359nobodyさん2014/06/03(火) 20:38:27.53ID:Ip12GRTV
>>355
えぇ、それはできますよ。
>>354にある通り、ラジオボタンやチェックボックスを内包したラベルを作りたいのです。
これがrailsから導く方法が難しいんですよね。
0360nobodyさん2014/06/03(火) 21:05:32.19ID:???
>>359
FormBuilder#label はブロックを取れる
0361nobodyさん2014/06/04(水) 19:29:38.02ID:6xizC0Ei
>>360
なるほど。なかなかハードル高そうですが、手っ取り早く記述だけで何とかなるもんじゃないんですね。
先の例のもう片方のように。
0362nobodyさん2014/06/04(水) 20:10:21.69ID:???
<%= f.check_box 'check1' %>
<% f.label 'check1' do %>
<font size=7>Check1</font>
<% end %>
0363nobodyさん2014/06/04(水) 21:51:45.24ID:efQEBuMU
>>362
ありがとうございます!!!!!
さすがです!!
0364nobodyさん2014/06/06(金) 05:18:00.21ID:???
相談させてください

今までDeviseとconfirmableを使い
メール認証のみで会員登録制度を強いてきました。

しかし、この度OmniAuthを使い
FacebookやTwitterを利用し当サイト利用の敷居を低くしようと思っています。

しかし気になる問題があります。

今までは会員登録だったため
登録が行われると
UserテーブルにUserレコードが生成され
且つ関連テーブルのProfileにもレコードが出来ていました。

Userには登録メアドのemailカラムを含め、アカウント名であるaccountカラムが、
Profileにはニックネームのnicknameカラムなどがあります。

そして、会員が投稿すると、これらアカウント名やニックネームが表示されたり、
サイト内でのメッセージのやりとりはemail宛へ転送されます。

もし、facebookやtwiter認証した場合はこれらは全てnilになりますよね?

OmniAuthで認証した会員の場合はUserレコードやProfileレコードは生成されませんよね?
となると、何を元に誰が投稿したのか?といったものを取得できるのでしょうか?
0365nobodyさん2014/06/06(金) 05:59:22.66ID:???
facebookやtwiter認証したアカウントと今までの会員のバインディング情報は?
0366nobodyさん2014/06/06(金) 06:25:27.83ID:???
>>365
そこらへんをどうするかイマイチぴんと来ていません

調べたところOmniAuthでもTwitterの場合だとメアドが取得できないみたいなので
どのようにして正しいメアドを取得してUserテーブルのemailカラムに格納するか?

今までの数千に渡るユーザーのuid(ユニーク)はどうするかなど


似たようなこと(deviseのメール認証必須会員登録制→OmniAuthでTwitter、Facebookでも登録できるように)をしたことある人がいたらアドバイスをください
0367nobodyさん2014/06/06(金) 06:34:40.87ID:???
こういうやり方が定石?

初ユーザーが訪問
↓
Facebookアカウントで登録ログイン
↓
トークンごしに取得できたauth['name']など
ユーザーの各種情報を利用して
Userレコードを追加(メール認証しなくてオーケー)

それ以降のコールバックについては、userレコードが存在する場合はuserレコードの追加は行わず
ただのログイン処理だと見なす

ただし、この場合Twitterだけメアドが手には入らないから切り分けが必要そう。。。。
そもそも登録の際にニックネームとメアドしか聞いてなかったから
Twitter認証してメアド登録してもらうほうが手間がかかってしまう気がする。。。。
0368nobodyさん2014/06/08(日) 10:47:59.45ID:???
Rails3で
なんらかのリンクをクリック
非同期通信
結果を表示

という事をよくやるのですが、大抵のサイトではクリックしたあとにグルグルと画像が回ると思います
これをRailsでやろうと思うとjqueryで無理やりフックしないとダメですか?なにかしらスマートな方法がないかなーと考えていたのですが
0369nobodyさん2014/06/08(日) 13:59:51.28ID:???
馬鹿には無理
0370nobodyさん2014/06/08(日) 14:19:06.97ID:???
ワロタw
0371nobodyさん2014/06/08(日) 14:27:10.31ID:???
ajax:send、ajax:complete あたりに引っ掛けるのが自然ではなかろうかね
0372nobodyさん2014/06/11(水) 12:14:10.18ID:???
railsって
アクティブユーザーがそこそこ賑わっていて常にユーザー情報の更新や
投稿が行われるサイトは
よーく設計してdalliとかredisを使いつつページキャッシュやフラグメントキャッシュも使いこなさないと激重くない?
indexとかも貼るべきには貼ってるし検索とかはsolrを使ってる

しかし糞重い

ページがサクサクロードできるようなサイトって
変更あったら書き出してページキャッシュか何かにしてんの?


さくらVPS SSD2GB 2コアを使ってても
こんなに遅く感じる
0373nobodyさん2014/06/11(水) 13:54:35.52ID:???
>>372
何が重いの?プロファイリングしてみた?

Railsで重いサイトは大体は集約関数周りでこけてることが多いな

ページキャッシュはある程度の規模からやってるとは思うけど
フラグメントキャッシュまでやってるところはあまりなくね?
0374nobodyさん2014/06/11(水) 15:08:34.00ID:???
>>373
miniprofiler使ってる
時間がかかってるのは
複数のテーブルを紐づけて
関連先のカラムでソートかけて取り出したりとかが重いね
それにロードするごとに沢山のコードが動く
会員制だから仕方ないよね


ちなみに会員制敷いてると
ページキャッシュ無理じゃね?
0375nobodyさん2014/06/11(水) 15:15:12.82ID:???
あと毎ページのロードでメッセージ件数はリアルタイムでcountしてるんだが
カウンターキャッシュみたいに
countカラムを用意するのが定石?

そしてメッセージの送信後に送信先相手のcount件数を計って更新ってな具合にすべきかな?
0376nobodyさん2014/06/11(水) 15:53:19.51ID:???
>>374
各会員専用が主だとページキャッシュは無理だね
一部なら、そこだけ非同期にしてキャッシュする

MySQLかな?JOIN先ソートとか苦手だけど、それが重いなら対処すべきよ
きちんとインデックス使われてるのかね?

たくさんのコードってSQL?会員制だから仕方ないとかは内容次第だろうね
共通部分をできる限りキャッシュするしね
0377nobodyさん2014/06/11(水) 20:13:40.78ID:???
ソートがインデックス使ってないというオチだろ。
0378nobodyさん2014/06/11(水) 20:36:00.81ID:???
>>376
一部ならそこは非同期ってなると
結局フラグメントキャッシュになるよね?

>>376, >>377
そうMySQL
きちんとインデックスって
これらを守ってインデックス貼ってるんだけど

 ・○○○_idなどアソシエーションに使われるカラムには全てindexを貼っている
 ・検索対象となるカラムには全てindexを貼っている(且つsolrを利用)
0379nobodyさん2014/06/11(水) 20:36:33.73ID:???
え、なに、スロークエリすらチェックしないで質問してんの?
0380nobodyさん2014/06/11(水) 20:37:05.37ID:???
redisは爆速とか聞くけど
そんなに早いの?
ニコ生みたいにリアルタイムで更新されまくるような仕組みもイケちゃう系?
0381nobodyさん2014/06/11(水) 20:38:21.89ID:???
>>379
SQLクエリ見たところで
何がボトルネックになって
こんなに時間がかかってるのか分からない

1つのコード実行した、それだけでも時間がかかりまくってるし
0382nobodyさん2014/06/11(水) 20:40:37.57ID:???
>>378
非同期部分を除いてキャッシュするって意味
フラグメントキャッシュは概念全然別

>>381
時間がかかっていることが多いSQLの実行計画を見るのは定石
0383nobodyさん2014/06/11(水) 21:41:42.39ID:???
explainしたりslow.log見たり、ぼやく前にまだやれることはたくさんあるぞ
0384nobodyさん2014/06/12(木) 00:20:17.16ID:???
>>383
slow.log見ても理由は分からんだろう
0385nobodyさん2014/06/12(木) 05:44:15.06ID:???
10万人の会員持ってるサイトあるけどアプリサーバーさくら8GB+DBサーバーさくら4GBだけで全然回ってるぞ
キャッシュも殆ど使ってないしリアルタイム制すごい高いけど余裕で400ms以内で返せてる
Railsが悪いんじゃなくて設計が悪いんじゃない
何が遅いかも調べられてないのにスペックだけ良くしても意味が無いよ
0386nobodyさん2014/06/12(木) 07:49:02.68ID:???
>>385
例えば常にアクティブユーザーが100人いたとして
ツイートするごとにユーザーのポイントが加算されるような
究極のリアルタイム性の高い計算と更新が行われるような会員制だと
キャッシュなしじゃ厳しくないか?
0387nobodyさん2014/06/12(木) 07:50:37.57ID:???
>>385
ちなみに
apache?
nginx?


だとしたらMySQLの設定側(チューニング)に問題あるのかな

混んでないときでも
1ページ開くときにクエリ実行だけで1300msとかかる

重いページだと3000ms以上
どうなってんだー
0388nobodyさん2014/06/12(木) 09:36:29.91ID:Jzl38UQK
なぜ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
0389nobodyさん2014/06/12(木) 10:39:48.53ID:???
>>388
ミスリーディングってやつか
0390nobodyさん2014/06/13(金) 10:36:58.72ID:???
image tag使うと
出力時になぜか

○○○.jpg?758856
みたいに訳の分からないパラメーターが勝手につくんだけと
これって無くせる?
0391nobodyさん2014/06/13(金) 11:00:11.81ID:???
キャッシュされないようにか
0392nobodyさん2014/06/13(金) 11:12:13.86ID:???
>>391
えっ?
?173747みたいなのがつくとキャッシュされてるの?

assets使ってprecompileしてるから
?27447みたいなのが付くのかな


これが付くとgoogleの画像検索とかにヒットしなくなりそうじゃない?
0393nobodyさん2014/06/13(金) 16:06:57.01ID:???
>>392
Rails関係ないからこれはおまけだからな!

画像ファイルをキャッシュする設定にしていた場合ブラウザは

「キャッシュが残っていればそれを使うし、サーバーには問い合わせない」

から、サーバー上でファイルを変更してもその変更したファイルを取得してくれない
これは画像だけじゃなくてcssとかもそう。変更したのに変更されてない不具合の9割はこれ

その対策としてどうすればいいかというと
hoge-hoge.jpgってファイルを使っていたなら、ファイル名をhogehoge-hoge2.jpgみたいに変更すれば違うファイルとして扱われるからキャッシュを無視してリロードしてくれる
でも全ファイル毎回ちょこっとずつファイル名かえるなんて正気じゃないよな?

そこで、hoge-hoge.jpg?20140613みたいな感じで?とキーを送る、そうすると?以降だけ変えれば違う名前のファイルとしてキャッシュを取り直してくれるんだ
これによって俺らはファイル名を毎回変更するなんて手間をかけずにみんなに新しいファイルを届けられてるわけだ

んで、この手法はもう15年以上使われてるから画像検索うんぬんとかなんも心配しなくてもいい感じにやってくれるよ
0394nobodyさん2014/06/13(金) 17:08:50.74ID:???
>>393
非常にわかりやすい説明をありがとう
なるほどね前回のキャッシュを読み込ませないための工夫だったってことね

そして、Googleなど検索エンジンは
?以降は無視して画像をインデックス化していってくれてるってことか

ありがとう
0395nobodyさん2014/06/13(金) 19:09:01.06ID:???
rails4に移行していないオイラに
turbolinksの素晴らしさと優位性を力説してもらえないだろうか?
0396nobodyさん2014/06/13(金) 20:18:11.06ID:???
>>395
リンクをクリックすると、ページ遷移ではなく Ajax でサーバにアクセスする
返ってきた結果から body 要素の内容だけ抜き出して置き換えてくれる
またブラウザのヒストリも書き換えてくれるので、戻るボタンもきく

スタイルシートやスクリプトを評価しなおさなくて済む分、早い
プログラマは上記の処理内容をほとんど意識する必要がなく、お手軽
0397nobodyさん2014/06/13(金) 21:24:40.13ID:???
へぇ、便利そう。

ゲームサーバとしてJSONしか返さんのならrails3で十分?
0398nobodyさん2014/06/13(金) 22:22:55.28ID:???
JSONしか返さんのならrailsであることが余計
0399nobodyさん2014/06/14(土) 00:36:00.18ID:???
>>396
どれくらい早くなるの?
俺の見解だと
Rails3みたいに違うページをロードしても
同じスタイルシートやjsが指定されていたら
キャッシュから読み込まれるから早い遅いをあまり感じなく思えるんだけど
0400nobodyさん2014/06/14(土) 00:37:52.20ID:???
>>396
それにページによってヘッダ内の読み込むjsを変えてる場合
それだとturbolinksは使えないってこと?
要は<head>内のスタイルシートやjsを固定して読み込みを早くしませんか?ってことだよね?
0401nobodyさん2014/06/14(土) 00:40:18.62ID:???
>>400
jsを変えてる場合は使えない
ただ普通はsprocketsで連結してる前提
0402nobodyさん2014/06/14(土) 02:12:05.87ID:???
>>398
いや圧倒的に楽だろ
テストも含めて
0403nobodyさん2014/06/14(土) 02:19:07.17ID:???
>>399
読み込む速度だけではなく、それを評価する速度も含む
0404nobodyさん2014/06/14(土) 02:26:01.35ID:???
>>398
むむ、なるほど。
0405nobodyさん2014/06/14(土) 02:26:54.30ID:???
>>403
あれ、そうなのか。じゃこのまま使うことにします。
0406nobodyさん2014/06/14(土) 02:27:54.60ID:???
違った>>402
0407nobodyさん2014/06/14(土) 09:07:21.64ID:???
>>403
railsで俗に遅い遅いと言われる所以は
そこよりもクエリの問題になっている場合がほとんど?
0408nobodyさん2014/06/14(土) 09:50:36.58ID:???
ruby
0409nobodyさん2014/06/14(土) 11:59:37.49ID:???
>>407
そうね

言語が効いてくるには Twitter ぐらいのアクセス数がないとね
0410nobodyさん2014/06/14(土) 12:24:13.21ID:???
>>407
railsが遅い問題とturbolinksで解決できる問題は関係ない
turbolinksが解決してるのはクライアントサイドの速度

レスポンスが遅いのとスループットが低いのを混同する奴がいるけど
アクセスが少なくてもレスポンスの遅さは影響する

Railsが遅いのはRubyとアプリサーバの影響の部分が大きい
フレームワークの性能が悪くて遅いCakePHPなどとは一緒にしてはいけない
0411nobodyさん2014/06/14(土) 13:16:46.10ID:???
>>410
Rubyやアプリケーションサーバが覿面に効いてくるのは相当のアクセス数がある場合だけだよ
たいていはDBアクセスがネック
0412nobodyさん2014/06/14(土) 13:25:48.62ID:???
>>410
RubyはJSON処理やアルゴリズム系は速いが
DBアクセスのライブラリなどが糞だと有名だな
0413nobodyさん2014/06/14(土) 13:59:30.64ID:???
ActiveRecordはお手軽だがパフォーマンスめっさ悪そう、とチュートリアルやりながら思ってた
0414nobodyさん2014/06/14(土) 14:11:20.22ID:???
某有名FWの比較ランキングを見ると
JSONに変換して返すだけの計測は健闘しているけども
DBが絡むとボロボロな結果が出てるよね
0415nobodyさん2014/06/14(土) 14:13:35.20ID:???
>>412
RubyのDBアクセスライブラリはほとんどCライブラリのラッパだよ
それがクソってことはCライブラリがクソってことかいな?

>>413
SQLでもパフォーマンスを出すためにはテクニックが必要なように、
ActiveRecordもパフォーマンスを出すにはそれなりのコツは要るね
0416nobodyさん2014/06/14(土) 14:42:10.53ID:???
丁度ActiveRecordのパフォーマンスの話が上がってるから教えてください。下記のやり方でサイト内メッセージシステムを実装しています。
「メッセージ受信ページ」を開くと、たった10件表示するだけなのに4秒近くかかります。
コードがシンプルなはずなのにページのローディングが遅すぎて問題点も特定できません。どこがネックになっているか分かる方はいらっしゃいませんか?

gem「mailboxer(https://github.com/mailboxer/mailboxer)」
 -notifications 10万レコード
 -conversations 10万レコード(上記テーブルと対にしている)
 -receipts    20万レコード(上記テーブルにぶら下がる。つまり1つのconversations(メッセージ)に対し「送信者」と「受信者」の2レコードがぶら下がる)
上記3テーブルから構成。メッセージのやりとりを可能にするgemが「mailboxer」

これを利用して現在ログイン中の受信メッセージを表示する時に下記のように記述しています。

【コントローラ】
@messages = current_user.mailbox.inbox.page(params[:page]).per(10)

【ビュー】ここで表示しているのは送信者の名前と、送信者のプロフィールページへのリンク。題名とメッセージ詳細ページへのリンク。それと受信日時くらい

<% @messages.each do |m| %>
 <tr <%= 'class=unread’ if m.is_unread?(current_user) %> >
  <td><%= check_box_tag "id[]",m.id %></td>
  <td>
   <% if m.is_read?(current_user) %>
    既読
   <% else %>
    未読
   <% end %>
  </td>
  <td> <%= profile_link(m.last_sender) if m.last_sender != current_user %><%= "自分" if m.last_sender == current_user %> </td>
  <td><%= link_to m.subject, show_messages_path(:id => m) %></td>
  <td><%= today_datetime(m.last_message.created_at) %></td>
 </tr>
0417nobodyさん2014/06/14(土) 14:47:48.74ID:???
>>416
細かくは見てないが N+1 問題じゃなかろうか
詳しくはぐぐればいっぱい出てくる
0418nobodyさん2014/06/14(土) 14:48:14.31ID:???
>>415
mysqlでlibmysql以外のC実装のものを教えてください
0419nobodyさん2014/06/14(土) 14:53:41.79ID:???
>>417
include付ければいいだけってこと?
0420nobodyさん2014/06/14(土) 14:55:44.27ID:???
>>419
もし N+1 問題が原因ならね
0421nobodyさん2014/06/14(土) 14:57:11.55ID:???
>>416
まずはログを見よう
そして原因を突き止めるのが先決だ
0422nobodyさん2014/06/14(土) 15:04:12.96ID:???
>>420
とりあえず簡単に試せそうだからやってみた

@messages = current_user.mailbox.inbox.page(params[:page]).per(10).includes(:profile)

としたら下のエラーが出たよ
Association named 'profile' was not found; perhaps you misspelled it?)


テーブル名は100%間違えていない
profileテーブルはuserテーブルに属していて「nickname」などのカラムを持つ

なぜエラーになるんだorz
0423nobodyさん2014/06/14(土) 15:13:23.21ID:???
>>418
俺も興味ある

mysql2だとライセンス問題あるからね
0424nobodyさん2014/06/14(土) 19:49:20.60ID:???
>>422
複数形試してみて
0425nobodyさん2014/06/14(土) 22:33:19.14ID:???
>>424
全く同じエラーが出てます
0426nobodyさん2014/06/14(土) 23:41:06.34ID:???
RailsってMySQLに対してPostgreSQLの採用比率が
他の言語、フレームワークより高いみたいね
特に海外で

herokuが理由かね?
0427nobodyさん2014/06/15(日) 06:42:29.71ID:4wiy7qvn
「新版リリースのたびに他製品を選ぶ理由が薄れる」--PostgreSQL開発者インタビュー(前編) - ZDNet Japan
http://b.hatena.ne.jp/entry/japan.zdnet.com/business-application/sp/35049207/
0428nobodyさん2014/06/15(日) 18:32:22.22ID:???
「MySQLが技術的なギャップを縮めてきているものの、PostgreSQLは優秀で人気がある」
http://www.computerworld.jp/topics/601/

MySQLにはDDLトランザクション処理がないので、
http://www.infoq.com/jp/news/2009/05/heroku-provisionless-revolution

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.4.2 ロールバックできないステートメント
http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html
0429nobodyさん2014/06/15(日) 18:34:46.84ID:???
MariaDB 10登場 - Google/Wikipediaら、採用相次ぐ - エキサイトニュース
http://www.excite.co.jp/News/column_g/20140402/Cobs_49962.html

バグ報告に対するMySQL(Oracle)とMariaDBの対応の違い | スラッシュドット・ジャパン オープンソース
http://opensource.slashdot.jp/story/13/09/11/0431225/バグ報告に対するMySQL(Oracle)とMariaDBの対応の違い
0430nobodyさん2014/06/15(日) 21:18:37.12ID:???
mysqlはphpが大好きでphpにだけ特権を与えてるのは有名な話

しかしphpにはフラレて
mysqlへの接続でGPLでないCライブラリが使えるのはphpだけってのも有名な話
0431nobodyさん2014/06/15(日) 23:58:13.28ID:???
はい、mysql叩きが始まりました
0432nobodyさん2014/06/16(月) 17:42:43.28ID:???
mariaにしたらlibmysqlから解放されるの?
0433nobodyさん2014/06/16(月) 18:24:31.83ID:???
socket経由なら関係ないだろ。
0434nobodyさん2014/06/16(月) 18:44:58.58ID:???
>>433
突然socket経由とは何ぞや
0435nobodyさん2014/06/16(月) 18:53:02.87ID:???
Railsの作者DHH、ルマン24時間耐久レース アマの部で勝利 | A-Listers
http://tech.a-listers.jp/2014/06/16/dhh-won-lemans/
0436nobodyさん2014/06/16(月) 20:07:18.06ID:???
gem のcancanってmodelの構造がほぼ同じものを役割のみで分けるために使うものですか?

modelのカラムが全然違うものを無理やりくっつけて、cancanを使うと変になりますか?

model

 ・admin
 ・operator

に分ける場合、役割だけが違う。modelの基本的なカラムは大体同じ



 ・human
 ・dog
 ・bird

に分ける場合、基本的なカラムが違う。
これをcancanで分けると、、なんか難しくなる。

ちゃんと説明できてますでしょうか。。
0437nobodyさん2014/06/16(月) 20:10:14.89ID:???
ふげー分かりにくい説明だ
0438nobodyさん2014/06/16(月) 20:50:56.20ID:???
Twitterで言う通知メール(フォローされましたとか)をいい感じにラップしたgemないですか?
一個一個送信処理書けばそれでいいってのはそうなんですが
0439nobodyさん2014/06/17(火) 02:21:46.07ID:/dvue0X5
rails4.1+rspecのプロジェクトで初めてGuardをやって見てるんだけど、
ただINFO:Runnningテストファイル名しか表示されなくて、肝心のテスト結果がわからないんだけど、
これってどういうことなの?
0440nobodyさん2014/06/17(火) 11:52:40.62ID:???
受託開発でmysql2を使っているのですが
何かライセンス問題があるのでしょうか?
MITライセンスですよ
0441nobodyさん2014/06/17(火) 13:09:28.88ID:???
>>440
http://nippondanji.blogspot.jp/2009/05/foss-license-exception.html
0442nobodyさん2014/06/17(火) 23:45:27.91ID:???
Twitter作ってるんですが
フォローしてるユーザーのタイムラインの表示ってかなり時間かかっちゃうと思うんですがいい方法ありませんか?

User
id:
account:

Follow
id:
user_id:
follow_id:

Tweet
id:
text:
user_id:

こんな感じのDBだとして
user_ids = Follow.where(user_id: session[:user_id]).select("follow_id")
tweet_list = Tweet.where(user_id: user_ids).order("id DESC")
こういうふうに取得してるんですが取得するデータが増えてくるとめちゃくちゃ重くなります
0443nobodyさん2014/06/17(火) 23:52:47.83ID:???
>>442
log見れば発行されてるSQLが出てるので、それを持ってDB板へGo!
0444nobodyさん2014/06/18(水) 00:03:18.88ID:???
>>443
ありがとうございます行ってみます
0445nobodyさん2014/06/18(水) 08:48:35.40ID:???
ひどい誘導だ
0446nobodyさん2014/06/18(水) 11:01:55.47ID:???
>>441
受託開発でもmysqlを使用するだけであればライセンスは問題ないと思っていました

大体をライセンス譲渡としているので問題なさそうです。他はGPLにすれば良さそうです。無理ならばmysql2をやめる選択でしょうか
0447nobodyさん2014/06/18(水) 12:03:49.47ID:???
>>442
答えが>>388に載ってる
0448nobodyさん2014/06/18(水) 15:16:09.61ID:???
>>447
DBでやってることとRedisでやってることを同一視してそれで解決ってアホか
0449nobodyさん2014/06/18(水) 15:32:05.66ID:???
つまり、
- 8台のSun X4100s
- 16GBの memcached
で解決かw
0450nobodyさん2014/06/18(水) 15:33:31.99ID:???
これ遅いんだけど→スパコン使えばいい(ドヤ顔
こんなレベル
0451nobodyさん2014/06/18(水) 17:50:58.41ID:???
ぶっちゃけカリカリにチューニングするために人雇うより金で鯖買ったほうが安いことはよくある
0452nobodyさん2014/06/18(水) 19:35:39.49ID:???
今はサーバ買うより、クラウドだな。
0453nobodyさん2014/06/18(水) 19:39:56.36ID:???
DBの件数が問題で遅いに対して、何を言ってるんだ
0454nobodyさん2014/06/18(水) 23:26:49.31ID:???
>>442について俺も知りたい
レコード件数が10万とかに増えてきたらredisとか使わないとダメなの?


ActiveRecordで抽出するときにparams[:page]
使おうが軽くはならない?
0455nobodyさん2014/06/18(水) 23:41:33.82ID:???
>>454
IN使ってるのが問題ってだけだろうね
0456nobodyさん2014/06/18(水) 23:44:54.90ID:???
>>455
どういう書き方すればいいの?
0457nobodyさん2014/06/18(水) 23:51:31.49ID:???
>>456
arelでexistsかjoinで書けば良いんじゃない
0458nobodyさん2014/06/19(木) 02:07:11.41ID:iQHtmoMn
殺伐としすぎでワロタwやっぱ専門板はこうでないとな
雑談系板に立つプログラミングスレとはえらい違いだよ



wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0459nobodyさん2014/06/19(木) 09:42:42.87ID:???
チューニングの余地はいっぱいあるし、この程度の件数で遅いのは確実になおせる
0460nobodyさん2014/06/19(木) 10:10:23.05ID:???
>>459
ちょっと気になったんだけどどこにチューニングの余地あんの?
Twitter社もこの方法では1000ms以内に結果返すの無理だからって理由で断念して違う手法とったんだが
0461nobodyさん2014/06/19(木) 10:12:46.71ID:???
>>460
何桁違うと思ってるんだよ
0462nobodyさん2014/06/19(木) 10:24:29.06ID:???
>>461
どう考えてもこれは桁の問題じゃないだろ
10万件程度のデータでもメモリに載り切らなくなるのはわかりきってるしTwitterみたいに大きくないから大丈夫なんて言える問題じゃない
0463nobodyさん2014/06/19(木) 10:26:31.68ID:???
メモリに乗るかどうかで判断してるのはDB触ったことないんだろうな
0464nobodyさん2014/06/19(木) 10:29:14.49ID:???
とにかく、データが増えて遅くなったと言ってるやつのほとんどは
SQLでIN使ってる
0465nobodyさん2014/06/19(木) 10:39:29.92ID:???
>>463
横からで悪いんだが今回のケースではどうしても巨大なデータをソートすることになるよね?
>メモリに乗るかどうかで判断してるのはDB触ったことないんだろうな
の意味がわからないから是非教えて欲しいんだけど
0466nobodyさん2014/06/19(木) 10:47:48.37ID:???
おまえら
SQLスレで解決したのになにをやっている

6桁解決だぞ
0467nobodyさん2014/06/19(木) 10:59:10.34ID:???
>>466
じゃあその解決したレスのURLぐらい晒せやボケが。
0468nobodyさん2014/06/19(木) 11:53:09.08ID:???
彼は解決したって書いてるけどjoinを使うことでサブクエリが先に消化されてソート対象がメモリ上に乗るサイズになっただけで結局もっと数が増えたらメモリに乗らなくなってまた遅くなるよ
だからこの問題に関しては>>462が正解
0469nobodyさん2014/06/19(木) 12:02:54.22ID:???
>>468
SQLの勉強からやり直した方が良いよ

>結局もっと数が増えたら
これが桁の問題だろ。>>462は間違い
0470nobodyさん2014/06/19(木) 12:10:39.42ID:???
突然出て来てるソートって何ぞ?
0471nobodyさん2014/06/19(木) 12:10:54.46ID:???
間違ってる間違ってるとは喚くけれど何が間違ってるのかも指摘せず
使ったことがない、勉強しなおせと一方的なレッテル貼り
でも正しい答えは書けない

面白いなあ
0472nobodyさん2014/06/19(木) 12:11:56.28ID:???
>>470
お前みたいな素人が来る場所じゃないからSQLの勉強からやり直した方が良いよ
0473nobodyさん2014/06/19(木) 12:16:14.72ID:???
>>472
何ぞ?
0474nobodyさん2014/06/19(木) 12:19:42.81ID:???
>>469
その会話はTwitterみたいな”ケタ違い”じゃなくても普通のサイトの規模でも簡単に起こるレベルの問題かどうか 
が論点なわけだろ?>>462が言ってるのであってんじゃんお前の読解力がないだけじゃないの

ID出るようにしろよ面倒くさい
0475nobodyさん2014/06/19(木) 12:37:46.53ID:???
10万件でデータサイズどれくらいになると思ってるんですかね。
まさか OR/M に乗っかったときの話なんてしてないよね?
0476nobodyさん2014/06/19(木) 12:43:39.91ID:???
>>474
根本の論点、遅くなってる理由がソートでなくてINだよ
0477nobodyさん2014/06/19(木) 12:47:57.82ID:???
転載
>ご指摘どおり joinへの置換えを行った所
>10000ms→4000ms→0.04msまで落ちました
0478nobodyさん2014/06/19(木) 13:50:43.06ID:???
0.04msってどんなスパコンだよ
0479nobodyさん2014/06/19(木) 14:05:21.42ID:???
計測不能w
0480nobodyさん2014/06/19(木) 14:28:05.92ID:???
mysqlの単位ってsecだよな
40msか
妥当なところ
0481nobodyさん2014/06/19(木) 17:13:20.21ID:???
なにこのスレ。IDでないからってどんだけ自演してんだよ。
0482nobodyさん2014/06/19(木) 17:14:31.41ID:???
railsの酷さとrailsユーザの酷さが一目瞭然なスレだと聞いて飛んできました。
0483nobodyさん2014/06/19(木) 18:18:58.48ID:???
これが煽りおしえて君だ
0484nobodyさん2014/06/19(木) 19:33:58.60ID:???
>>463=>>466
誤魔化そうと必死
0485nobodyさん2014/06/19(木) 19:55:05.90ID:???
>>480
対象テーブルが50万件で40msか。妥当かちょっと遅いか。
まぁいいんじゃないって感じがするね。
0486nobodyさん2014/06/19(木) 20:41:42.67ID:???
一人だけ状況がわかってない奴がいるっぽいな
0487nobodyさん2014/06/19(木) 22:08:57.26ID:???
>>482
Railsがひどいんではなく、それを使いこなそうとしないで文句言ってる奴がひどいだけ
今回の件も自分の希望の回答が得られなかったから騒ぎ立てるいつもの煽り教えて君でした
というだけの話
0488nobodyさん2014/06/19(木) 22:26:15.09ID:???
RailsスレでSQLのチューニングの話をすると
誰もついてこれなくて発狂するっていうのは定説だろ。

過去にも同じことがあっただろ。
0489nobodyさん2014/06/19(木) 22:35:44.39ID:???
>>488
バッカだなぁ

SQLスレでこういう回答が得られました
これを実現するにはRailsでどうすればいいですか?

と素直に聞けばまともな回答がとっくに得られてたはずなのに、
「SQLスレでこういう回答があった。はじめからこういうSQLを発行しないRailsはクソ!」
なんて自分のコードが悪いという可能性を1ミリも考えない態度だから荒らし教えて君なんだよ
0490nobodyさん2014/06/19(木) 23:41:11.32ID:???
>>489
大丈夫??

>>462から一人で書き込んでるよね?
0491nobodyさん2014/06/20(金) 04:17:45.22ID:???
PHPスレにちょいちょいRuby派の人がくるんだけど、このスレも大概ひどいね
0492nobodyさん2014/06/20(金) 09:21:10.54ID:???
>>484 は正しい指摘した奴を否定してるのは
間違ってわめいてたからか
0493nobodyさん2014/06/20(金) 09:42:49.59ID:???
>>489の何がひどいって、質問者に責任を擦り付けてるところ
妄想でな
0494nobodyさん2014/06/20(金) 09:47:48.90ID:???
ちなみに質問したの自分なんですが、件数を100万件に増やしたら遅くなってしまったので結局その部分をAjaxで知恵っm読込することでごまかしました
0495nobodyさん2014/06/20(金) 09:56:54.16ID:???
>>494
mysqlのバージョンって5.6ではないよね?
0496nobodyさん2014/06/20(金) 09:58:50.73ID:???
>>495
mysql Ver 14.14 Distrib 5.1.73, for debian-linux-gnu (x86_64) using readline 6.1
0497nobodyさん2014/06/20(金) 11:09:49.37ID:???
>>496
ありがとう
0498nobodyさん2014/06/21(土) 00:27:39.08ID:0sjmaigu
bookmark とfavorite
どちらが国際的なサイトに有利だと思う?
0499nobodyさん2014/06/21(土) 00:31:06.09ID:???
「国際的なサイト」ってなんだよ
0500nobodyさん2014/06/21(土) 00:33:50.02ID:0sjmaigu
>>499
twitterとかfacebookとか多言語展開するサイトだよ
0501nobodyさん2014/06/21(土) 00:36:58.46ID:???
「多言語展開」ってなんだよ
もうちょっとスレに沿った形で咀嚼してくれよ
0502nobodyさん2014/06/21(土) 00:40:13.53ID:0sjmaigu
その規模作ったことなさげな君の意見はいらんよ
小人はスレ違いとかほざいとけ。たかがRoRごときでいつまで住み着いてんだよw手段にすぎないのに
この質問は簡単に見えて英語はもちろん幅広な教養が必要だから、お前みたいに糞みたいな聞き返ししてる時点で対象外
頭悪いから手段の所しか見させられてない雑魚が、無駄な質問してんじゃねえよ
0503nobodyさん2014/06/21(土) 00:40:57.33ID:???
これが煽り教えて君か
0504nobodyさん2014/06/21(土) 00:45:01.14ID:0sjmaigu
>>503
お前みたいなゴミから教わることなんかねえよw
お前は雇われ、俺は雇う方
頭の違い、格の違い、わかるかな?

英語すらまともにできないクズ野郎が、こういう話題に乗ってきちゃあかんよ
何にも付加価値ないからw
誰か我こそはレベル高いって奴がいたら意見書いといて。
参考にしてやるかもしれないから。
ドメ仕事ばっかりやってる>>503みたいなゴミ野郎の意見はいらねえからw
お前等もそんな時間の無駄するより、簡単なRoR極めるために全時間使っとけよw
0505nobodyさん2014/06/21(土) 00:47:44.23ID:???
> 誰か我こそはレベル高いって奴がいたら意見書いといて。
> 参考にしてやるかもしれないから。
これだけ暴言吐いておいて質問に答えてくれることを期待してるとしたら、
おめでたいにも程がある
0506nobodyさん2014/06/21(土) 00:54:07.65ID:0sjmaigu
>>505
期待なんかしてねえよはなから
ここは英語もまともにできないドメ野郎が多いからな
簡単なRoRに定住してる時点でたかがしれてんだよ

元から自分で調査中で、念のためここでも意見募ったが、
案の定お前みたいな安月給のクズが、何の価値もないセリフ吐くだけだったわw
期待通りだなw
またそのうち覗いてやるから、まともな頭の奴が存在してたら意見かいとけよ
採点してやるから
0507nobodyさん2014/06/21(土) 00:54:59.03ID:???
期待してない割にはレスがすぐ返ってくるなww
0508nobodyさん2014/06/21(土) 01:01:17.44ID:???
>>462から始まったレベルの低い話を改善する救世主は現れんのか
0509nobodyさん2014/06/21(土) 04:05:07.18ID:???
>>500
多言語展開って、たとえば英語についてはその二つで考えてるんでしょ?
タイ語だと何にしようと思ってるの?
0510nobodyさん2014/06/21(土) 04:09:19.78ID:???
>>504
> 元から自分で調査中で
↑って↓ってこと?
> 英語すらまともにできないクズ野郎
0511nobodyさん2014/06/21(土) 08:11:59.00ID:???
久しぶりに有名半コテが登場してるな
0512nobodyさん2014/06/21(土) 12:08:39.96ID:???
>>508
その件を質問したのは自分です、荒れてしまってすいません……

流れをかえる……それならみなさんが普段使ってるgemなど教えて頂けませんか?
ominiauthとかdeviceとか超有名なものは分かるのですが
意外と知られてない(かも)けれどこれ便利だよーみたいな

自分は
BetterError
https://github.com/charliesome/better_errors

Railsのエラー画面がすごく見やすくなるのでデバッグがしやすくなります
0513nobodyさん2014/06/21(土) 12:22:09.30ID:???
>>512
pry かわいいよ pry

今更だけど、元質問に関しては hmt を使えばいいんじゃないかなーと思う
0514nobodyさん2014/06/21(土) 13:58:17.02ID:???
自分は
devise
cancan
mailboxer
rails autocomplete
acts as taggable
acts as votable
recaptch
simple captcha
paperclip
bullet
bootstrap
jquery

ここらへんは絶対に使う
0515nobodyさん2014/06/22(日) 11:21:11.60ID:???
流れを変えるためにあえて質問しますが、なんでいまさらRubyなんか使わなきゃいけいんですか?
Ruby厨の凝り固まった意見が聞きたいです
0516nobodyさん2014/06/22(日) 11:24:24.18ID:???
俺はPerl派なんだが、会社の凝り固まった方針でRuby使わされてる。全くつまらない日々だな。
gem、とか単に「ジェム」って言いたいだけだろ。
どう考えてもcpanmのほうがスマート。
0517nobodyさん2014/06/22(日) 11:24:54.54ID:???
>>515
じゃあ何使えばいいんでしょうか?
あなたの思う最強の言語とやらを教えて下さい
0518nobodyさん2014/06/22(日) 11:25:24.31ID:???
node.jsに1票
0519nobodyさん2014/06/22(日) 11:26:59.00ID:???
(救世主現る)
0520nobodyさん2014/06/22(日) 11:30:00.00ID:???
>>515-519
一人で何やってんの?
0521nobodyさん2014/06/22(日) 12:09:57.20ID:???
さぁようやく2chっぽい流れになってきました
0522nobodyさん2014/06/22(日) 12:53:13.08ID:???
流れをぶった切ってごめん

�@5秒に1回ajaxでリロードかけて内容を表示更新してる部分がある

�Aコメントを投稿したら5秒待たずとも同じように表示更新がかかる

�Aのように投稿があったときには
投稿後に「投稿しました」とflashメッセージを更新部分に表示させて3秒でフェードアウトするようにしている。


�Aの投稿後、問題なくflashメッセージは表示され3秒後には消えるんだが
その直後の�@の定期更新がかかると再びflashメッセージが表示されて困ってる

この場合はどう制御したらいいの?
0523nobodyさん2014/06/22(日) 12:59:10.80ID:???
自動更新のajax読み込んでるところで
flashにnilいれればいいだけじゃない?
0524nobodyさん2014/06/22(日) 13:02:32.56ID:???
ソースさらしてもらわんとなんとも
0525nobodyさん2014/06/22(日) 13:52:29.71ID:???
すみません。コード必要ですね。

投稿後の表示更新はこんなかんじです

【Controller】
(コメントsaveのコード)
format.js do
 flash[:notice] = "投稿しました。"
 render 'sections/reload_after_post’
end

【View】
<div id="comment">
 <%= render 'sections/comment' %>
</div>

【reload_after_post.js.erb】
$('#comment').html("<%= j(render(:partial => 'sections/comment')) %>");

【sections/_comment.html.erb】
<% flash.each do |name, msg| %>
 <div id="flash_message">
  <div class="alert alert-<%= name == :notice ? "success" : name.to_s %>">
   <%= content_tag :div, msg.html_safe, :id => "flash_#{name}" if msg.is_a?(String) %>
  </div>
 </div>
<% end %>
(コメント表示のコード)
0526nobodyさん2014/06/22(日) 13:58:56.77ID:???
そんなことより、FamilyMartの「おとなのお味噌汁」の「あさりは」はマジで上手いぞ、おすすめ。cpanmとか言ってる場合じゃない
0527nobodyさん2014/06/22(日) 14:00:51.51ID:???
>>525の動きが「投稿後のflashメッセージ表示」で、この下のコードが5秒おきの表示更新になります。
【Controller】
def reload_part
 @comments = @section.comment_threads.order("updated_at DESC").page(params[:page]).per(10)
 @comment = @section.comment_threads.build
 respond_to do |format|
  format.js
 end
end

【View】
reloadPart();
function reloadPart() {
 $.ajax({
  url: “sections/reload_part?page=<%= params[:page] %>",
  type: "GET",
  dataType: "script",
 });
}

<% flash.each do |name, msg| %>
 <div id="flash_message">
  <div class="alert alert-<%= name == :notice ? "success" : name.to_s %>">
   <%= content_tag :div, msg.html_safe, :id => "flash_#{name}" if msg.is_a?(String) %>
  </div>
 </div>
<% end %>
(コメント表示のコード)

【reload_part.js.erb】
$('#comment').html("<%= j(render(:partial => ‘sections/comment')) %>");
setTimeout(reloadPart,5000);
0528nobodyさん2014/06/22(日) 14:36:09.95ID:???
>>527
だから

def reload_part
 @comments = @section.comment_threads.order("updated_at DESC").page(params[:page]).per(10)
 @comment = @section.comment_threads.build
flash[:error] = nil
flash[:notice] = nil
 respond_to do |format|
  format.js
 end
end

これでいいでしょ
0529nobodyさん2014/06/22(日) 15:06:45.23ID:???
>>528
解決しました
そんな単純なことで解決するとは・・・
ありがとうございました
0530nobodyさん2014/06/22(日) 15:25:21.50ID:???
>>528
と思ったら解決していませんでした
どうやら他のページに遷移したら
flash[:notice] = nil しているにも関わらず
空の状態でflashメッセージが表示されます(枠だけ)
0531nobodyさん2014/06/22(日) 16:48:08.55ID:???
>>526
「あさりは」とはなんぞや
0532nobodyさん2014/06/22(日) 18:41:24.73ID:???
>>530
<% flash.each do |name, msg| %>
 <% next if msg.blank? %>
 <div id="flash_message">
  <div class="alert alert-<%= name == :notice ? "success" : name.to_s %>">
   <%= content_tag :div, msg.html_safe, :id => "flash_#{name}" if msg.is_a?(String) %>
  </div>
 </div>
<% end %>

こんな感じで空だったら省けばええやん、対症療法的だけどソースコード追って根本的解決する元気が無いなら
これでごまかしとけばいいよ
0533nobodyさん2014/06/22(日) 20:09:06.06ID:???
前、受託開発でのmysql2の利用を悩んでたものだけど
mysqlスレにいい答えが載ってたよ
https://mariadb.com/kb/en/mariadb-client-library-for-c/

みんな、こういうのをいれてGPLとかにしなくて良いようにしてるんだね〜
驚いたよ
0534nobodyさん2014/06/22(日) 20:27:13.78ID:???
>>498-506
なにこいつwwwwwww
キモ過ぎてめっちゃワロタ
0535nobodyさん2014/06/22(日) 20:31:11.27ID:???
>>534
いちいちあげんなやカス。
0536nobodyさん2014/06/22(日) 20:32:53.23ID:???
RoR代表の>>506とか、まさにRoRのレベルを表してるな。
やっぱnode.jsが一番。
05375062014/06/23(月) 00:42:04.33ID:vkNI5Agn
レベルひくっw
土日遊びに行く金もないのかな?
bookmarkとfavoriteの件は定まったからもういいよ。君らの脳みそじゃ総合的な判断は難しいようだ。
技術要素であるRoRばっかりやっておきなwほんじゃなゴミども
0538nobodyさん2014/06/23(月) 02:18:53.51ID:???
(´∀`∩)↑age↑
0539nobodyさん2014/06/25(水) 04:32:32.03ID:VfeeFhnY
東京Node学園 - connpass
http://nodejs.connpass.com/
0540nobodyさん2014/06/25(水) 11:30:52.63ID:???
======== ここから ========
このスレはnode.jsスレになりました。
RoRの話題禁止です。
0541nobodyさん2014/06/25(水) 11:34:36.39ID:???
RubyやPython、Javaも1970年代のやり方が残っており、依然としてブロッキングシステムコールを使っています。それらの言語は文法だけが飾り立てられています。
http://www.publickey1.jp/blog/11/nodejs_node.html
0542nobodyさん2014/06/25(水) 13:49:07.16ID:???
>>537こそ1970年代の化石
0543nobodyさん2014/06/25(水) 23:02:42.03ID:???
つまり、Ruby≒Fortranということだな
0544nobodyさん2014/06/26(木) 00:42:45.95ID:???
とりあえずやっつけ仕事はRailsがベストだろ
0545nobodyさん2014/06/26(木) 01:43:45.13ID:???
Sinatraだろ。
0546nobodyさん2014/06/27(金) 00:27:44.31ID:Kfr04yi9
Ruby on Railsで作られた有名サイトの紹介 | PbTimes 情報誌
http://pb-times.jp/P_529d87c5b28d6
0547nobodyさん2014/06/27(金) 03:23:01.66ID:Kfr04yi9
Ruby - Railsが時代に合わなくなってきた - Qiita
http://b.hatena.ne.jp/entry/qiita.com/kaiinui@github/items/2781219340d427543d08
0548nobodyさん2014/06/27(金) 16:09:12.42ID:???
ページのレンダリング速度を測るのってどうすればいい?
before_filterの中で
@time =Time.now
してfooterでTime.nowとの差分とってみたんだけど値がマイナスになったりで数値が取れません
0549nobodyさん2014/06/28(土) 00:11:41.16ID:???
>>548
var start = Date.now();
// ...
// rendering...
// ...
var end = Date.now();
console.log("Elapsed: " + (end -start));

これでいいだろ。
そりゃ逆にひき算したらマイナスになるんでないかね。
0550nobodyさん2014/06/28(土) 00:31:50.47ID:???
>>548
Timeでusec使えば良いよ
他はDateもTimeも秒単位になってしまう

Railsが遅い象徴で秒を測らないとって意味なら自虐ねたとしてOK
0551nobodyさん2014/06/28(土) 03:51:09.36ID:???
レンダリングってどの部分のことを言ってるのやら
Railsのレンダリングならログ見りゃ一発なんだけど
0552nobodyさん2014/06/28(土) 09:27:19.49ID:???
マネーロンダリングの場合、ログに出てますかね?
0553nobodyさん2014/06/28(土) 09:41:37.73ID:???
>>549
それは上にも書いた通り試したのですがそれをやるとなぜか値がマイナスになったりプラスになったりします


>>550
やってみます

>>551
ログに出力される値をページ上に出力したいです
0554nobodyさん2014/06/28(土) 11:04:47.12ID:P+7Bvf6W
https://github.com/MiniProfiler/rack-mini-profiler
画面の左上に小さく、画面の処理時間を表示

http://qiita.com/natsu871/items/7034e945e4e1f3737d1c
0555nobodyさん2014/06/28(土) 14:16:20.62ID:???
画面と言われるとディスプレイ全体をイメージしてしまうな。
0556nobodyさん2014/06/29(日) 08:29:00.45ID:FLtC2iyW
https://twitter.com/ayumin/status/482689025619533824

herokuオフィス訪問 - satomicchyのつぶやき
ttp://satomicchy.hatenablog.com/entry/2014/06/29/042701
0557nobodyさん2014/06/29(日) 15:37:32.35ID:???
@communities = current_user.get_up_voted(Community)
@numbers = Number.includes(:user).where(:community_id => @communities.collect(&:id)).order("users.active_time_at DESC").page(params[:page]).per(10)

これだとロードし終えるまでに60秒ほどかかる
どうして?
current_userが所属しているコミュニティを取得して、そのIDを代入するのは時間はかかっていない。
取得した「Numberレコードの所有者」の「active_time_at(関連するUserテーブルの項目)」で並び替えようとすると
異常に時間がかかっている模様。

@communities = current_user.get_up_voted(Community)
@numbers = Number.includes(:user).where(:community_id => @communities.collect(&:id)).order("created_at DESC").page(params[:page]).per(10)
だと2秒もかからないのに

何かいい方法ってありますか?
0558nobodyさん2014/06/29(日) 15:39:44.67ID:???
ちなみにテーブルとアソシエーションは以下のとおりです

User: has_many Communities, has_many Numbers
Community: belongs_to User, has_many Numbers
Number: belongs_to User, belongs_to Community
0559nobodyさん2014/06/29(日) 15:55:42.15ID:???
>>557
過去ログ読め
データ数ぐらい書け
DBのバージョンぐらい書け
0560nobodyさん2014/06/29(日) 16:03:58.70ID:???
とりあえず hmt 試そう
0561nobodyさん2014/06/29(日) 16:05:05.56ID:???
>>559
申し訳ない

User: 20,000レコード
Community:100レコード
Number:10,000レコード
ってんかんじで

DBはMySQL5.1.69です
0562nobodyさん2014/06/29(日) 16:21:27.81ID:???
>>561
inを使ってるのが問題だから
>>560が言うとおり、hmtを試してくれ

もう一つは、MySQL5.1.69じゃ遅いよ
0563nobodyさん2014/06/29(日) 16:32:16.95ID:???
>>562
hmtを試すとは?

それとMySQLのバージョン違いでそんなに遅いもんなんですか?
Rails3.2.11を利用しています
0564nobodyさん2014/06/29(日) 16:42:22.31ID:???
>>563
とは?じゃねーだろ
知らないならまずぐぐれ
0565nobodyさん2014/06/29(日) 16:50:28.46ID:???
>>564
hmtだけでググりましたが
それだけだと抽象的な検索結果しか出てこなくて
何をどうhmtと紐づければいいか分かりません
0566nobodyさん2014/06/29(日) 16:52:52.42ID:???
>>565
rails hmt でぐぐれ
0567nobodyさん2014/06/29(日) 17:13:52.73ID:???
>>566
ありがとう。
rails hmtでググっても今回の件に該当するようなページが出てきませんでした。
rails hmt inも試しましたが同様・・・
0568nobodyさん2014/06/29(日) 17:15:44.15ID:???
>>567
rails hmt でぐぐったんなら hmt とはなんぞや?が分かっただろう
だったら hmt を試すことはできるはずだ

分かってないのに言ってるなら今すぐ死ね
0569nobodyさん2014/06/29(日) 17:18:02.95ID:FLtC2iyW
Railsライブラリ紹介: N+1問題を検出する「bullet」 TECHSCORE BLOG
http://www.techscore.com/blog/2012/12/25/rails%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E7%B4...
0570nobodyさん2014/06/29(日) 17:18:39.11ID:FLtC2iyW
http://www.techscore.com/blog/2012/12/25/railsライブラリ紹介-n1問題を検出する「bullet」/
0571nobodyさん2014/06/29(日) 17:37:23.16ID:???
Javascriptを使うのをやめろ:Railsの時代遅れ云々についての結論 - Qiita
http://qiita.com/kaiinui@github/items/dad6180f1910c6a4bfd5

Ruby - Railsが時代に合わなくなってきた - Qiita
http://qiita.com/kaiinui@github/items/2781219340d427543d08
0572nobodyさん2014/06/29(日) 17:54:43.82ID:???
調べて分からないやつは死ね
Railsに触れるな
0573nobodyさん2014/06/29(日) 19:22:12.06ID:???
hmtなんて誰も使わないような単語だしてドヤ顔とかほんとにレベル低いな
rails has_many throughでググるといいよ
0574nobodyさん2014/06/29(日) 20:38:51.70ID:???
>>573
場違いな回答おつ!
0575nobodyさん2014/06/29(日) 21:29:38.05ID:???
>>568,572
なんでRailsにはこう言う変なのが多いのかね?
N+1問題とか、Rails使わなきゃ絶対遭遇しないだろ。糞ライブラリで馬鹿みたいに隠蔽してっからんなザマになんだよ。

ということでRails終了。
0576nobodyさん2014/06/29(日) 21:31:02.84ID:???
>>575
N+1問題はORM使ってたらどこにでも発生しうる問題
ActiveRecordに限った話でもなんでもない

ということで>>575はバカ
0577nobodyさん2014/06/29(日) 21:33:21.79ID:???
>>566
r: ライオンが
a: あくびをしたら
i: いい感じ
l: LDKが
s: サバンナ状態

h: ハッハッハと笑いが止まらん
m: またこいつだよ例の奴だよ
t: とっとと消えろ
0578nobodyさん2014/06/29(日) 21:33:59.47ID:???
特にRailsが、ひどいという話だが
0579nobodyさん2014/06/29(日) 21:35:50.69ID:???
>>578
Hibernate N+1 でぐぐったらわらわら出てくるんですが
0580nobodyさん2014/06/29(日) 21:52:10.65ID:???
O/Rマッパ使わなきゃいいだけの話では。生SQLでやれ
0581nobodyさん2014/06/29(日) 21:53:16.33ID:???
>>573
ありがとうございます。hmtってhas_many throughの略だったんですね。。。。
ここでいうNumberテーブルは中間テーブルというわけではありません。
用途を具体的に言えば

User(会員)-Number(電話番号)-Community(携帯キャリア)
のようなかんじです

会員Aさん、Bさん、Cさんがいたとして

Aさんは ドコモ、ソフトバンクの携帯を所持。それぞれの番号(Number)が
090-1111-1111、090-2222-2222

Bさんは auとソフトバンクを所持。それぞれの番号(Number)が
090-3333-3333、090-4444-4444

Cさんは ドコモとauとソフトバンクを所持。それぞれの番号(Number)が
090-5555-5555、090-6666-6666、090-7777-7777

のようなかんじなので、どちらかというと
@numbers = @user.numbers(会員が持つ複数の電話番号一覧)だったり @numbers = @community.numbers(携帯キャリアごとの電話番号一覧) のような使い方をして
number(電話番号)をUserのshowページ)や、Communityのshowページで一覧して表示しています。

@communities = current_user.get_up_voted(Community)
ここでは @numbersを取得するので@numbers = @communities.codes.page(params[:page]).per(10)としても
「undefined method 'codes'」というエラーになりますね
0582nobodyさん2014/06/29(日) 21:55:02.72ID:???
>>581
> ありがとうございます。hmtってhas_many throughの略だったんですね。。。。
rails hmt でぐぐればそれぐらい一発で分かる話なんだが、こいつほんとにぐぐったのかね?
0583nobodyさん2014/06/29(日) 22:03:21.92ID:???
あーあ、こんなとこで電話番号晒しちゃって
0584nobodyさん2014/06/29(日) 22:50:31.90ID:???
hmtって出るたびになんでこんなに荒れるん?
0585nobodyさん2014/06/29(日) 22:58:17.10ID:???
>>584
多分概念的に若干難しいから手取り足取り教えて欲しい人にはハードルが高いからだろうね
0586nobodyさん2014/06/29(日) 23:14:55.78ID:???
>>585
DBの人から見るとテンプレに載るほど簡単なレベルみたいだけど?
0587nobodyさん2014/06/29(日) 23:27:29.83ID:???
>>586
SQLは上級者向け言語ですから(キリッ
0588nobodyさん2014/06/29(日) 23:29:56.46ID:???
>>581を見ると一般的なhmtの使い方をしてなさそうだが
0589nobodyさん2014/06/30(月) 01:56:18.43ID:???
>>571
要するにあほだな
0590nobodyさん2014/06/30(月) 07:20:11.22ID:???
すべてはJSONになる

Google Apps Unscripted, March 14, 2014
https://www.youtube.com/watch?v=E1CzPtUKWkw

Apps Script Crash Course - Script Editor
https://www.youtube.com/watch?v=ezbH4IJynhU

Google I/O 2012 - Use What You Know: HTML and JavaScript in Apps Script
https://www.youtube.com/watch?v=tcl24asytos

Your First Script - Apps Script Tutorials
https://www.youtube.com/watch?v=Pgfbl_o9WvM
0591nobodyさん2014/06/30(月) 08:08:53.97ID:???
>>584-588
一人でなにしてんの?
0592nobodyさん2014/06/30(月) 08:46:11.40ID:???
一人だったんだ
0593nobodyさん2014/06/30(月) 08:50:39.79ID:???
運用板で確認したらマジで一人の自演でくっそわろたwwwwwwwwww
0594nobodyさん2014/06/30(月) 09:34:06.17ID:???
>>593
運用版みれるんだすごいな
0595nobodyさん2014/06/30(月) 11:13:18.26ID:???
ニコ生に誰がどの生放送に対してコメントしているのかっていうのは全て保存されていて、誰でも検索出来ますっていう話*ホームページを作る人のネタ帳
http://b.hatena.ne.jp/entry/e0166.blog89.fc2.com/blog-entry-1174.html
0596nobodyさん2014/06/30(月) 12:17:09.64ID:STnXsq+3
この板IDつかないのか
0597nobodyさん2014/06/30(月) 12:46:14.05ID:???
sageなきゃつくよ
0598nobodyさん2014/06/30(月) 22:59:59.83ID:???
application_helper内で
@user = User.find(1)
みたいにActiveRecordを使うのは無理なんかな?
0599nobodyさん2014/06/30(月) 23:02:37.59ID:???
やってみりゃ分かるよ
0600nobodyさん2014/06/30(月) 23:38:51.22ID:???
無理だった
なんで
0601nobodyさん2014/07/01(火) 01:08:38.25ID:nJV1b0sU
php
0602nobodyさん2014/07/01(火) 01:54:38.36ID:???
ぺちぱー
0603nobodyさん2014/07/01(火) 07:23:18.33ID:???
>>600
「無理だった」だけじゃ理由なんてみんな分からんよ
0604nobodyさん2014/07/01(火) 12:57:15.67ID:???
>>600
言葉遣いが悪くて、返答する気持ちが全然おきない。
0605nobodyさん2014/07/01(火) 20:55:47.96ID:XzNxeXAu
>>581
has_namy through を使うと、>>558 は以下のようになるね
(>>558 の Community: belongs_to User は謎)

Users:
 has_many Numbers
 has_many Communities through Numbers
Communities:
 has_many Numbers
 has_many Users through Numbers
Numbers:
 belongs_to Users
 belongs_to Communitys

詳しくは以下のページの「2.4 The has_many :through Association」を参照
・Active Record Associations - Ruby on Rails Guides
 http://guides.rubyonrails.org/association_basics.html
他にも様々な関連(アソシエーション)があるから、目的に合ったものを選ぶこと

で、Numbers の user_id と community_id にインデックスを設定すれば、
>>561 で示されたような(たかだか)数万件のデータ量であれば、
>>557 にあるような60秒の応答時間にはならないハズだけど....
もしも応答時間に変化が無ければ、Rails以外に問題があると思う
0606nobodyさん2014/07/03(木) 01:04:37.84ID:???
JSON
0607nobodyさん2014/07/03(木) 01:09:59.72ID:???
>>605
mysqlの問題だよ
5.6はわからんけど
5.5まではjoinとかサブクエリとかINとか使ったら遅くて使い物にならん
0608nobodyさん2014/07/03(木) 01:22:03.64ID:???
じゃあバージョン上げりゃいいじゃん
0609nobodyさん2014/07/03(木) 21:27:15.30ID:lAObJFwK
>>607
MySQL 5.5 のリリース開始が2011年頃で
しかも has_many through は
すでに Rails 1.0 で実装されていた
そんな3年前のありふれたソフト構成で、
たかが数万件の検索に数十秒を要する性能問題の原因が
MySQL にあるとは考えられない
0610nobodyさん2014/07/03(木) 23:01:26.64ID:???
故にRailsは糞、だろ
0611nobodyさん2014/07/03(木) 23:04:48.64ID:???
はいはい、お薬多めに処方しておきますね
0612nobodyさん2014/07/03(木) 23:33:56.46ID:???
>>609
MySQLの遅いポイントは有名だけどよ。
そんな少ない件数で起きる話ではないよな。
0613nobodyさん2014/07/04(金) 00:51:43.59ID:???
で?結論はなんなのよ
0614nobodyさん2014/07/04(金) 02:49:53.83ID:???
MySQL vs Rails の対決が見れると聞いてやってきました
0615nobodyさん2014/07/04(金) 02:51:48.01ID:???
このスレの殺伐感。たまんないね。
0616nobodyさん2014/07/04(金) 04:52:28.37ID:iiWE9XVi
「新版リリースのたびに他製品を選ぶ理由が薄れる」--PostgreSQL開発者インタビュー(前編) - ZDNet Japan
http://b.hatena.ne.jp/entry/japan.zdnet.com/business-application/sp/35049207/


「MySQLが技術的なギャップを縮めてきているものの、PostgreSQLは優秀で人気がある」
http://www.computerworld.jp/topics/601/

MySQLにはDDLトランザクション処理がないので、
http://www.infoq.com/jp/news/2009/05/heroku-provisionless-revolution

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.4.2 ロールバックできないステートメント
http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html
0617nobodyさん2014/07/04(金) 14:38:22.00ID:???
防蟻対策はどうすればよいのかと
0618nobodyさん2014/07/05(土) 06:16:25.08ID:12HindV2
Boric bait
0619nobodyさん2014/07/05(土) 10:38:39.82ID:???
mysqlよりはpostageのほうが今は人気だよね、でも今まで名だたるサイトがmysql使ってきたのに素人のおもちゃレベルのもので使えないほど遅くなるわけが無いよね
上の例に関しては適切にindex貼ってないだけだからrailsもmysqlも関係ないけどね
0620nobodyさん2014/07/05(土) 10:43:54.42ID:???
mysqlで遅いって言ってるひとの大半は使い方を間違ってる
0621nobodyさん2014/07/05(土) 12:17:16.21ID:???
mysqlって実装されてる機能の範囲では最速ってイメージだな
0622nobodyさん2014/07/05(土) 13:19:44.90ID:???
index貼ってないとか、slow logに出るだろ。ひょっとしてexplainすらしてないのか?
0623nobodyさん2014/07/06(日) 01:31:33.21ID:???
>>617
白蟻対策じゃなくて防蟻対策ということは、蟻側の視点で「どうやって防蟻剤を突破して家を食うのか?」ってこと?
0624nobodyさん2014/07/06(日) 08:27:50.77ID:vvaN7WsG
私は仕事で古い(脆弱と言う人もいる)Webスクリプト言語(Perl)で書かれた多くのレガシーコードによるWebベースのサービスを扱っている。
Mooseのような新しい拡張を使ってはいるものの、この言語は柔軟性に欠けていると感じる。
レガシーコードのサポートを避けることはできないので、当分はサポートを続ける予定にしているが、
新たに開発するものに関しては、もっと現代的でWebアプリケーションに使われている言語を使いたいと思う。
フレームワークごと変えてしまってもいい。
http://developers.slashdot.jp/story/14/07/05/0819214/
0625nobodyさん2014/07/06(日) 09:26:17.63ID:???
MySQLクラスタリングで、32GBのサーバー10台に分散しているシステムが、ioDriveを使うと1台でおさまったりするので、コスト効果もいい。
http://internet.watch.impress.co.jp/docs/special/20120731_549042.html
0626nobodyさん2014/07/06(日) 11:10:11.87ID:???
ミクシィでの事例

変更前
数百台のデータベース
変更後
1/10の数十台に減りました

http://kaworu.jpn.org/kaworu/2013-01-23-1.php
0627nobodyさん2014/07/06(日) 11:44:10.99ID:???
いいぞ、もっと貼れ
0628nobodyさん2014/07/06(日) 14:13:48.68ID:???
客も減りました
0629nobodyさん2014/07/06(日) 16:06:21.06ID:???
Farewell Node.js (翻訳) - from scratch
http://yosuke-furukawa.hatenablog.com/entry/2014/07/06/094617
0630nobodyさん2014/07/07(月) 06:18:26.99ID:???
開発者も減りました
0631nobodyさん2014/07/07(月) 19:40:39.69ID:???
SQLインジェクションの脆弱性キタ━(゚∀゚)━!
0632nobodyさん2014/07/07(月) 21:32:29.54ID:???
インジェクションて?
0633nobodyさん2014/07/07(月) 21:42:16.11ID:???
productionモードではhttp://admin.hoge.com/index、
developmentモードではhttp://localhost:3000/admin/indexというルートを作りたいんです。

■route.rb
require 'subdomain/admin''
constraints Subdomain::Admin do
namespace :admin, path: Subdomain::Admin.path do
get 'index' => 'bar#index'
end
end

■lib/subdomain/admin.rb
module Subdomain
class Api
def self.matches?(request)
if Rails.env.production?
request.subdomain == "api"
else
request.subdomain.blank?
end
end
def self.path
"api" unless Rails.env.production?
end
end
end


この状態でRails_Env=developmentとRails_Env=productionつけてrake routesすると期待通りの結果になるのですが、
いざhttp://localhost:3000/api/indexにアクセスしたら「uninitialized constant Api」と出てきます…。
bar_controllerにApi::つけたり、app/controller/apiに配置したりしても駄目でした。
どうすればいいのでしょうか?
0634見にくいのでインデントつけました2014/07/07(月) 21:44:27.53ID:???
productionモードではhttp://admin.hoge.com/index、
developmentモードではhttp://localhost:3000/admin/indexというルートを作りたいんです。

■route.rb
require 'subdomain/admin''
constraints Subdomain::Admin do
 namespace :admin, path: Subdomain::Admin.path do
  get 'index' => 'bar#index'
 end
end

■lib/subdomain/admin.rb
module Subdomain
 class Api
  def self.matches?(request)
   if Rails.env.production?
    request.subdomain == "api"
   else
    request.subdomain.blank?
   end
  end
  def self.path
   "api" unless Rails.env.production?
  end
 end
end


この状態でRails_Env=developmentとRails_Env=productionつけてrake routesすると期待通りの結果になるのですが、
いざhttp://localhost:3000/api/indexにアクセスしたら「uninitialized constant Api」と出てきます…。
bar_controllerにApi::つけたり、app/controller/apiに配置したりしても駄目でした。
どうすればいいのでしょうか?
0635nobodyさん2014/07/07(月) 22:35:18.31ID:???
>>634
Rails は勝手に admin.rb を読んだりはしない
読むようにさせるには
・auto_load の仕組みが働くように規約に沿ったファイル名で規約に沿った位置に置く
・config/application.rb などで require で読む
のどちらか
0636nobodyさん2014/07/08(火) 01:50:17.32ID:???
>>635
ありがとうございました。
0637nobodyさん2014/07/08(火) 12:00:32.32ID:???
天安門事件
0638nobodyさん2014/07/08(火) 13:08:22.16ID:???
ここは日本の掲示版です。
0639nobodyさん2014/07/08(火) 20:31:54.04ID:???
"Entry"というモデル名をさける
http://www.ustream.tv/recorded/25419544

Enumerable#entries
http://ruby-doc.org/core-1.9.3/Enumerable.html
0640nobodyさん2014/07/09(水) 00:42:40.56ID:HDQ993Cd
http://qiita.com/toyoshi/items/052b861c618831ea6e64

部分テンプレートで複数のラベル群を作ると一意性がなくなって、混線しちゃいます。
label forで1,2,3,4とあって、input valueで1,2,3,4とあるとき、1setだったら良いのですが、
1,2,3,4のセットが複数出来る時、各自の中で動いてくれません。
各セットのlabel for やinput valueの1,2,3,4にたとえば投稿のIDなどをくっつけて、987-1,987-2などのようにしたいのですが、
その生成の仕方を知りません。ヘルパーメソッドとかではなく、自然体の書き方としてそういったやり方が用意されているなら知りたいです。
宜しくお願いします
0641nobodyさん2014/07/09(水) 01:51:58.32ID:???
>>640
なるほど、参考になります。もっと貼ってください
0642nobodyさん2014/07/09(水) 01:53:25.24ID:???
天安門事件
天安門広場
文化大革命
0643nobodyさん2014/07/09(水) 02:13:20.30ID:HDQ993Cd
>>641
いやいや、私も道半ばの人間でして、ここで質問させてもらってるのです
でもついでにお役にたてるなら幸いですが
0644nobodyさん2014/07/13(日) 20:52:54.97ID:???
Ruby on Roadsってどうですか?
0645nobodyさん2014/07/14(月) 09:03:57.62ID:???
多分バグだと思うけど英語出来ないから誰か詳しい人任せる


Rails3.2.18
text = "abcdefg"
text = text.html_safe
text = text.gsub(/cd(.+)/){
$1
}
puts text #=> ab

.html_safeした後にgsubすると$1の中身が空になるscanだとちゃんととれた
html_safeの順番を後に回すときちんと動く

text = "abcdefg"
text = text.gsub(/cd(.+)/){
$1
}
text = text.html_safe
puts text #=> abefg
0646nobodyさん2014/07/14(月) 23:08:44.29ID:NZMg5fD+
>>645

https://github.com/rails/rails/issues/1555 に出てた。

AS::SafeBufferはStringのサブクラスなので、ほとんどのメソッドは
Stringのそれと同様に動く。

一部の、文字列を加工して返すメソッド(gsubを含む)は、
#to_str で得られた文字列に実操作を委譲するようになっている。
(これにより、unsafeなStringが返る)
加工した結果がタグを含んでしまう可能性があるからだろうね。

で、 $1 はローカル変数なので、SafeBuffer#gsubのブロックと
移譲先のString#gsub内のそれは別物になってしまう。

バグというか、不便だけど言語上の制約と割り切るしかなさそう。
0647nobodyさん2014/07/14(月) 23:36:06.76ID:???
>>646
わざわざありがとうございます
言ってることはちっともわかりませんが直ることは無さそうということで諦めて違う方法考えます!
0648nobodyさん2014/07/15(火) 03:57:15.59ID:lCP2M1NV
予約システムを作っていますが、日本語・英語で参考になるサイトを知っている方はいますか?
0649nobodyさん2014/07/15(火) 07:09:21.95ID:???
>>648
もうちょっとスレに沿ったレベルまで噛み砕いてからおいで
0650nobodyさん2014/07/15(火) 19:48:09.35ID:lCP2M1NV
>>649
明らかに作ったことなさそうだね
君みたいなレべルの人間は黙ってていいよ
0651nobodyさん2014/07/15(火) 20:05:39.19ID:???
やはりいつもの煽り教えて君でしたとさ
0652nobodyさん2014/07/15(火) 20:08:38.56ID:lCP2M1NV
?
君が教えれるレベルとも思わないし、私が君に教わるレベルでもないと思うよw
開発したことある人なら参考になるサイトを見ている可能性があるから、聞いてみたまでで、君のように開発したこともなく英語も読めなさそうな人には当てはまらない質問なんだけどね〜
まぁ頑張って生活してちょw
0653nobodyさん2014/07/15(火) 21:52:52.68ID:???
>>648
またお前か、つまんねーよ。けえれ
0654nobodyさん2014/07/15(火) 21:53:43.32ID:???
なんとこのスレでNG登録したったwww
0655nobodyさん2014/07/15(火) 21:54:16.28ID:???
>>655
この悔しがりようWwwww
0656nobodyさん2014/07/15(火) 22:24:25.17ID:???
キタ━━━━(゚∀゚)━━━━!!
もっと貼ってくれ
0657nobodyさん2014/07/15(火) 23:11:04.07ID:???
煽り方がワンパターンだな。
0658nobodyさん2014/07/16(水) 09:29:52.66ID:???
さあ、いつものように荒れてまいりました。やっぱrorスレはこうでなくては。
0659nobodyさん2014/07/16(水) 17:10:18.04ID:???
Qiitaってサイトがあって
1.記事にタグがつけられる
2.登録者はタグと他のユーザーをフォローして更新を追える
仕組みになってるみたいなんだけど
タグとフォロしてるユーザーその両方のItemを一気にとってくるのってどうやってんだろう

Kaminariつかってるとして
タグはacts_as_taggableで実装してるとして
Itemsってのが記事だとして
FollowモデルとFollowTagモデルがあるとして
■Follow follow_id follower_id
■FollowTag user_id tag_name


ちょっと思いついたのが
tags = current_user.follow_tags.pluck(:tag_name)
tag_items = Items.tagged_with(tags, any: true).pluck(:id)

follows = current_user.follows.pluck(:id)
follow_items = Items.where(user_id: follows).pluck(:id)

@item_list = Items.where(id: tag_items + follow_items).page(params[:page]).per(20)

こんな感じなんだけどさすがに煩雑すぎるしもっとスマートな方法があると思うんだが何かいいやりかたしりません?
0660nobodyさん2014/07/17(木) 03:09:55.78ID:???
>>659
低レベル
しねよ
0661nobodyさん2014/07/18(金) 00:43:16.93ID:Un2cZdb7
お前等が低レベルなのって英語読めないからだろうね
少しでもレベルの高い質問すると答えられなくなる
あえて英語で外人同様にぐぐれば転がってる情報なのに、そこにあたれないんだろうね
日本のサイトにはあまりないことを質問してやると、お前等のザコっぷりがよくあらわれるよw
0662nobodyさん2014/07/18(金) 13:11:41.37ID:???
低レベルですいません、スマートな方法があれば是非知りたいです
0663nobodyさん2014/07/18(金) 20:44:24.06ID:zd6Ingqc
英語でぐぐればあんだろがクズ
だから日本のサイトは糞ばっかなんだよ
0664nobodyさん2014/07/18(金) 20:56:41.19ID:???
英語がどうのこうの言わないで素直にわかりませんて言えよ低脳w
0665nobodyさん2014/07/18(金) 23:00:53.09ID:???
@664 = "低給"
0666nobodyさん2014/07/19(土) 08:53:50.37ID:???
見ればわかる通りこのスレの住民は低レベルな上に人を見下して煽ることしかできないからちょっと難しいことを聞いたら答え帰ってこないよ
俺ならその問題の場合はtwitterと同じように宅配形式でやるかな
でもそこまですんのもって感じではあるんだよね
0667nobodyさん2014/07/19(土) 09:10:40.33ID:???
> twitterと同じように宅配形式
kwsk
0668nobodyさん2014/07/19(土) 09:41:31.08ID:???
アンフェアな工作
0669nobodyさん2014/07/19(土) 14:06:46.96ID:???
>>666
じゃあこのスレの存在異義ってなんなんですか?
part18まで行ってるのにこのザマなのってどういうことですか?
0670nobodyさん2014/07/19(土) 18:13:40.68ID:???
>>667
今外だから要点だけ話すけど

タイムラインの表示をmysqlで普通にやるなら

1.フォロー一覧を取得
2.フォローのつぶやきを取得

になるんだけど、これは人数が増えてくるとすごく時間がかかるようになるしつぶやきが加速度的に増えてるからそのうち数msでは返せなくなる

それに対応するためにtwitterがとった方針がメールのように各自につぶやきを宅配するシステム

例えば俺が呟くと、俺をフォローしてるユーザー全員のTLに俺のつぶやきをpushする

これは高速なKVSに対してつぶやくたびに以下のキーをつっこんでるってこと
current_user.follows.pluck(:id).each do |id|
tweet id:1234
user_id: id
end

TL表示側はこの仕組みで自分のユーザーidを問い合わせるだけでつぶやきの一覧が取れる
0671nobodyさん2014/07/19(土) 21:45:46.51ID:???
>>669
終始こんな感じだろw
俺がたまにここテストしてやる時のパターンはワンパターン

英語で検索すれば沢山出てくるが、日本語のサイトにはあまりない情報、
かつそこそこハードな取り組みについて質問してやる。

そしたら、だいたい、こんな感じで返ってくる。
おそらく予約システムなんて作ったことない、かつ、低レベルなワーカーなんだろうな。
俺はもう作成済みなんだが、こういう質問してやった時の、ここの住人の低レベルさw

こんなやつらが日本のサイト等作ってると考えたら、そりゃだめだわな。
下記のような糞みたいな返答するなら、私も分かりません教えてください、とでも謙虚にやればいいものを。
臭すぎんだよ


648 :nobodyさん:2014/07/15(火) 03:57:15.59 ID:lCP2M1NV
予約システムを作っていますが、日本語・英語で参考になるサイトを知っている方はいますか?

649 :nobodyさん:2014/07/15(火) 07:09:21.95 ID:???>>648
もうちょっとスレに沿ったレベルまで噛み砕いてからおいで
0672nobodyさん2014/07/19(土) 21:53:15.04ID:???
煽り教えて君が最初に登場したときもID出してて自演がバレたのが切欠だったな
0673nobodyさん2014/07/19(土) 22:49:12.71ID:???
>>672
勘違いしているようだけど、教えてもらう気なんて全くないし、必要ないからなw
分からないことがあれば英語でググればたいていあるし、ここで質問している奴や、答えられていないお前等は失笑もの

ほなさいなら
0674nobodyさん2014/07/20(日) 01:22:55.40ID:???
>>1-673
変人の自作自演スレだということがよくわかった。

ほなさいならw
06756592014/07/20(日) 10:16:44.08ID:???
>>670
ありがとうございます
メールボックスみたいな感じですね、ただおっしゃってる通りちょっと大げさって感じはします
速度はそこまで求めないのでシンプルな方法があるといいのですが

>>671
質問がまったくRailsと関係ないのでRailsでどうするのか噛み砕いてから質問してくれってごく当たり前の反応だと思うんですけど
どうぞ英語サイトで好きなだけ検索してください
0676nobodyさん2014/07/20(日) 14:15:17.33ID:???
>>675
railsで作ったことあるレベルの人間からしたら、railsで作成するコツ・苦労するポイント等頭に入っているわけだが

もうこのスレいらないだろ。虫けらしか来てないんだからさ。

以下埋めとけよ
0677nobodyさん2014/07/20(日) 14:16:44.86ID:???
質問させてください

4つくらいのテーブルを繋いでいて
最終的に一番最後に繋がるテーブルのカラムでDESCソートをかけると
異様に時間がかかります
(結果が表示されるまで30秒ほど)
その最後のテーブルには1万レコードほどあります。


DESCソートを無くすと結果が2秒で返ってきます

しかし、その最後のテーブルのカラムでDESCソートはかけたいです
これを早くするための方法が分かる方はいませんか?
0678nobodyさん2014/07/20(日) 14:24:11.49ID:???
質問させてください

4つくらいのテーブルを繋いでいて
最終的に一番最後に繋がるテーブルのカラムでDESCソートをかけると
異様に時間がかかります
(結果が表示されるまで30秒ほど)
その最後のテーブルには1万レコードほどあります。


DESCソートを無くすと結果が2秒で返ってきます

しかし、その最後のテーブルのカラムでDESCソートはかけたいです
これを早くするための方法が分かる方はいませんか?
0679>>677 ◆cAsGJn91Iw 2014/07/20(日) 14:27:09.03ID:???
>>678
あなたはいったい何がやりたいの?
スレを荒らしたいだけ?

なりすましされるので
一応トリップつけて
ID表示しときます
0680nobodyさん2014/07/20(日) 14:38:53.09ID:???
質問させてください

4つくらいのテーブルを繋いでいて
最終的に一番最後に繋がるテーブルのカラムでDESCソートをかけると
異様に時間がかかります
(結果が表示されるまで30秒ほど)
その最後のテーブルには1万レコードほどあります。


DESCソートを無くすと結果が2秒で返ってきます

しかし、その最後のテーブルのカラムでDESCソートはかけたいです
これを早くするための方法が分かる方はいませんか?
0681nobodyさん2014/07/20(日) 14:41:05.27ID:???
>>679
いや、こんな低レベルの糞スレ、あるだけ無駄
というか有害だから埋めて消し去れと言っているんだよ

低レベルの質問と、低レベルの質問にしか答えられない低級ワーカーばかりのスレなんていらないんだよ

このスレがなければ、虫けらどももここで答えを引っ張り出そうとするんじゃなく英語勉強しぐぐりまくる方に向かう
健全だろ

だから消しとけよこの糞すれ
0682nobodyさん2014/07/20(日) 15:00:00.49ID:???
>>679
いや、こんな低レベルの糞スレ、あるだけ無駄
というか有害だから埋めて消し去れと言っているんだよ

低レベルの質問と、低レベルの質問にしか答えられない低級ワーカーばかりのスレなんていらないんだよ

このスレがなければ、虫けらどももここで答えを引っ張り出そうとするんじゃなく英語勉強しぐぐりまくる方に向かう
健全だろ

だから消しとけよこの糞すれ
0683nobodyさん2014/07/20(日) 15:00:37.24ID:???
>>677
1万ぐらいならRubyにソートさせても大したことないから、DESCなしで持ってきてから
ソートすりゃいいんじゃね?
0684nobodyさん2014/07/20(日) 15:21:50.05ID:???
ジムの営業開始時間と終了時間を管理しています
ジムの中には日をまたいで営業しているもののもあり、この終了時間を02:00としたいと思います
ここには日付の概念は全くもって入れる気はありません
ところが調べていくと、RoR+MySQLでは時間だけを保存する機能が欠如しているのではないかという壁に当たります
seconds_from_midnightでは終了時間が日をまたぐものでは使えない恐れもありますし、時間だけを保存したいというニーズがあったとします

どういう解決策が思い当たるでしょうか?
0685nobodyさん2014/07/20(日) 15:26:42.50ID:???
>>684
> seconds_from_midnightでは終了時間が日をまたぐものでは使えない恐れもあります
2:00 を 26:00 と考えれば解決
0686nobodyさん2014/07/20(日) 15:37:47.77ID:???
>>685
seconds_since_midnightは0:00からの秒数ですよね
私は現在空いているジムの検索にもこのデータを使いたいのですが、これじゃ全く使えませんよね?
0687nobodyさん2014/07/20(日) 15:39:24.61ID:???
>>686
検索条件側も26:00とすればOK
06886842014/07/20(日) 15:52:47.86ID:???
>>687
Gym.whereで
start_time < time.now and end_time > time.now
こういったことをやりたいわけですが...
0689nobodyさん2014/07/20(日) 15:56:22.06ID:???
>>688
time.now じゃどうしても日付が入るから無理だと思うよ
0690nobodyさん2014/07/20(日) 15:58:22.59ID:???
>>688
time.now が時刻だけを取れるとして、その時刻が○時より前なら24時間足すとかいう処理を
してあげればいい
06916842014/07/20(日) 16:00:27.82ID:???
>>689
ですね
time.now.seconds_since_midnightとして、
starttimeもendtimeもintegerで秒数管理にした方が良いでしょうか?
starttime2:00であれば、60*60*2=7200という数字で保管
開業時間と閉業時間を扱う機会は多いと思いますが、RoR+mySQLではスマートな方法が最初から用意されていないような気がしますが、皆さんどうしているのでしょうか
06926842014/07/20(日) 16:05:15.86ID:???
最初からopenもcloseも秒数管理にして、closeが日をまたぐ場合はたとえば60*60*25=90000とかで管理すればいいのかなとは思っていました
ただ、確認したかったのは、これだけ使用機会が多い開業時間終業時間を扱う問題で、最もスマートに近い部類の方法がこれかと
他によりベターでシンプルでスマートで元から用意されている道筋的なもので、見落としているものがないのかgeekな皆様に確認したかったのです
0693nobodyさん2014/07/20(日) 16:07:03.78ID:???
>>691
日をまたぐ処理については、日の切れ目をたとえば午前4時とかにして、24時以降の時刻も扱うというのが
一般的だろうね
06946842014/07/20(日) 16:11:39.98ID:???
>>693
ジムの中には、終了時刻が6:00のものもあれば、12:00のものもあれば18:00,21:00のものもあるという前提でお考えください
0695nobodyさん2014/07/20(日) 16:21:50.34ID:???
>>694
終了時刻が開始時刻より前かどうかで判断すりゃいいだけじゃね?
06966842014/07/20(日) 16:29:51.85ID:???
>>693
なるほど
毎日23:00~30:00のジムがあったとして、ジムユーザーが5:00に現在空いているジムを検索したとします
5:00、29:00(time.nowの一日前の曜日で)、二つで検索しないといけないということですか?
最長47:59までにしておくとして、time.nowを使った検索は、常にその真正なる時間5:00と24:00足した29:00で二つ検索しないとあかんちゅうことでしょうか?
06976842014/07/20(日) 16:36:14.35ID:???
それとも、ジムデータ入力時に24:00,0:00で切って二項目入力させるべきでしょうか
月曜日23:00~3:00、火曜日22:00~4:00のジムは、

月曜日23:00~23:59、
火曜日0:00~3:00、
火曜22:00~23:59、
水曜0:00~4:00
といった具合に。

これなら問題を容易に解決できますが、入力するユーザー(ボランティア)にかかる負荷が大きすぎる気もします
0698nobodyさん2014/07/20(日) 16:39:15.92ID:???
>>697
データを格納するときに割れば?
0699nobodyさん2014/07/20(日) 16:40:45.88ID:???
>>697
入力が23:00〜3:00なら23:00〜23:59、00:00〜03:00に分割する、なんて処理は別に大した手間じゃないと思うが
なぜ人間に分割後のを入力させようとするんだ?
07006842014/07/20(日) 16:42:40.78ID:???
>>697
どういう感じで実装すればいいですか?
0701nobodyさん2014/07/20(日) 16:45:57.54ID:qyCtqucU
>>683
返信ありがとうございます。

ソートなしの↓これだと2秒で表示されます
@communities = current_user.get_up_voted(Community)
@codes = Code.includes(:user).where(:community_id => @communities.collect(&amp;:id)).order('created_at DESC').page(params[:page]).per(10)

しかし、ソートをいれた、これだと40秒以上かかります
@communities = current_user.get_up_voted(Community)
@codes = Code.includes(:user).where(:community_id => @communities.collect(&amp;:id)).order("users.active_at DESC").page(params[:page])

これをRuby側でソートするとはどのような記述になりますか?
07026842014/07/20(日) 16:46:02.98ID:???
>>698
>>699
アンカー間違えました
ちょっとそのあたりを実装したことがなかったので。内部的に加工してから保存。
結構G先生に聞けば教えてくれるような代物なんですかね?
0703nobodyさん2014/07/20(日) 18:19:32.67ID:???
>>701
userのactive_atにindex貼ってみてごらん
0704nobodyさん2014/07/20(日) 19:20:22.69ID:???
>>701
Ruby ソートでぐぐればすぐ出てくるよ
0705nobodyさん2014/07/20(日) 20:05:49.29ID:???
>>701
indexちゃんと張ってるの?
0706nobodyさん2014/07/20(日) 20:41:50.36ID:???
設計もまともに出来ないやつを量産するゆとりフレームワーク
07076842014/07/20(日) 20:49:30.42ID:???
>>706
そこは関係ないんじゃない?
これを期に知る訳だし、まぁええやんw
0708nobodyさん2014/07/20(日) 21:51:02.99ID:???
Ruby on Railsのパフォーマンス向上に関する10のtips
http://blog.tkmr.org/tatsuya/show/268-ruby-on-rails-10-tips
findメソッドはパワフルだけど基本SELECT * FROMなので場合によっては:selectで必要なカラムだけ読み込む、また:limitや:offsetを活用する

ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071114
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし

:selectで取得するカラムを絞ったらパフォーマンスが倍に
http://brass.to/blog/active_record_select_option.html
レコード件数は110万件くらい
カラム数は30程度
インデックスは効いている(explainで確認済み)

Rails で MySQL を使うときの注意点 | METAREAL
http://www.metareal.org/2007/07/24/notes-on-rubyonrails-with-mysql/
SQL を二段階に分けるといい
まず、最初の SQL でレコードの ID だけを SELECT する(int だけなので、このときの一時テーブルはメモリ上に作られる)
次に、その ID で必要な TEXT や BLOB を SELECT するんだ(これは ID による単純な検索なので一時テーブルは使われない)

MySQLパフォーマンスチューニングのためのインデックスの基礎知識
http://d.hatena.ne.jp/kiyo560808/20101117/1289952549
0709nobodyさん2014/07/20(日) 23:05:06.23ID:qyCtqucU
>>705
def self.up
 add_index :users, :active_at
end

で貼りましたけど
相変わらず遅すぎますね。
どこにボトルネックがあるのでしょうか
0710nobodyさん2014/07/20(日) 23:08:05.06ID:???
>>701
その後者のってperつけてないんですか?
07116592014/07/20(日) 23:16:25.32ID:???
>>709
Index使われてるかexplainでちゃんとみた?

まずこれの速度は実用に堪えるの?
これが数msで帰ってくるならボトルネックはactive_atではないってことになるよね?
@codes = Code.includes(:user).order("users.active_at DESC").page(params[:page])

まあ間違いなくここだろうけど、indexある状態とない状態で速度比較してみるといいよ
0712nobodyさん2014/07/20(日) 23:31:37.31ID:qyCtqucU
>>711
そのコードでもやはり表示されるのに数十秒かかりますね。
def self.up
 add_index :users, :active_at
end

して
bundle exec rake db:migrate RAILS_ENV=production
まで実行したのに、これだけではindexは適用されていないということでしょうか?
0713nobodyさん2014/07/20(日) 23:34:42.72ID:???
>>712
まずRAILS_ENV=productionの意味わかってる?
開発環境で作業してるんだよね?
0714nobodyさん2014/07/20(日) 23:40:41.29ID:???
>>708
そのSQL を二段階に分けるといい
ってリンクを貼るのをやめてくれ

前にSQLスレに流したときもこれが原因でRailsっはゴミて叩かれてた
0715nobodyさん2014/07/20(日) 23:49:19.73ID:qyCtqucU
>>713
developmentではなく本番環境(とはいっても公開していませんが)でやってます。

ちなみに
communityのmodelに has_many :codes, belongs_to :user
codeのmodelに belongs_to :community, belongs_to :user
userのmodelに has_many :codes, has_many :communities
をアソシエーションにしています。
スコープ使って↓を実行すると即座にactive_atでソートがかかって表示されます(ただしcommunityは1つに限定されています)
@codes = @community.codes.recent.page(params[:page])

codeスコープ→ scope :recent, lambda { |n = 10| includes(:user).where('users.deleted_at' => nil).order("users.active_at DESC").limit(n) }

なので
@communities = current_user.get_up_voted(Community)
@codes = @communities.codes.recent.page(params[:page]) でいけるかな?と思ったら
案の定 undefined method `codes' のエラーになり四苦八苦してるところです
複数レコード→複数レコードで繋いで取り出すには
has_many through を使わないと、この問題は解決できないのでしょうか?
0716nobodyさん2014/07/20(日) 23:52:56.59ID:???
SQLわからない奴がRDBMSつかってるのかここ
0717nobodyさん2014/07/21(月) 00:39:47.34ID:???
>>716
低レベルの集まりがこのスレなんだからいいじゃん
俺もお前もw
0718nobodyさん2014/07/21(月) 01:02:06.23ID:???
うわ、このスレレベル低すぎ?
0719nobodyさん2014/07/21(月) 01:10:38.34ID:???
>>715
n to nリレーションでは間にリレーションテーブルを作るのがrdbmsの定石。
ActiveRecordだとhmt。
0720nobodyさん2014/07/21(月) 01:43:44.00ID:B7gBtag6
>>719
ありがとうございます。
codesは電話番号なんですが、
user has_many :codes になります
codeはuserに直接属して且つcommunityにも直接属しているのですが
communities.codes を実現させるには
こんな場合でもcommunityとcodesの間に中間テーブルが必須ですか?
0721nobodyさん2014/07/21(月) 01:54:32.49ID:???
>>720
user:code = 1:n
community:code = 1:n
ってこと?
それならいらない。
なんだかよくわからんが、ERDくらいは書けた方がいいと思う。
0722nobodyさん2014/07/21(月) 02:01:33.12ID:B7gBtag6
>>721
そういうことです
その関連アソシエーションですが

これを実行すると
40秒以上かかります
@communities = current_user.get_up_voted(Community)

@codes = Code.includes(:user).where(:community_id => @communities.collect(&amp;:id)).order("users.active_at DESC").page(params[:page])

ちなみにusers.active_atにはindexが貼ってあります
0723nobodyさん2014/07/21(月) 03:00:37.45ID:???
とりあえず実行計画みてみなよ
0724nobodyさん2014/07/21(月) 03:18:08.00ID:???
インデックスの再構築にはO(N log N)の時間がかかる
http://nippondanji.blogspot.jp/2009/05/alter-table.html
0725nobodyさん2014/07/21(月) 04:55:40.36ID:???
久しぶりにスレ伸びてると思ったら・・・
馬鹿の自演か
0726nobodyさん2014/07/21(月) 07:40:13.46ID:???
(SQL を EXPLAIN してみて、"using temporary" となっていれば、そういう事態が発生しているサインだ)。

TEXT や BLOB をもつテーブルではもっと悪くて、一時テーブルはディスク上に作られる
これには tmp_table_size や max_heap_table_size の設定は関係ない
そういう場合は、SQL を二段階に分けるといい
http://www.metareal.org/2007/07/24/notes-on-rubyonrails-with-mysql/


http://mysqldump.azundris.com/archives/72-Rubyisms.html
0727nobodyさん2014/07/21(月) 11:36:17.22ID:???
add_indexからdb:migrateしたけど
途中からだったら
以前のレコードにはindexは貼られず無意味だったんですねorz
色々と調べてみて分かりました

途中からindex追加する場合でも全レコードに適用できるものばかりと思っていました。。。。
0728nobodyさん2014/07/21(月) 11:37:28.26ID:???
>>723
ありがとうございます
見てみましたが
どこに問題点があるのかさえ分かりませんでした
0729nobodyさん2014/07/21(月) 12:58:25.44ID:???
頭に問題があるはず
0730nobodyさん2014/07/21(月) 13:04:39.88ID:???
貼れば
0731nobodyさん2014/07/21(月) 13:56:33.63ID:???
raketaskで経度緯度をランダムに発生させています
おおよそ日本のものを生成したいのですが、下記のように頑張って少数一位までランダムにしたいと思ったのですが、うまくいきません
どういった方法でやればいいのでしょうか?厳密にはrubyということになりますが、宜しくお願いします

latitude = Random.rand(200..500).quo(10)
longitude = Random.rand(1200..1550).quo(10)
0732nobodyさん2014/07/21(月) 17:13:20.23ID:B7gBtag6
>>730
ありがとうございます。
こんなかんじです

+----+-------------+-------------+--------+---------------+---------+---------+---------------------------------------+------+----------------------------------------------+\n
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |\n
+----+-------------+-------------+--------+---------------+---------+---------+---------------------------------------+------+----------------------------------------------+\n
| 1 | SIMPLE | codes | ALL | NULL | NULL | NULL | NULL | 9095 | Using where; Using temporary; Using filesort |\n
| 1 | SIMPLE | users | eq_ref | PRIMARY | PRIMARY | 4 | test_production.codes.user_id | 1 | |\n
+----+-------------+-------------+--------+---------------+---------+---------+---------------------------------------+------+----------------------------------------------+\n
2 rows in set (0.00 sec)\n"
0733nobodyさん2014/07/21(月) 17:14:18.84ID:B7gBtag6
@communities = current_user.get_up_voted(Community)
@codes = Code.includes(:user).where(:community_id => @communities.collect(&amp;:id)).order("users.active_at DESC").explain

をconsoleで実施しました
0734nobodyさん2014/07/21(月) 17:15:17.26ID:B7gBtag6
訂正です

@communities = User(1).get_up_voted(Community) ←current_userではなくUser(1)
@codes = Code.includes(:user).where(:community_id => @communities.collect(&amp;:id)).order("users.active_at DESC").explain

をconsoleで実施しました
0735nobodyさん2014/07/21(月) 17:33:01.50ID:???
インデックスは
0736nobodyさん2014/07/21(月) 17:34:46.14ID:???
>>731
どううまくいかないの? to_f つけるとか?
0737nobodyさん2014/07/21(月) 18:10:17.25ID:???
>>735

レコードが既に1万以上ありましたが
>>712を実施しました
0738nobodyさん2014/07/21(月) 18:20:09.52ID:???
post形式のform(会員登録)の中に
入れ子でremote=trueのformって入れられるの?


会員登録の際のアカウント重複の確認とかどうやってるのでしょうか?
0739nobodyさん2014/07/21(月) 18:29:33.05ID:???
>>737
少なくとも使われてない
0740nobodyさん2014/07/21(月) 18:37:21.63ID:???
>>739
えっ?add_indexを実施しても無意味だということですか?

上でindex付けてみるといいと助言をいただいたので試してみました
0741nobodyさん2014/07/21(月) 20:22:55.42ID:???
>>738
> 入れ子でremote=trueのformって入れられるの?
まず試してみてはどうかい?
0742nobodyさん2014/07/21(月) 22:31:13.01ID:???
>>731
>>736

136.2とか132.6とかが発生せずに、132.0とか133.0とか少数第一位が0のものしか生まれません。
0743nobodyさん2014/07/21(月) 23:00:22.18ID:???
datetimeで時間を12:23のように登録すると
2014-07-21 3:23:00 UTC
のように登録されますが、

これをepoch(1970-01-01 00:00)を基準に、1970-01-01 3:23:00と登録させたりできないでしょうか?
07447432014/07/21(月) 23:26:03.35ID:???
すみません
epochまわりに配置してもいろいろ大変そうなので、
任意のもの、2010-10-10 3:23と登録させるような方法はありますでしょうか?
0745nobodyさん2014/07/22(火) 01:24:30.99ID:???
>>744
1.attr_accesor かなんかで、buf_dateとかを作る
2.before_save :set_dateとかで保存時にbuf_dateを読む
3.その中でself.date = Date.new(2011-12-#{self.buf_date})とかやる
07467432014/07/22(火) 01:58:51.21ID:???
>>745
ありがとうございます!!
昨日のジムの例の者ですが、時間のハンドリング、今までになく苦戦しており助かりました
0747nobodyさん2014/07/22(火) 09:50:28.08ID:???
>>742
どっかでintになってんだろう。
to_fつけたら
0748nobodyさん2014/07/22(火) 19:38:31.80ID:???
>>737について分かる人はいませんか?
0749nobodyさん2014/07/22(火) 20:12:04.06ID:???
>>748
単にインデックスを使うSQLにしてないだけでしょ
07507432014/07/22(火) 20:30:17.26ID:???
>>747
なるほど!!そういうことだったんですね!
ありがとうございます!!!
0751nobodyさん2014/07/22(火) 23:09:05.35ID:???
三つのカラムのうち、ユーザーにはいずれか一つだけ入力させたいと思います
こういう変な規則の時バリデーションってどうやればいいのでしょうか?
0752nobodyさん2014/07/22(火) 23:40:19.50ID:???
カスタムバリデーション作るか、
条件付きvalidation使ってるね

サクッとやれるのは条件付きvalidationかも

4つ必要になる。

attr :xxx

validate :xxx, presence: true, unless: valid_input_cols?, message: 'col1,2,3はいずれか1つだけ入力が必要です'
validate :col1, numericality: true, if: (self.col1.preset? and valid_input_cols?)
validate :col2, numericality: true, if: (self.col2.preset? and valid_input_cols?)
validate :col3, numericality: true, if: (self.col3.preset? and valid_input_cols?)

def valid_input_cols?
count = 0
count = count + 1 if self.col1.preset?
count = count + 1 if self.col2.preset?
count = count + 1 if self.col3.preset?
count == 1 ? true : false
end

xxxはvalidationの便宜のために作った適当な仮想属性。col1とか使っても別にいいっちゃいい。
コードは適当なのでそのままでは動かんかも
あんまスマートなやり方でないので、他の人のやり方を知りたい
0753nobodyさん2014/07/23(水) 00:02:55.87ID:???
>>752
すごい参考になります!!
もちろんいただいたヒントを元に調べていきますけど
たすかります!!!
0754nobodyさん2014/07/23(水) 00:07:07.25ID:???
>>752
模索中ということなので、英語(validate presence one of)でググってこれはというものの、リンクを貼っておきます。ありがとうございました。
0755nobodyさん2014/07/23(水) 00:08:26.78ID:???
http://stackoverflow.com/questions/9679943/validate-presence-of-one-of-multiple-attributes-in-rails
0756nobodyさん2014/07/23(水) 13:21:20.77ID:???
>>749
解決策を教えてください
0757nobodyさん2014/07/23(水) 13:45:42.51ID:???
>>756
まず、生でSQL実行できる環境作って同じSQLで比較して
CREATE INDEXしたり EXPLAINしたりANALYZEかけたりしてみなよ
0758nobodyさん2014/07/24(木) 00:06:49.37ID:I3rzKL5b
@communities = current_user.get_up_voted(Community)
@codes = Code.includes(:user).where('community_id IN (?)', @communities).order('users.active_at DESC').page(params[:page]).per(10)

のようにActive RecordでSQLを出力すると、ページが表示されるまでに40秒ほどかかります。
.order('users.active_at DESC’)を抜いて記述すると3秒で表示されるようになります。

@codes = Code.includes(:user).where('community_id IN (?)', @communities)
のようにして一旦全てを取り出して
これをRuby側で'users.active_at DESC’の要素で並び替えを行い.page(params[:page]).per(10)まで適用させるにはどのように記述すればいいでしょうか?
0759nobodyさん2014/07/24(木) 00:16:38.22ID:I3rzKL5b
下記のようなエラーがやたら発生するようになりました。
心当たりとしては外国の誰からか
http://hoge-hoge-mysite.jp/hoge_action?WAC_SESSION=955037240569551118593488801844020631970859589704918509137566
ように意味不明なパラメーターを付けてアクセスされたことかなと見ています(アクセス解析ソフトにて判明)
WACやWAC_SESSIONとはなんなんでしょうか?

ActionController::RoutingError (No route matches [GET] "/WAC_CONTROL/WAC_MESSAGES/WAC_MSG_OVERVIEW"):
actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
0760>>759の続き2014/07/24(木) 00:17:03.95ID:I3rzKL5b
rack (1.4.5) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.5) lib/rack/lock.rb:15:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
rack-cache (1.2) lib/rack/cache/context.rb:245:in `fetch'
rack-cache (1.2) lib/rack/cache/context.rb:185:in `lookup'
rack-cache (1.2) lib/rack/cache/context.rb:66:in `call!'
rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
rack-mini-profiler (0.1.23) Ruby/lib/mini_profiler/profiler.rb:209:in `call'
railties (3.2.11) lib/rails/engine.rb:479:in `call'
railties (3.2.11) lib/rails/application.rb:223:in `call'
railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
unicorn (4.6.3) lib/unicorn/http_server.rb:552:in `process_client'
unicorn (4.6.3) lib/unicorn/http_server.rb:632:in `worker_loop'
unicorn (4.6.3) lib/unicorn/http_server.rb:500:in `spawn_missing_workers'
unicorn (4.6.3) lib/unicorn/http_server.rb:142:in `start'
unicorn (4.6.3) bin/unicorn_rails:209:in `<top (required)>'
/usr/local/bin/unicorn_rails:23:in `load'
/usr/local/bin/unicorn_rails:23:in `<main>'
0761nobodyさん2014/07/24(木) 02:03:42.16ID:???
ちょっとログみたけど、同じ質問してるね

他の人が回答してるけど、usersテーブルのactive_atにindex貼ればいいと思う。
index貼れば既存のレコードにも適応される。

@codes = Code.includes(:user).where('community_id IN (?)', @communities)
だけ一旦とりだして云々〜というのはできるけど辞めた方がいい。
SQLでやるよりずっと遅くなる可能性のが高い。

とにかく以下の2点をちゃんと確認する必要がある。

1. ホントにusersテーブルにindexが貼られてるかどうか。
2. クエリが発行されるときに当indexが利用されているか。

1は、適当なDBクライアントから、index確認のクエリをたたく。
MySQLなら
show index from users;
PostgreSQLやOracleは知らん。調べて。

2は、
rails consoleで
@communities = current_user.get_up_voted(Community)
explain = Code.includes(:user).where('community_id IN (?)', @communities).order('users.active_at DESC').page(params[:page]).explain
p explain
って感じで確認する。perはページネーションのメソッドだろうから外す。

闇雲にやってる感があるけど、この際だからSQLやindex,explainのことをある程度学んだほうがいい。
0762nobodyさん2014/07/24(木) 07:27:07.95ID:???
>>761
お返事ありがとうございます

�@についてはindexは貼りました
phpMyAdminのusersテーブル→構造→インデックス
から
ちゃんとactive_atのインデックスが作られて表示されているのを確認しました

その後、�Aについては
実行すると>>732のような結果でした
0763nobodyさん2014/07/24(木) 09:56:07.33ID:???
>>762
EXPLAINはした?
0764nobodyさん2014/07/24(木) 10:01:44.64ID:???
って>>732はindex確認後にやったのかな
これjoinかかってる?
0765nobodyさん2014/07/24(木) 12:14:47.84ID:???
>>763
add_indexをbundle exec db:migrate RAILS_ENV=production した後
explainした結果が>>732です
0766nobodyさん2014/07/24(木) 15:57:58.54ID:RxL1HHel
>>762
active_atのindex使われてないねぇ

MySQLのindexは、1つのtableにつき1つのindexしか使ってくれないって制限がある。

で、usersの方は active_at じゃなくて PRIMARY、つまり id のindexが優先して使われてるね。
test_production.codes.user_idって情報があるから、joinの結合のためだろう。

idとactive_atの順番で複合index張れば上手くindexが使われる「かも」。
MySQLだとこんな感じ。
alter table users add index multiple_idx (id, active_at);

「かも」なのは自分もちょっと自信がない部分があるから。
join後のtemporary tableに対して、indexって効いたかな?って。
762が実験するか、誰か詳しい人おしえてほし。

あと、codesもALLになっちゃってるね。
order部を外したら3秒ですむ、という話だけど3秒もかかるのはこのせいだね。
codesターブルのcommunity_idにindex貼れば ここは 0.1秒以下になると思う。
0767nobodyさん2014/07/24(木) 18:47:42.92ID:???
Ruby on Railsのパフォーマンス向上に関する10のtips
http://blog.tkmr.org/tatsuya/show/268-ruby-on-rails-10-tips
findメソッドはパワフルだけど基本SELECT * FROMなので場合によっては:selectで必要なカラムだけ読み込む、また:limitや:offsetを活用する

ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071114
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし

:selectで取得するカラムを絞ったらパフォーマンスが倍に
http://brass.to/blog/active_record_select_option.html
レコード件数は110万件くらい
カラム数は30程度
インデックスは効いている(explainで確認済み)

Rails で MySQL を使うときの注意点 | METAREAL
http://www.metareal.org/2007/07/24/notes-on-rubyonrails-with-mysql/
SQL を二段階に分けるといい
まず、最初の SQL でレコードの ID だけを SELECT する(int だけなので、このときの一時テーブルはメモリ上に作られる)
次に、その ID で必要な TEXT や BLOB を SELECT するんだ(これは ID による単純な検索なので一時テーブルは使われない)

MySQLパフォーマンスチューニングのためのインデックスの基礎知識
http://d.hatena.ne.jp/kiyo560808/20101117/1289952549
0768nobodyさん2014/07/24(木) 18:52:20.66ID:???
migrationで複数カラムのindexを生成する時の注意事項 - マオの徒然開発日誌
http://gutch.hatenablog.com/entry/20120222/1329890161
0769nobodyさん2014/07/24(木) 23:40:58.72ID:???
>>766
community_idにindexを貼っても
やはり同じように重いですね

謎すぎます

解決方法が分かる人がいたら本当お願いします!
0770nobodyさん2014/07/24(木) 23:41:23.35ID:???
>>766
そして、お返事ありがとうございます
0771nobodyさん2014/07/25(金) 00:35:05.24ID:???
さくらVPS SSD メモリ2GBですが
なんか重く感じます
unicornでprocess数は6にしています

さくらVPS SSD メモリ2GBに最適な
unicornとmysqlのmy.cfの設定法を教えてください
0772nobodyさん2014/07/25(金) 00:48:52.93ID:???
ワロタ
0773nobodyさん2014/07/25(金) 05:06:17.56ID:???
Rails Hub情報局: 素人がWebサービスを作ってみて分かった9つのこと
手元で書いて動くコードは1分でできるのに、
例外処理をして9割の完成度に上げるのには、とてつもなく時間がかかる場合がある
http://el.jibun.atmarkit.co.jp/rails/2011/09/web9-1e8b.html

スタートアップ企業で8年間Webの開発をしてみての反省点いろいろ - Masatomo Nakano Blog
6. サーバ周りの人材をしっかり確保しよう
http://b.hatena.ne.jp/entry/blog.madoro.org/mn/84

Ruby on Rails が簡単というのはウソ - #生存戦略 、それは - subtech
http://subtech.g.hatena.ne.jp/secondlife/20120309/1331279496

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp
http://b.hatena.ne.jp/entry/blog.sumyapp.com/2013/07/no-recommend-rails/

自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html
0774nobodyさん2014/07/25(金) 06:03:25.11ID:PIzM/Roo
どれも当たり前のことしか言ってないな
0775nobodyさん2014/07/25(金) 07:25:11.19ID:???
>自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
>サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?

マイクロソフトはOS会社なのに
そのノリでサーバー作ってるフシがあるから困るわ
0776nobodyさん2014/07/25(金) 10:36:19.12ID:???
本当に今欲しいもの
それはその機能ですか
0777nobodyさん2014/07/25(金) 13:19:08.96ID:???
>>769
複合indexのほうは張った?
0778nobodyさん2014/07/25(金) 18:49:51.04ID:???
>>777
貼ってませんねー
0779nobodyさん2014/07/25(金) 19:40:03.54ID:jnnPzTto
railsを最近触りはじめたのですが、
javaであればServletやspringのシングルトンActionにインスタンス変数を持たせると
スレッドセーフでなくなり、無関係なユーザの情報が混ざってしまったりするので、
そのような実装をしないように注意したりしますが、
railsでもそのような注意点があれば教えてください。
0780nobodyさん2014/07/25(金) 23:08:32.42ID:???
Railsもほぼ一緒だよ
0781nobodyさん2014/07/26(土) 21:45:38.66ID:???
ttp://www.kyoto-u.com/lounge/tokeidai/html/200602/06020020.html
0782nobodyさん2014/07/27(日) 00:28:37.21ID:f1pmoydY
>>779
Rails 2.1 頃の情報だけど(最新は知らない)、
Railsは(Java Servlet等とは違って)シングルスレッドだよ
WebサーバからControlerが起動されると、
Viewがレンダリングを終えるまで呼び出したスレッドが占有する
いいかえると、一度に1つのHTTPリクエストしか処理しない

だからRailsプログラマはスレッド間の競合/排他などについて悩まない
実運用では、Webサーバの背後で複数のAPサーバ(Railsインスタンス)を
配置することで、HTTPリクエストを並行に処理させるのが一般的
0783nobodyさん2014/07/27(日) 01:08:28.48ID:???
Rails2.1ってえらい古いぞ…

今はマルチスレッドで動かすこともできるサーバもあるしね(Pumaとか)
もっとも、MatzRubyはGILがあるからあまり意味はないんだが
0784nobodyさん2014/07/27(日) 08:11:28.09ID:???
コンピュータで0.001秒超光速売買 

超高速取引でウォール街を席巻する『フラッシュ・ボーイズ』
http://www.huffingtonpost.jp/shumpei-kumon/flash-boys_b_5210449.html
0785nobodyさん2014/07/28(月) 19:46:24.40ID:tREUFgeD
すいません、rails4.1で書き始めて新機能のActiveRecord#enumを遊んでいましたが
Payment.statuses.keysとかでselectタグに出力すると
日本語でセレクトタグに表示がされないでいい選択肢が無いな、と悩んでいます
ActiveRecrod#enumに対してささやかにi18nをかぶせてくれるようなgemは存在しないのでしょうか?
0786nobodyさん2014/07/28(月) 19:59:19.99ID:yO+mRs5E
po
0787nobodyさん2014/07/28(月) 20:20:30.08ID:???
【翻訳】Go言語がダメな理由 | POSTD
http://b.hatena.ne.jp/entry/postd.cc/why-go-is-not-good/

Farewell Node.js (翻訳) - from scratch
http://b.hatena.ne.jp/entry/yosuke-furukawa.hatenablog.com/entry/2014/07/06/094617
0788nobodyさん2014/07/29(火) 08:44:20.35ID:???
Jocellyn's Blog - Best gems for beginners
http://jocellyn.cz/2014/07/28/best-gems-for-beginners.html
0789nobodyさん2014/07/29(火) 14:17:10.87ID:???
unicorn使ってる人に質問
プロセス数は何個で設定してますか?

CPU仮想2コア
メモリ2GB
SSD

なんですが6で設定しています
多すぎ?2にすべき?
0790nobodyさん2014/07/29(火) 19:49:14.83ID:???
んなもんアクセス数によるとしか答えようがない
0791nobodyさん2014/07/29(火) 20:23:46.40ID:???
「全自動パラメータチューニングさん」は何であって何でないのか
http://b.hatena.ne.jp/entry/blog.mirakui.com/entry/2013/02/20/003401
0792nobodyさん2014/07/29(火) 20:40:27.84ID:???
$ diff example/config/unicorn.conf.sample example/config/unicorn.conf
3c3
< worker_processes 1
---
> worker_processes 17



https://github.com/mirakui/tuningsan
0793nobodyさん2014/07/29(火) 20:57:37.75ID:???
>>790
1日60000pv
0794nobodyさん2014/07/29(火) 21:23:21.58ID:???
全自動パラメータチューニングさん // Speaker Deck
http://b.hatena.ne.jp/entry/s/speakerdeck.com/mirakui/quan-zi-dong-parametatiyuningusan
0795nobodyさん2014/07/29(火) 21:28:00.59ID:???
>>766
webサービスを立ち上げた頃に既に idにindexを貼っていました。
そして、その後、add_indexさえすればというバカの1つ覚えで
意味が無いとも知らず同じテーブルの他のカラム(ただしアソシエーションのキーになるもの)
にも貼っておりindexが6種類ほど貼られています。

この状態で
alter table users add index multiple_idx (id, active_at);
を試したところ
mysql> alter table users add index multiple_idx (id, active_at);
Query OK, 9630 rows affected (0.84 sec)
Records: 9630 Duplicates: 0 Warnings: 0
と出ました。その後、indexが効いたか試しても、やはり>>701のように40秒以上かかります
どうしたらいいものでしょうか。。。どなたか分かる方いませんか?
0796nobodyさん2014/07/31(木) 00:22:53.92ID:RKyjBma/
テストのDBにマスターデータを用意したい時はどうすればいいんですか!?
開発環境と本番環境はdb/seeds.rbで作ってますが、テスト環境だとテストのたびに毎回リセットされちゃいます。
そしてこのseedsを入れ込むのに1分以上かかります。
テストのDBの特定のテーブルのデータだけリセットせずにずっと残しておくことは出来ないでしょうか。
0797nobodyさん2014/07/31(木) 12:06:57.77ID:???
railsってクソ重くないか?
dbのやりとりで重くなるとかじゃなくて
レンダリングだけでもクソ重い気がするbootstrapを使ってるせいかな?
0798nobodyさん2014/07/31(木) 12:13:22.09ID:???
同じフレームワークでも
CakePHPのほうが圧倒的に速いという
驚愕の事実
0799nobodyさん2014/07/31(木) 12:29:50.73ID:???
そんなの、(速度に関しては)Java系に比べたら、目くそ鼻くそw
0800nobodyさん2014/07/31(木) 12:47:13.91ID:???
railsとCakePHPが同じフレームワークってどういうことだ?
違うフレームワークじゃないのか
0801nobodyさん2014/07/31(木) 14:21:00.11ID:???
Railsに比べてcakephpのほうが早いとかマジで言ってるならヤバイぞ
cakephpは毎回全ファイル読み込むからrailsと同じシステム作ったらrailsより早くなりようがないんだが
0802nobodyさん2014/07/31(木) 14:36:15.65ID:???
PHPはAPCが動いてるサーバで動作させるのが普通だからな。
それならCakePHPのが早いケースも普通にあるだろうな(3倍くらい早くなる)。
Railsはproduction modeだと、ファイルのメモリキャッシュやるけどプリコンパイルまでしてるわけじゃないからな。

CakePHP + APC >> Rails production > CakePHP > Rails development みたいな感じだと思う。
Rubyはプリコンパイル難しい言語だからな。RubyVM開発者たちの更なる頑張りに期待するしかない。
YARVはRailsではあんま恩恵なかったね;;
0803nobodyさん2014/07/31(木) 14:57:00.14ID:???
フラグを折ったらそれ以降updated_atが更新されないようにしたいです

例えば、「is_lock」をtrueにしたらそれ以降はupdated_atは更新されないってかんじです
既に動いてしまっているサービスなので別にもう1カラム追加するっての以外で方法があれば教えて下さいお願いします
0804nobodyさん2014/07/31(木) 18:45:49.26ID:???
ActiveRecord::Base.record_timestamps = false
0805nobodyさん2014/07/31(木) 18:48:08.87ID:???
インタビュー:[楽天]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以下にまで削減されており、よりシンプルな構成も実現できました。


食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/
0806nobodyさん2014/07/31(木) 19:17:38.94ID:+eUxrmGz
>>795
長引いてるね。興味あるんでちょっと実験してみた
コンソールであなたが提示してるのとほぼ同意の、以下のコード動くような環境を作った

page = 1
@communities = Community.get_up_voted(Community)
@codes = Code.includes(:user).where('community_id IN (?)', @communities).order('users.active_at DESC').page(page).per(10)

レコード数はそれぞれ
users: 1000
communities: 1000
codes: 100000

Community.get_up_votedは、適当なCommunityを100件戻すようにした。

が、0.1秒以下で結果が戻ってくる。流石に件数が少なすぎるのかもしれん。
それぞれの大体のレコード数 教えてくれ。
あと、Community.get_up_voted では大体何レコード位戻ってくる?
0807nobodyさん2014/07/31(木) 20:38:11.55ID:???
>>806
ありがとうございます
レコード件数は以下の通りです

Users 10000件
Communities 100件
Codes 10000件
Votes 100000件
0808nobodyさん2014/07/31(木) 21:17:29.48ID:???
>>806

@communities = current_user.get_up_voted(Community)
です

@communities = Community.get_up_voted(Community)

ではありません
0809nobodyさん2014/07/31(木) 21:52:53.44ID:???
>>807

current_user.get_up_votedの部分は要はいくつかのCommunityを戻すことが目的のメソッドよね?
で、ここはボトルネックにはなってない(ハズ)なので、適当に書いた。
特殊な処理してない限りは違いは現れないはず。

users 10000, codes 10000 でやっても 0.1秒以下で終わる。
explainの結果も、あなたが>>732で提示したのと全く同じ状態。

疑問を狭めるため、いくつか質問。

1. @communities の中身って CommunityのArray?それともActiveRelationオブジェクト?
2. sql = Code.includes(:user).where('community_id IN (?)', @communities).order('users.active_at DESC').page(page).per(10).to_sql
をやって、sqlの内容を教えて欲しい。
0810nobodyさん2014/07/31(木) 22:47:39.55ID:O8Sk0a9q
>>731
random.new.rand.quo
で解決しないか?詳しくないのでテキトーだが
0811nobodyさん2014/08/01(金) 00:36:36.64ID:???
毎回↓こういうの打つのがきついのですが
マクロ化できないのでしょうか?

bundle exec rake assets:clean Rails_Env=production
bundle exec rake assets:precompile Rails_Env=production
0812nobodyさん2014/08/01(金) 00:36:40.25ID:???
>>810
しねえよ
0813nobodyさん2014/08/01(金) 01:10:12.28ID:???
http://www.techscore.com/blog/2012/10/22/めんどくさい-bundle-exec-を省略する方法/
0814nobodyさん2014/08/01(金) 21:16:44.69ID:???
>>809
ありがとうございます。回答いたします。

1. おそらくActiveRelationのオブジェクトだと思われます。
ActsAsVotableというgemの関数を使っています(https://github.com/ryanto/acts_as_votable)

2.
SELECT `codes`.* FROM `codes` WHERE (`codes`.`deleted_at` IS NULL) AND (community_id IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,25,28,29,30,66,67,71,87,90)) ORDER BY users.active_at DESC LIMIT 10 OFFSET 0
0815nobodyさん2014/08/01(金) 21:24:43.06ID:???
質問を、読む人に伝わるように詳しく具体的に書く。
ハードウェアの機種や型番、ソフトウェアの名前、バージョンを書く。
正確なエラーメッセージ、エラー番号を書く。
投稿する前に、誤字や文章の誤りがないか、説明が不足していないか、よくチェックする。
投稿後に間違いや説明不足に気が付いたら、訂正、追加説明をする。
わからない言葉があったら、質問する前にマニュアルや検索サイトで調べる。
回答をもらったら、他の人の参考になるように、結果を詳しく書く。
ネットの利用方法やマナーについてわからないことがあるときは、友人や家族などの身近な人にも必ず相談する。絶対に一人だけでやろうとしてはいけない。

http://www.geocities.jp/stardust774/
0816nobodyさん2014/08/01(金) 21:39:28.87ID:???
>>809さん
<% @codes.includes(user: :user_profile).each do |code| %>
 <%= render 'codes/code', { :code => code, :icon_photo => code.community.community_icon } if code.community %>
<% end %>

Viewで↑となっていたものを↓にしたら即座に表示されるようになりました(それでも遅いですが・・・)

<% @codes.each do |code| %>
 <%= render 'codes/code', {:code => code, :icon_photo => code.community.community_icon} %>
<% end %>

何が悪いのか分かりませんが、ありがとうございました。
0817nobodyさん2014/08/01(金) 21:46:44.69ID:???
>>809さん
ただし、この1ページを読み込むのに若干遅く感じます。
profileではこんなかんじです。
これってやっぱり遅いですよね?
http://i.imgur.com/Ee9OFB0.png
0818nobodyさん2014/08/01(金) 22:26:26.47ID:???
会員制(devise使用)のサイトで
非会員にもゲストとして書き込めるようなロジックって組めますか?

Users
Comments
の各テーブルを作成していて
現在、Commentsにはuser_idがあります

User has_many :comments
ですがcommentを作成したら通常は自動的にcurrent_user.idが入りますよね。

ログインしていないゲストがcommentレコードのuser_idをnilにして書き込めるようにするには
アソシエーションも含めて、どのようにすればいいですか?
0819nobodyさん2014/08/01(金) 22:36:22.87ID:XiYD0/qY
deviceなんてまだ使ってる奴いたのか
0820nobodyさん2014/08/01(金) 22:38:35.47ID:???
395 :nobodyさん:2013/05/18(土) 00:07:21.65 ID:BDs/Gnzi
ログインしていない状態では名無しさん専用userを設定するという方法
もある。いちいちnil判定しなくてよくなる(NullObjectパターン)。

http://kohada.2ch.net/test/read.cgi/php/1359587251/
0821nobodyさん2014/08/02(土) 00:01:09.98ID:???
>>819
今の人たちは何を使ってんの?
0822nobodyさん2014/08/02(土) 15:06:12.27ID:???
>>816
ボトルネックになってるとこをちゃんと特定してから質問してくれよw
グッタリだよ orz

調査のやり方は教えたはずなので、
@codes.includes(user: :user_profile).each だとなんで重いのか、
そのページの表示に1115msかかるのはなぜかは自分でやってみてくれ。
0823nobodyさん2014/08/02(土) 17:30:52.08ID:???
相手の負担を考えず、自分への奉仕を要求する。

掲示板やメーリングリストを、パソコンオタクが集まる無料のサポートセンターと考え、大いに利用しようと思っている。
http://www.geocities.jp/stardust774/
0824nobodyさん2014/08/02(土) 21:13:08.26ID:???
>>822
すみません
ボトルネックがそこにあったとは思いもしませんでした
0825nobodyさん2014/08/02(土) 21:19:34.16ID:???
linkヘルパーとパーシャルrenderの多用を辞めるだけで
Railsってそんなに速くなりますか?
0826nobodyさん2014/08/02(土) 21:25:32.70ID:???
>>825
まず自分でベンチマーク取ってみよう
話はそれからだ
0827nobodyさん2014/08/02(土) 21:28:46.57ID:???
>>826
一般論で教えて
0828nobodyさん2014/08/02(土) 21:29:54.23ID:???
だからまずベンチだろ
手を動かさずに回答をもらえると思うな
0829nobodyさん2014/08/02(土) 22:31:33.42ID:???
>>828
俺はチンポしごいとくから
答えろよ
0830nobodyさん2014/08/02(土) 23:21:55.29ID:???
さっさと答えろよ雑魚
0831nobodyさん2014/08/04(月) 03:15:17.09ID:b+2fcpSQ
ここは答えられない薄給ばかりだよw
それに、みんなチンポしごいてるから、だれも答えられないよw
0832nobodyさん2014/08/04(月) 17:42:24.55ID:???
相手の負担を考えず、自分への奉仕を要求する。

掲示板やメーリングリストを、パソコンオタクが集まる無料のサポートセンターと考え、大いに利用しようと思っている。
http://www.geocities.jp/stardust774/
0833nobodyさん2014/08/04(月) 17:52:26.45ID:???
ネット利用の基本中の基本
0834nobodyさん2014/08/04(月) 22:59:24.72ID:???
>>832
お前至る所で糞サイト宣伝すんなよ
0835nobodyさん2014/08/06(水) 22:16:05.77ID:???
ブログの記事(Aritcle)にカテゴリー(Category)がn個ついてるととして、N+1クエリを回避しつつ、Categoryを名前順にソートすることはできるのでしょうか?


@articles = Article.all.includes(:categories)

これでN+1は回避できますが、いざView側で

@articles.each do |article|


article.categories.order(:text) each do |category| ....

end


こんなことしてしまうと、N+1になってしまうんです・・・
RubyのArray#Sortは文字の並べ替えはできませんし・・・・


どうすればいいのでしょうか
08368352014/08/07(木) 01:21:59.32ID:???
解決しました
0837nobodyさん2014/08/10(日) 19:44:17.39ID:Cr4W8B/v
大量のデータをデータベースに作る際に、便利なgemがあるのは認識しており現に使っております
これよりさらに高速化するには、sql直書きなど方法があると思うのですが、既に御経験済みの方に質問ですが、どういったコードでやられてますか?
おそらくどちらも通過していないと質問と回答がかみ合わないと思いますので、gem、それより進化型の書き方に到達された方限定で質問させていただきたいと思います。
自分でも目下調査中ですが、宜しくお願い致します。
0838nobodyさん2014/08/10(日) 20:05:09.82ID:???
せっかくのActiverecordなので、それをなるべく使おうとしてるけど、
やっぱりsql使えるところはそっちのがいいのかね。
0839nobodyさん2014/08/10(日) 20:14:32.42ID:Cr4W8B/v
>>838
>>837についてのコメントでしょうか?
validationやら色々ついていて、それはそれでいいのですが、大量に処理する時は色々はしょった方が早いこともあるようですね。
大量のINSERTでは、gemもあるのですが、それよりさらに早いやり方があり、それは直書きを使ったもののようです
0840nobodyさん2014/08/10(日) 20:26:10.26ID:???
どこからどう見ても煽り教えて君
0841nobodyさん2014/08/10(日) 23:38:56.35ID:???
相手の負担を考えず、自分への奉仕を要求する。

掲示板やメーリングリストを、パソコンオタクが集まる無料のサポートセンターと考え、大いに利用しようと思っている。
http://www.geocities.jp/stardust774/
0842nobodyさん2014/08/11(月) 01:29:19.17ID:???
>>841
お前は毎日毎日糞サイトの宣伝ウザすぎる
0843nobodyさん2014/08/11(月) 04:25:44.85ID:???
>>840
>>841
この乞食コンビ毎日のように見る
屑乞食野郎だな
0844nobodyさん2014/08/11(月) 08:31:45.44ID:???
mySQL “Too many connections” error influenced by number of mongrel instances?
http://stackoverflow.com/questions/5317646/mysql-too-many-connections-error-influenced-by-number-of-mongrel-instances
0845nobodyさん2014/08/12(火) 12:27:37.11ID:???
ASCII.jp:たった4行で電話が作れるAPI「Twilio」とは? (1/2)|Twilioではじめるクラウド電話開発

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp" voice="woman">はじめまして。電話をかけてくれてありがとう!</Say>
</Response>

http://ascii.jp/elem/000/000/790/790902/
0846nobodyさん2014/08/12(火) 17:18:00.76ID:???
EC仲介サイトを作っています
railsでwebpayというツールがあります
webpayを使えば自分が代金の受け取り人であれば問題なく使えます
しかし作っているのは仲介サイトですので、受取人/支払人の間に私のサイトがあります
しかも決済時にいくばくかの手数料をいただきたいと思っています
こういった状況下で何か便利なツールはありますでしょうか?
0847nobodyさん2014/08/12(火) 19:55:17.40ID:???
普通に一旦自分が受け取って明細を受取人に発行してマージンを差し引いた請求書を発行してもらう
という感じじゃね?
0848nobodyさん2014/08/13(水) 00:24:57.82ID:???
>>847
そういったことが可能なのでしょうか?
私がユーザーから送金され、マージンを差し引いて、商店に送金ですか?
送金手数料とか二重にかからんですかね?
0849nobodyさん2014/08/13(水) 00:36:16.74ID:???
>>848
可能かどうかはビジネスモデルによるんじゃね?
というかもはやRailsとは無関係だよね
0850nobodyさん2014/08/13(水) 02:05:41.73ID:???
仲介サイト作るならセキュリティも法律も本気で勉強しとけよ
変な奴に目を付けられたら終わりだからね
0851nobodyさん2014/08/13(水) 03:05:09.70ID:???
>>850
キャンセルやら倒産やら前払い金やら未納やら、引当金必要かもしれませんね
仰る通りrailsの技術云々よりはるかに複雑怪奇な勉強が必要になるかもしれません
技術的にはペイパルなりwebpayなりを使って、「客が商店へ入金・当方がマージンget・商店が客から入金(手数料&当方へのマージン抜き)」これをお手軽な値段でサポートしているんですかね?
こうなると、たしかにrailsの枠をとっくにはみ出していますね
0852nobodyさん2014/08/13(水) 03:19:27.40ID:???
>>851
問題は技術的なものでは既にないね
どういうビジネスを組み立てるか、という話だね

ということで別スレで聞くのが妥当かと思われる
0853nobodyさん2014/08/13(水) 03:42:15.50ID:???
>>852
クレカ板なのか何なのか分かりませんが、違う所で探してみます!
0854nobodyさん2014/08/13(水) 11:19:18.39ID:WAbkpKFv
environments以下のふぁいるが

Rails.application.config
じゃなくて
Rails.application.configure
になってるのってただのミス?
0855nobodyさん2014/08/13(水) 22:02:30.84ID:hhXvcPtz
そんなつまんない話よりも、こっちこっち↓笑える休憩タイム。

【「指ぱっちん」の天才霊能者八意先生に関するサイト】

日本一の天才霊能者の八意先生は埼玉県八潮市生まれ育ちの21歳です。
悩見事があるときや困ったことが起きたら、まず八意先生に相談しましょう。
以下のサイトをすべて読み終わったら、
腹を抱えて大笑いしてしまうことをお約束します(※ は無料心霊写真鑑定)。
お気に入りに追加することをお勧めします。

※ http://blog.goo.ne.jp/nichikon1/e/de94d2f37f7d074e05e306cd33831224
※ http://blog.goo.ne.jp/nichikon1/e/e066fd39cd23872a3c73cf91f4b50b8c
※ http://blog.goo.ne.jp/nichikon1/e/5aac5cd13eafbf5581a7e2ff79b6c16c
※ http://blog.goo.ne.jp/nichikon1/e/93b5c268d3aefeccd92753a7c58a6ded
※ http://blog.goo.ne.jp/nichikon1/e/788f3056778b0f74495648964bfb1d1e
※ http://blog.goo.ne.jp/nichikon1/e/da81f66fa7c437e7ca19667c2bf35065
※ http://blog.goo.ne.jp/nichikon1/e/d9d05d45085c29df2c0e994a4b60d816
※ http://blog.goo.ne.jp/nichikon1/e/475621ba2615792fe2478f597e31b488

http://www.reinou.jp/bai.html
http://www.reinou.jp/rei.html
http://www.reinou.jp/warashi.html

http://blog.goo.ne.jp/nichikon1
http://www.reinou.jp (八意先生の携帯番号はここ。)

八意先生が口にしたことは絶対に起こりません(地震が発生する日付の予想など)
でも、あなたのどんな悩みでも、八意先生が「指ぱっちん」で解決してくれます。

一応、コメントも含めてすべて読んでみてください。
☆コメントの書き込み・誹謗中傷も大歓迎です。☆
0856nobodyさん2014/08/14(木) 21:30:20.34ID:???
チョメチョメ.strftime("%Y%m%d").to_iで、20140814という数字を作っています
条件式ifで年だけとか月だけとか抽出したいのですが、20140814の最初4桁だけ抽出とか5〜6桁だけ抽出する方法を教えてください
文字列のsliceというのは分かるのですが、数字となるとよく分かりません
0857nobodyさん2014/08/14(木) 21:43:22.65ID:???
文字列じゃん
0858nobodyさん2014/08/14(木) 22:53:04.97ID:???
to_iの前にあるのは何だ。
0859nobodyさん2014/08/14(木) 22:56:27.81ID:???
to_iで一旦数字にしてるんですよ
ifで数字同士比べる回数が多いので、最初に数字にしています
to_iで数字にしているから文字列のsliceは使えないと思うんですが?
0860nobodyさん2014/08/15(金) 00:54:15.96ID:???
またto_sしてsliceすれば?
0861nobodyさん2014/08/15(金) 02:24:58.43ID:???
もちろんできますが、数字のスライスができるのかが知りたかったのです
0862nobodyさん2014/08/15(金) 04:23:05.96ID:???
20140815/10000
20140815%10000/100
0863nobodyさん2014/08/15(金) 08:08:06.19ID:bAjs3HZL
>>856
>> 最初4桁だけ抽出

チョメチョメ.year

>> 5〜6桁だけ抽出

チョメチョメ.month
0864nobodyさん2014/08/15(金) 17:42:44.79ID:???
質問させてください。

youtubeのサムネイルを再生中に
裏でajaxのリロードをかけて
ページの一部の情報を書き換えようとするとするタイミングで
再生していたyoutubeの動画が止まります
これは仕方ないのでしょうか?

youtubeは再生させつつ
裏でajaxをロードすることは不可能ですか?
0865nobodyさん2014/08/15(金) 17:49:59.48ID:???
そんなんブラウザの話やろ
Railsとどこに関係があるのか
0866nobodyさん2014/08/15(金) 22:03:12.41ID:???
質問

railsやり始めたんだけど
getでurl受け取りたいんだけど
routesで
get 'apis/geturl/:target' => 'apis#getUrl'
とかやったんだけど
http://example.com/apis/geturl/{ここにエンコードしたURL}
にアクセスするとエンコード文字列のパーセント(%)とかで
うまく値渡せないんだけどどうすればいいの??
0867nobodyさん2014/08/15(金) 23:14:59.52ID:???
ID出して質問しろ
08688662014/08/15(金) 23:15:44.52ID:???
ごめん、ふつうに
http://example.com/apis/geturl?target={ここにエンコードしたURL}
でいけたわ
0869nobodyさん2014/08/15(金) 23:55:40.65ID:???
mixiみたいなログイン必須の会員制サイト作って
サックサクに動かすなら
セグメントキャッシュとか
キャッシュを駆使しなきゃダメ?
なにかコツとかありますか?
0870nobodyさん2014/08/16(土) 02:02:47.98ID:???
>>869
そんなのサーバと会員数によるだろ。
0871nobodyさん2014/08/16(土) 07:53:03.77ID:???
>>870
一日あたりのUV1000人
さくらVPS ssd 2GB
0872nobodyさん2014/08/16(土) 21:58:42.23ID:???
会員数10万人のサービス運営してるけど
さくらVPSの4Gでアプリ動かしてDBサーバー別に設置してるだけでさっくさく動くけどなあ
複雑なリレーション貼ってたりするとまた話は別なんだろうけど
>>871くらいなら何も考えなくてもつまりそうにない気がする
0873nobodyさん2014/08/17(日) 15:04:46.54ID:???
rubyとrailsの初心者なのですが、とあるコントローラに
def hoge_params
 params.require(:hoge).permit(:title, :text)
end

のようなプライベートメソッドが定義されていました。
これを利用して、そのコントローラのアクション内部で

title = hoge_params[:title]

のような記述で、値を取得している箇所があったのですが
メソッドを配列呼び出ししていることに????となりました。

rubyではメソッドに対して配列呼び出しを行うと
メソッドを実行し、その戻り値を利用して配列呼び出しが行えるというような
認識でよろしいのでしょうか。

助言よろしくおねがいします。
0874nobodyさん2014/08/17(日) 16:26:13.76ID:???
>>873
Rubyはメソッド呼び出しのカッコを省略できる
0875nobodyさん2014/08/17(日) 18:38:10.19ID:???
ID出して質問しろ
いつも同じ奴じゃん
回答に礼もしないし
0876nobodyさん2014/08/17(日) 21:38:27.62ID:???
>>874
> メソッド名を英文字の大文字で開始した場合には括弧は省略できません。
なるほど…。
関数を実行するんじゃなくて関数自体を取得したいときはどうするん?無理??
0877nobodyさん2014/08/17(日) 21:47:49.38ID:???
>>876
Object#methodを使えばいい
0878nobodyさん2014/08/17(日) 23:19:14.20ID:???
railsのパフォーマンスで気をつけるべきことは何?
素のSQL書くわけにもいかないしDBまわりはある程度妥協するとして他には?
0879nobodyさん2014/08/17(日) 23:54:07.49ID:???
RailsでHTMLだけ描いてpjaxで返すようにしたら遅くなったから
JSONだけ返してJSで全て描くようにしたらいい
0880nobodyさん2014/08/18(月) 03:45:07.85ID:PRdXpwjC
ActiveRecord::Base.transaction
と
connection.execute(mysql直書き)
とを組み合わせたら、大量の処理も一瞬でこなすすぐれものになったのですが、
これに落とし穴ってありますか?
何かありましたら教えてください
0881nobodyさん2014/08/18(月) 07:09:18.04ID:???
>>880
DBのポータビリティは落ちてるような気がするけど、ActiveRecordの機能を使わない選択肢も
あっていいんじゃない?
0882nobodyさん2014/08/18(月) 21:33:50.76ID:???
DBポータビリティが真面目に必要な案件なんてそうそうないからな。
0883nobodyさん2014/08/18(月) 23:45:11.08ID:???
connection.execute(sql) の戻り値ってどうなるの?
ARオブジェクトじゃないと使いづらそうだが。
08848802014/08/19(火) 20:01:09.85ID:Zk8d36P8
>>883
戻り値あるんですか?単にsql実行するだけかと思っていましたが。
かなり複雑な処理をしてcreateを連発ってことをやってて、gemのimportも効果がない案件でした。
10秒かかる処理が0.1〜0.3秒でこなすようになりました。
例外処理を少しやらなければいけないのかもしれません。自分はそこがよく分かっていませんが。
0885nobodyさん2014/08/19(火) 21:25:23.23ID:???
>>884
そういうバッチみたいなことならそういうやり方もあるだろうね
メインとなる読み出しの方は普通にActiveRecord使うってこと?
08868802014/08/19(火) 22:03:37.04ID:Zk8d36P8
>>884
当然メインはActiveRecordです。
これ以上出来ないくらい工夫してなお複雑大量の処理をせざるを得なかったので、荒業的に使ってみました。
初なので、これからrescueとか必要ぽいのを研究してまいります
0887nobodyさん2014/08/19(火) 22:15:58.47ID:???
> 当然メインはActiveRecordです。
だったらそう書かんと分からんやろ…
08888802014/08/19(火) 22:55:09.34ID:Zk8d36P8
>>887
元々はrescueで書くべき内容について知りたかったので書き込みしたのですが、その点いかがでしょうか?
0889nobodyさん2014/08/20(水) 00:26:20.76ID:???
>>872
ありがとう
DB鯖(MySQL)とアプリ(&Unicorn)を分けるだけで
そんなにも早くなるの?

なんかネットワーク越えとかさせると遅くなりそうなイメージだけどなぁ


ちなみに一日あたりのPVはどれくらい?
0890nobodyさん2014/08/20(水) 08:10:17.04ID:???
http://jobinjapan.jp/job-listing/keyword-ruby-on-rails.html
0891nobodyさん2014/08/20(水) 10:41:32.34ID:???
rails初心者です。

Hogeモデルに適当なメソッドを作成し
そのメソッド内部でPiyo.find(:all)を書きました。
そのメソッドを適当なViewから呼び出してみたのですが
ActiveRecord::RecordNotFound というような例外が発生し
Piyoモデルのすべてのデータを取得できませんでした。

試しにメソッド内部のコードをPiyo.countに変えてみると
Piyoモデルのカラム数を取得できました。
あるモデルから別のモデルのデータを取得することはできないのでしょうか??

なにかお気づきの点があったらご指摘お願いしますm(_ _)m
0892nobodyさん2014/08/20(水) 11:48:13.88ID:???
ID出して質問しろ
0893nobodyさん2014/08/20(水) 17:06:51.14ID:???
find_all
where
0894nobodyさん2014/08/20(水) 17:21:01.35ID:???
>>889
1日平均10万PVくらいだよ

DB鯖とAppサーバーを分けるのは高速化したいなら必須というかまず最初にやるべき
さくらのSSD使ってるなら石狩でしょ?ローカル接続で繋げられるから遅延0だよ
0895nobodyさん2014/08/20(水) 19:53:08.64ID:???
>>894
ありがとう
ローカル接続って特殊なことしなきゃダメ?
それともconfigのproductionのデータベース接続で普通に直IPを指定してやればいいだけなのかな?
08968912014/08/20(水) 22:44:35.44ID:???
>>893
ありがとう
ずっとrails3の仕様みてました(汗

>>892
IDってこれでいいの?
0897nobodyさん2014/08/21(木) 02:05:58.32ID:???
>>895
流石にそれはスレチだからぐぐってくれ
0898nobodyさん2014/08/21(木) 19:01:38.82ID:???
>>864
>>888
>>895

いざと言う時には答えられないよ、こいつらはw
0899nobodyさん2014/08/21(木) 21:16:32.00ID:???
煽って回答貰おうとするとか惨め過ぎるだろ
0900nobodyさん2014/08/21(木) 21:20:42.03ID:???
>>897
>>898
>>899


↑こいつら同一人物注意

以前ここで質問するも
あまりにも稚拙な質問だったためスルーされた

それを機にこのスレの住人に敵意むきだし
0901nobodyさん2014/08/21(木) 21:32:40.70ID:???
>>900
おたく「稚拙な質問」と言うくらいレベル高いなら手始めに>>898>>899あたり答えてみれば?
答えられないから煽り教えて君とか言って逃げるだろうけどw
0902nobodyさん2014/08/21(木) 21:34:42.47ID:???
あっ、>>888>>895な
>>864あたりだとさすがに即答だろうしつまらんし
0903nobodyさん2014/08/21(木) 21:39:05.41ID:???
質問者が少しレベルの高い質問をする
→答えられる奴不在
→レベル低いスレ住民と馬鹿にする人間が出現
→煽り教えて君と自己防御

こればかりだなw実際は質問者と馬鹿にしている人間は全く別なんだが、逃げ方が頭悪いからワンパターンw
0904nobodyさん2014/08/21(木) 22:07:38.36ID:???
煽り教えて君w
的確な表現だな
09052532014/08/21(木) 22:15:49.58ID:OGslXsxj
>>895
Rails側はdatabase.ymlを書き換えてDB鯖を見に行くようにすればok
0906nobodyさん2014/08/21(木) 22:51:23.41ID:???
>>905
やっと"煽られて"一問答えられる奴が出てきたな
基本は何も答えられない>>904みたいな愚図ばかりw
0907nobodyさん2014/08/21(木) 23:13:03.44ID:???
>>904
どうした?雲隠れか?残った問題でも解いて名誉挽回してみろよw
虫けらが
0908nobodyさん2014/08/21(木) 23:24:01.91ID:OGslXsxj
>>888
漠然とした問いなんで漠然とした答えしか書けないが、
DBのロールバックかけつつ、エラーメッセージ出したりエラーログ吐いたりアラートメール飛ばしたり、とかかね。

システムの運用保守体制やら考慮して、としか答えられんわ…
0909nobodyさん2014/08/21(木) 23:30:18.13ID:OGslXsxj
そういえば、皆はRailsで作ったサイトの死活監視やらリソース監視とか何使ってる?
0910nobodyさん2014/08/21(木) 23:47:29.79ID:???
ワンパな煽りw
0911nobodyさん2014/08/22(金) 00:01:51.00ID:???
>>910
結局答えられない虫けらかよ
俺は解答こそすれ一回も質問したことないんだがw
答える気もないなら、なんでここに常駐してるんだ?皆煽り〜君に見えるんだろ?
お前みたいなゴミクズはどこにいても役に立たないから、存在価値なし。バイオ燃料にでもしてもらっとけよ、下等生物が
0912nobodyさん2014/08/22(金) 00:03:44.34ID:???
>>909
zabbixなどの一般的な監視システムじゃね。
JavaでのJMXのような仕組みがRubyにはない(ある?)から、もう少し突っ込んだ情報が欲しいとなると、作り込みになるけど。
0913nobodyさん2014/08/22(金) 00:17:38.77ID:???
>>900
悪いけど
>>872
>>894
>>897
これは全部俺だよ
疑心暗鬼になるのは別にいいけどところ構わず噛み付くのは良くないと思うよ

>>897の発言だけど
それ以前の内容は実際に運営してる人じゃないと答えられないことだから答えたけど
別IPのDBにアクセスするなんて初心者用教本にも載ってるレベルの内容だし
流石にググったほうがいいでしょ
「rails database.yml 別サーバー」とかで検索すればいくらでも出るじゃん?
例:http://d.hatena.ne.jp/japanrock_pg/20070920/1190288070
1から100まで教えるのがこのスレの目的って言うなら教えるけど流石にそのレベルまで教えなきゃいけないんだったら
悪いが俺はROMるわ


くだらない煽りあいするくらいなら次スレ以降
質問者はIDを出して初出レスNoを名前欄に出すでいいんじゃない?
09149132014/08/22(金) 00:20:47.27ID:???
ああ、違うわ
レス読み直したら俺がぐぐれって言ったのは

「さくらVPS同士をつなげる方法」と、「特殊な対応」の点だな
これはRailsまったく関係ないからスレチって言ったんだ
このスレはRails関係ないとこまで懇切丁寧に教えるべきなの?
09159112014/08/22(金) 00:23:11.83ID:???
ちゃうで
ほとんど答えられない虫けらが疑心暗鬼さだけ曝け出しているのがこのスレだから、たまに矯正してやらなあかんのよ
おつかれさん
0916nobodyさん2014/08/22(金) 04:02:06.32ID:???
http://jobinjapan.jp/job-listing/keyword-ruby-on-rails.html
0917nobodyさん2014/08/22(金) 07:46:06.04ID:X3q7esOV
>>912
やはり、ZABBIX辺りになりますか。
昔、監視項目の設定で挫折したけど、もう一度チャレンジしてみるか…
0918nobodyさん2014/08/22(金) 23:09:27.40ID:???
煽っても回答貰えなくて悔しいです
0919nobodyさん2014/08/23(土) 11:05:49.58ID:???
>>918
横レス悪いけど君みたいなの死んでよし
0920nobodyさん2014/08/23(土) 12:20:33.39ID:???
【翻訳】Go言語がダメな理由 | POSTD
http://b.hatena.ne.jp/entry/postd.cc/why-go-is-not-good/

Farewell Node.js (翻訳) - from scratch
http://b.hatena.ne.jp/entry/yosuke-furukawa.hatenablog.com/entry/2014/07/06/094617

PHP、かつてWebで人気だった言語が下火になりつつある | ReadWrite Japan
http://b.hatena.ne.jp/entry/readwrite.jp/archives/12295

Why do so many developers hate PHP?
http://www.reddit.com/r/PHP/comments/1fy71s/why_do_so_many_developers_hate_php/
0921nobodyさん2014/08/23(土) 22:50:38.87ID:???
>>918
俺もこういう奴消えて良いと思う
質問を選別するからいつまでもこのスレが荒れたままなのだろう
0922nobodyさん2014/08/23(土) 23:30:37.26ID:???
会員制サイトやってるんだけど
大してアクセス数がないのに重すぎます。

会員制なだけにページキャッシュの選択肢は難しいですし、
フラグメントキャッシュは大して効果がないと聞いています。

こんな状態で

アプリケーションサーバーとDBサーバーを分けるだけでレスポンスが早くなるもんでしょうか?
0923nobodyさん2014/08/23(土) 23:38:43.79ID:???
DB設定から疑う。
メモリ割り当てが極端に小さくなっていないか、とか。
0924nobodyさん2014/08/23(土) 23:53:01.70ID:???
まずはプロファイリングだね
どこが遅いかを突き止めないと
0925nobodyさん2014/08/24(日) 00:42:41.93ID:???
>>918
こういう虫けらいらない
0926nobodyさん2014/08/24(日) 00:50:47.69ID:???
>>922
dbは何?バージョンは?
max_connectionsはいくつ?
ピーク時のconnection数は?
0927nobodyさん2014/08/24(日) 00:51:02.60ID:???
>>923
どのくらい割り当ててる?

>>924
sqlのロードだけで1000ms近くかかってる
0928nobodyさん2014/08/24(日) 00:55:15.32ID:???
>>927
じゃ、次はそのSQLの内容を見て、なぜ遅いかを突き止めることだね
DBの実行計画を見るとかね
0929nobodyさん2014/08/24(日) 00:57:00.63ID:???
>>926 ありがとうございます。メモリはさくらSSD VPSの2GBで
DBはMySQL5.1でmy.cnfは下記のとおりです

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 512M
table_cache = 256
tmp_table_size = 256MB
join_buffer_size = 1M
thread_cache = 8
thread_concurrency = 8
thread_cache_size = 60
query_cache_size = 32M
max_connections = 100
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 1M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character_set-server=utf8
innodb_buffer_pool_size=384M
innodb_log_file_size=128M
slow_query_log=ON
slow_query_log_file=mysql-slow.log
long_query_time=1
0930nobodyさん2014/08/24(日) 00:57:35.43ID:???
[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
default_character_set=utf8

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
0931nobodyさん2014/08/24(日) 03:34:53.65ID:???
ちなみにアプリサーバーとDBサーバーを切り分けることを試してみました。
DBサーバーのMySQL5.5の設定は
>>929、>>930の設定と同様にしました。

結果としては、速度向上は体感できませんでした。

やはり>>929、>>930の設定
もしくは、発行しているSQLに問題があるのでしょうか。。。。
0932nobodyさん2014/08/24(日) 10:00:58.98ID:???
ここはRailsスレだ
はっきり言うがスレチだ
せめてActiveRecordでこういう風に発行してるくらいあるならまだ答えるけど
Mysqlの設定ズラズラ並べるならここで聞くよりからその話題に関してはMysqlスレ行ったほうがいい
そっちのほうが質のいい答え帰ってくるから

あとSQLもindexもテーブル構成も貼らないのにエスパーは出来んよ……
ちなみにそれに関してもSQLスレがあるからそっちでどうぞ

Railsとあまりにも関係ないことは専門の人が居るとこ言ったほうがいいよマジで
ここはRailsスレだからインフラ周りは仕方なくやってる人が多いだろうし専門の人は少ないだろう
0933nobodyさん2014/08/24(日) 11:19:14.15ID:???
>>932
ご指摘ありがとうございます
せめてDBサーバーとアプリサーバーの切り分けの効果について教えていただけませんか?

Railsでこれが本来どれほどの効果をもたらすのかは知りたいところです
0934nobodyさん2014/08/24(日) 11:20:08.56ID:???
>>931
分けて同じなら、DBでほぼ間違いないだろうな。
0935nobodyさん2014/08/24(日) 13:45:18.63ID:???
>>900>>904>>910>>918
こういうのって一問も答えられないのにこの板を荒らしに来る荒らしだと思われ
完全スルーすべき無能な下層の人々だと思う
現実世界では確実にニーズない人材
0936nobodyさん2014/08/24(日) 14:13:14.47ID:???
>>933
そんなのはケースによるとしか

一般論としてはDBがCPUやメモリやディスクIOを食いまくっててRailsのプロセスにリソースが
まわってきてない状態だったら分ける効果はあるだろうけど

何にせよパフォーマンス改善は闇雲にやるんじゃなくて、きちんとした原因追跡が最重要
小手先でこねくりまわす暇があったら状況分析に力を注ぎましょう
0937nobodyさん2014/08/24(日) 15:05:31.38ID:???
>>936
ありがとうMySQLチューナーとか使って色々ためしましたが
あまり効果がないようです

やはりページキャッシュ化していくしかないようです
しかし、会員制サイトなので難しいです。
かといってフラグメントキャッシュは効果的じゃないみたいですね
0938nobodyさん2014/08/24(日) 18:59:48.46ID:???
dbの最大同時接続数はいくつ?
show global status like 'Max_used_connections';
0939nobodyさん2014/08/24(日) 19:02:35.41ID:???
>>937
色々試すんじゃなくて、原因をしっかり特定しろと言ってるんだよ
原因が分からない状態で対策の立てようなんかないだろ?
0940nobodyさん2014/08/24(日) 19:52:13.44ID:???
>>938
6でした
0941nobodyさん2014/08/24(日) 20:34:48.03ID:???
Max_used_connectionsが6ならば、appサーバとdbサーバを分割する必要は全くない。
0942nobodyさん2014/08/24(日) 22:31:51.30ID:???
トータル2GBしかないから、逆にメモリ割り当てが大きすぎる?

この辺
key_buffer_size = 512M
tmp_table_size = 256MB
innodb_buffer_pool_size=384M

InnoDBつかってるなら、上二つをもう少し減らせる(最低限システム用があればいいから)。
MyISAMつかってるなら、そもそもskip-innodbしてしまうとか。
09439322014/08/24(日) 23:38:52.39ID:???
>>933
切り分けの効果と言われてもケースバイケースだからなんとも言えない
アプリがほぼ静的だったら切り分けても効果ない

他の人も言ってるけどまずは特定しろ
「料理がまずいです。鍋が悪いと思うので包丁交換したほうがいいですか?」
君の発言はこんなレベル
しょっぱいのかこげたのかも何もわからないし何もアドバイス出来ない
原因もわからず塩追加したり水いれたり火力下げたり

それで直るわけ無いじゃん
0944nobodyさん2014/08/25(月) 16:34:00.83ID:???
クックパッドのRailsリニューアル
http://www.slideshare.net/hashikem/rails-presentation-667968

ページキャッシュをしようとした場合の問題
ログイン情報による動的な変化

「○○さんようこそ」
アクセスログ
広告配信

この3つについて、 Ajax の1リクエストで処理
0945nobodyさん2014/08/27(水) 00:23:02.48ID:NypxgQhc
配列にnilを追加する方法はありますか?
後で、compactを使って消し去るので、空白処理よりnilで処理しておいた方がやりやすいのですが
0946nobodyさん2014/08/27(水) 00:54:12.76ID:???
>>945
nil でも何でも追加できるけど?

[] << nil << nil
=> [nil, nil]
0947nobodyさん2014/08/27(水) 01:00:37.73ID:NypxgQhc
>>946
ありがとうございます!!
0948nobodyさん2014/08/27(水) 04:04:24.17ID:???
二度と来るなクズ
0949nobodyさん2014/08/27(水) 07:27:56.85ID:???
これは>>948に同意せざるをえない。
0950nobodyさん2014/08/27(水) 19:31:13.97ID:???
>>947>>948>>949
二度と来るな虫けらが
0951nobodyさん2014/08/27(水) 20:19:15.81ID:???
Rubyなんて冗長な糞言語にRoRなんて欠陥だらけの糞FWとか終わってんな
0952nobodyさん2014/08/27(水) 22:31:46.96ID:???
>>944
具体的に言うとどういうこと?
0953nobodyさん2014/08/27(水) 23:24:21.51ID:???
>>952
自分で調べろカス
0954nobodyさん2014/08/28(木) 08:28:08.21ID:???
>>953
ガキはふ菓子がしでも食ってろ
09559322014/08/28(木) 10:39:54.71ID:???
Railsが欠陥だらけの糞FWってのはまあ主観だけどRubyが冗長って……
PHPで比べても3倍以上行数削減できるのに
0956nobodyさん2014/08/28(木) 14:46:31.19ID:???
Railsが欠陥だらけの糞FWは主観ではなく事実でありRubyが冗長なのは事実である
まともなやつPythonを使いRubyなんて使うのは馬鹿なやつ
PHPと比べて3倍以上行数削減なんてのも嘘っぱち
09579322014/08/28(木) 15:19:27.04ID:???
これに関しては流石に>>956はアホすぎるとしか言い様がない
09589322014/08/28(木) 15:29:58.55ID:???
>>956は死ぬべき
09599322014/08/28(木) 15:30:28.18ID:???
こういう馬鹿がいるからRailsスレはゴミなんだよ
0960nobodyさん2014/08/28(木) 20:44:11.12ID:???
だなw>>959みたいな馬鹿がいるRubyは完全に糞
0961nobodyさん2014/08/28(木) 21:01:12.19ID:???
Railsは国内での開発案件が急上昇でPHPに並んだらしいな。
来年は追い抜くことになるけど、はたしてどの位差がつくか。
0962nobodyさん2014/08/28(木) 23:40:32.90ID:???
d1 = "user_id = ?" + " AND money = ?"
d2 = ", #{params[:user_id]}, #{params[:money]}"

if params[:unko]
d1 += " AND unko = ?"
d2 += ", #{params[:unko]}"
end
if params[:manko]
d1 += " AND manko = ?"
d2 += ", #{params[:manko]}"
end
d=d1+d2
results = Hogero.where(d)

こういう感じで複数の検索条件を使った検索をしたいと思っているのでが、プレースホルダのところにハマってくれずうまくいきません。
プレースホルダを使ったやり方は難しいのでしょうか?自前でやるとするとどういうやり方があるのでしょうか?
0963nobodyさん2014/08/28(木) 23:43:30.38ID:???
where でつないでいった方がはるかに簡単

user = User.where(user_id: params[:user_id).where(money: params[:money]
user = user.where(unko: params[:unko]) if params[:unko]
user = user.where(manko: params[:manko]) if params[:manko]
0964nobodyさん2014/08/28(木) 23:54:27.43ID:???
>>962
自分で解決出来ない低能
0965nobodyさん2014/08/28(木) 23:56:56.49ID:???
>>963
失った時間で何回シコシコできたことか・・・
あっ、すみません、ありがとうございました!!
ORでつなぐのは難しいけど、ANDは簡単なものが用意されてたんすね
0966nobodyさん2014/08/28(木) 23:57:50.56ID:???
>>964
ここで荒らしてる低能と同じレベルだよ
チンシコして眠ろうぜ愚民同士
0967nobodyさん2014/08/29(金) 00:09:00.84ID:???
>>964
おい!ゴミクズのお前が次スレ立てとけ!どうせ暇なんだから
0968nobodyさん2014/08/29(金) 00:32:05.93ID:???
>>965
二度と来るな低能
0969nobodyさん2014/08/29(金) 00:33:40.64ID:???
>>968
毎日のように質問者にイチャモンつけてる低能だろ
お前みたいな奴がいるからこのスレ荒廃してんだよ
お前みたいなクズはどこでも誰からも必要とされないんだよ
0970nobodyさん2014/08/29(金) 01:06:52.50ID:???
何を今更
Rubyなんてもともと荒廃してんだろ
0971nobodyさん2014/08/29(金) 23:07:13.87ID:???
recommendify使うのとmahoutで自作するのどちらがオススメですか?
私はmahoutで自作してます
0972nobodyさん2014/08/29(金) 23:37:14.32ID:???
>>971
どちらもオススメでない
なぜなら荒廃してる糞なもので何を作っても無駄だからである
0973nobodyさん2014/08/29(金) 23:51:10.22ID:???
アンチがいるのは世間に認められている証拠だね
本当にダメダメなら完全に無視されるだけだから
0974nobodyさん2014/08/30(土) 00:59:25.61ID:???
>>972
相対的にどうなのかをアンケートしているわけで、
その順位を答えられないレベルの人間は答えなくていいよ。
どっちも使ったことないんだろ、どうせ。
0975nobodyさん2014/08/30(土) 01:17:50.08ID:???
認められてるわけないだろ
笑わせんな( ^∀^)ゲラゲラ
0976nobodyさん2014/08/30(土) 01:21:48.21ID:???
RoRはゆとりがさっくり糞重いアプリケーションを量産するセキュリティ欠陥だらけの欠陥システム
0977nobodyさん2014/08/30(土) 01:32:07.24ID:???
>>972>>975
最近低レベルな分際で質問者を罵倒したりしてんのもこいつだろうな
使えないと認定しているもののスレに来て毎日くそみたいなレスしていくってどんだけ効率悪い人生なんだろう
ここでツバ吐いてもお前のその虫けら相当額の給料は一銭も変わらないというのにw
社会から認められていないゴミクズの行動は非常に非合理的だよ(笑)
その滑稽さで楽しませてくれw貧民のクズ野郎が
0978nobodyさん2014/08/30(土) 01:34:58.17ID:???
>>972>>975>>976
あっ、こいつ、うちの窓際です!
リストラ寸前の最下層なんですが、会社では一言もしゃべりません!
こんなところでペラペラしゃべっていたんですね!
うちの会社の虫けらがご迷惑おかけしました!間もなくクビにできますのでご容赦を!
0979nobodyさん2014/08/30(土) 01:37:06.71ID:???
Rubyなんてやってるとこのように頭がおかしくなってしまうから初心者は注意
妄想だけで生きてるガチクズの集まりそれがRoRスレ
0980nobodyさん2014/08/30(土) 01:41:38.83ID:???
>>972>>975>>976>>979
会社の人が迎えに来てるんだから帰れよw
薄給でクビ寸前なんだろ?努力しないの?
違う所で鬱憤を消費しちゃうから君はいつまでもクズなのだよ^^
お前ごときが統計分かるわけねえだろwじゃあな
0981nobodyさん2014/08/30(土) 01:45:34.96ID:???
>>980
もう二度と来るなクズ
0982nobodyさん2014/08/30(土) 01:49:09.17ID:???
>>981
お前も消えろよここでも社会でも必要ないんだよゲロ野郎が
0983nobodyさん2014/08/30(土) 01:56:59.61ID:???
妄想こじらせた信者の集まり
オー怖い怖い
初心者はこんなところさっさとさりましょう
洗脳されて変な人になります
0984nobodyさん2014/08/30(土) 02:56:40.60ID:???
おまいら Rails最後のスレなんだから 後17レス大切に使え!
0985nobodyさん2014/08/30(土) 04:29:09.19ID:???
>>984
卒業おめでとう。達者でな。
0986nobodyさん2014/08/30(土) 06:42:04.99ID:???
RubyもRoRも終了したから次スレはいらんな
0987nobodyさん2014/08/30(土) 11:03:26.68ID:???
>>986
じゃ、お前は次スレに来なくていいよ
RubyもRoRも終了してるんだから次スレも過疎るだけのはずだもんね!
0988nobodyさん2014/08/30(土) 19:35:50.21ID:???
RailsアプリからTwitterにツイートを送信したいです。

ググったところ、コールバックを利用して
各ユーザーごとでTwitterにログイン→認証して、各ユーザーのTwitterへツイートを送信
という例は沢山あります。

しかし、やりたいのは
各ユーザーがいちいちログイン認証せずとも
こちら側で用意した1つのTwitterアカウントに
一律毎回ツイートを送信したいです。

何か参考になる方法をご存知の方がいましたらご教授ください
0989nobodyさん2014/08/30(土) 19:55:14.39ID:???
>>988
キチガイ
0990nobodyさん2014/08/30(土) 19:55:39.92ID:???
>>988
こいつはマジでクズ
0991nobodyさん2014/08/30(土) 20:11:11.97ID:???
>>989みたいな基地害って
なんで他人に頼る前提でプログラミング始めるんだろ
0992nobodyさん2014/08/30(土) 20:46:22.65ID:???
>>988
自分で用意したアカウントなら、単純にログインしてツイートすればいいだけじゃね?
0993nobodyさん2014/08/30(土) 20:57:20.83ID:???
>>992
その方法がどこにも例が見あたりません
0994nobodyさん2014/08/30(土) 21:42:50.65ID:???
>>993
Ruby Twitter post でぐぐれ
0995nobodyさん2014/08/30(土) 22:06:58.06ID:???
>>993
人に頼ることしか出来ないゆとり
0996nobodyさん2014/08/30(土) 22:14:11.16ID:???
unko
0997nobodyさん2014/08/30(土) 22:14:43.35ID:???
chinko
0998nobodyさん2014/08/30(土) 22:15:15.73ID:???
manko
0999nobodyさん2014/08/30(土) 22:15:50.50ID:???
sikko
1000nobodyさん2014/08/30(土) 22:16:21.63ID:???
pennis = Pennis.find(1000)
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。