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

【RoR】Ruby on Rails Part18

■ このスレッドは過去ログ倉庫に格納されています
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
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
一人で何やってんの?
■ このスレッドは過去ログ倉庫に格納されています