【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
0313nobodyさん
2014/05/13(火) 23:07:46.16ID:???0315nobodyさん
2014/05/14(水) 22:34:19.83ID:???という皮肉かと
0316nobodyさん
2014/05/14(水) 23:43:03.92ID:0Cc29kMyself.class.nameがnilです。
名前がないクラスなんですかね?
0317nobodyさん
2014/05/16(金) 21:13:11.48ID:uX+vzxIxいや、俺が質問者で、英語の検索結果くれたから、英語で返事したんだよ。
当方TOEIC900近くはあるから問題なく読めて解決した。
皮肉のつもりはないよ。ありがとさん
0318nobodyさん
2014/05/17(土) 19:48:44.85ID:???スパイソフトを埋め込んだ米国製PC、ルーター、サーバーが、日本を含む世界へ拡散
http://www.amazon.co.jp/gp/product/4105066919
0319nobodyさん
2014/05/18(日) 23:12:34.62ID:hk8drueV0320nobodyさん
2014/05/18(日) 23:16:10.04ID:???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できればjquery-fileupload-railsあたりを使いたいと考えています。
jquery-fileupload-rails+carrierwave+Rails4このあたりで詳細サイト知っていたら教えて下さいませんか?
0322nobodyさん
2014/05/18(日) 23:33:47.58ID:???3のサイトのやつを4で試して動かなかったらまた聞けばいい
まずは試せ、手を動かせ
0323nobodyさん
2014/05/21(水) 16:47:14.11ID:???0324nobodyさん
2014/05/22(木) 21:33:08.41ID:???例えばvalidation。
多対多(Hoges : Moges)の関係にあるモデルの一方(Moge)をsaveしようとすると
"Hoge can't be blank"というvalidation errorが発生して
saveが失敗してしまい困った記憶がある。
慣れないfield_forを使っていたせいもあり、
どうしたら良いのか分からずその時は敗北宣言的に迂回してしまったが、
未だに気になってる。そういうのがチラホラあるので勉強しなきゃなと。。
0325nobodyさん
2014/05/22(木) 22:21:50.23ID:R9eMlpe5例えば上野浅草エリアとか
0326nobodyさん
2014/05/22(木) 23:02:48.21ID:???0327nobodyさん
2014/05/22(木) 23:41:19.05ID:???0328nobodyさん
2014/05/23(金) 11:57:24.92ID:???0329nobodyさん
2014/05/23(金) 14:47:19.40ID:stzGS3lF0330nobodyさん
2014/05/23(金) 15:25:30.61ID:???0331nobodyさん
2014/05/23(金) 21:14:44.51ID:shajvKcu良い例見つけました!
こういうので住所入れたらエリアが自動で出てきます。
この仕組みが知りたいっす。
0332nobodyさん
2014/05/23(金) 22:34:01.29ID:???0334nobodyさん
2014/05/24(土) 21:26:52.46ID:1qo8C4LdDocuments/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:???0336nobodyさん
2014/05/26(月) 02:20:32.01ID:5+hysLvgありがとうございます!
>>333
api使えば世界対応も可能っちゅうことかもしれませんね。あざす!!
0337nobodyさん
2014/05/28(水) 01:47:46.31ID:???0338nobodyさん
2014/05/28(水) 07:08:14.63ID:???0340nobodyさん
2014/05/28(水) 08:45:35.41ID:???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:J5yjoJnZ0345343
2014/05/31(土) 19:24:39.23ID:???ありがとうございます。@instance = Model.new だけで十分でしたね。。
0346nobodyさん
2014/05/31(土) 19:24:52.08ID:???0348nobodyさん
2014/05/31(土) 20:33:30.11ID:J5yjoJnZ0349nobodyさん
2014/05/31(土) 21:36:29.54ID:???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すんません。ざっくりとしかイメージがわいていないので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
•<input>を<label>の子要素とする
<label><input type="checkbox" name="check1" />Check1</label>
0355nobodyさん
2014/06/03(火) 08:00:47.64ID:???すればいいじゃん
0356nobodyさん
2014/06/03(火) 08:59:59.19ID:???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:???0358nobodyさん
2014/06/03(火) 17:17:13.70ID:???コントローラのメソッドから特定の返り値を取得したいのですが、
stubを使って書く際のObjectをどのように指定したら良いか分かりません。
[ここに何かが必要だと思うけど分かりません].stub(:method).and_return(value)
スタブで取得することは可能でしょうか?
可能な場合どのようにオブジェクト指定したらよいのでしょうか?
0359nobodyさん
2014/06/03(火) 20:38:27.53ID:Ip12GRTVえぇ、それはできますよ。
>>354にある通り、ラジオボタンやチェックボックスを内包したラベルを作りたいのです。
これがrailsから導く方法が難しいんですよね。
0361nobodyさん
2014/06/04(水) 19:29:38.02ID:6xizC0Eiなるほど。なかなかハードル高そうですが、手っ取り早く記述だけで何とかなるもんじゃないんですね。
先の例のもう片方のように。
0362nobodyさん
2014/06/04(水) 20:10:21.69ID:???<% f.label 'check1' do %>
<font size=7>Check1</font>
<% end %>
0363nobodyさん
2014/06/04(水) 21:51:45.24ID:efQEBuMUありがとうございます!!!!!
さすがです!!
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:???0366nobodyさん
2014/06/06(金) 06:25:27.83ID:???そこらへんをどうするかイマイチぴんと来ていません
調べたところ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:???なんらかのリンクをクリック
非同期通信
結果を表示
という事をよくやるのですが、大抵のサイトではクリックしたあとにグルグルと画像が回ると思います
これをRailsでやろうと思うとjqueryで無理やりフックしないとダメですか?なにかしらスマートな方法がないかなーと考えていたのですが
0369nobodyさん
2014/06/08(日) 13:59:51.28ID:???0370nobodyさん
2014/06/08(日) 14:19:06.97ID:???0371nobodyさん
2014/06/08(日) 14:27:10.31ID:???0372nobodyさん
2014/06/11(水) 12:14:10.18ID:???アクティブユーザーがそこそこ賑わっていて常にユーザー情報の更新や
投稿が行われるサイトは
よーく設計してdalliとかredisを使いつつページキャッシュやフラグメントキャッシュも使いこなさないと激重くない?
indexとかも貼るべきには貼ってるし検索とかはsolrを使ってる
しかし糞重い
ページがサクサクロードできるようなサイトって
変更あったら書き出してページキャッシュか何かにしてんの?
さくらVPS SSD2GB 2コアを使ってても
こんなに遅く感じる
0373nobodyさん
2014/06/11(水) 13:54:35.52ID:???何が重いの?プロファイリングしてみた?
Railsで重いサイトは大体は集約関数周りでこけてることが多いな
ページキャッシュはある程度の規模からやってるとは思うけど
フラグメントキャッシュまでやってるところはあまりなくね?
0374nobodyさん
2014/06/11(水) 15:08:34.00ID:???miniprofiler使ってる
時間がかかってるのは
複数のテーブルを紐づけて
関連先のカラムでソートかけて取り出したりとかが重いね
それにロードするごとに沢山のコードが動く
会員制だから仕方ないよね
ちなみに会員制敷いてると
ページキャッシュ無理じゃね?
0375nobodyさん
2014/06/11(水) 15:15:12.82ID:???カウンターキャッシュみたいに
countカラムを用意するのが定石?
そしてメッセージの送信後に送信先相手のcount件数を計って更新ってな具合にすべきかな?
0376nobodyさん
2014/06/11(水) 15:53:19.51ID:???各会員専用が主だとページキャッシュは無理だね
一部なら、そこだけ非同期にしてキャッシュする
MySQLかな?JOIN先ソートとか苦手だけど、それが重いなら対処すべきよ
きちんとインデックス使われてるのかね?
たくさんのコードってSQL?会員制だから仕方ないとかは内容次第だろうね
共通部分をできる限りキャッシュするしね
0377nobodyさん
2014/06/11(水) 20:13:40.78ID:???0378nobodyさん
2014/06/11(水) 20:36:00.81ID:???一部ならそこは非同期ってなると
結局フラグメントキャッシュになるよね?
>>376, >>377
そうMySQL
きちんとインデックスって
これらを守ってインデックス貼ってるんだけど
・○○○_idなどアソシエーションに使われるカラムには全てindexを貼っている
・検索対象となるカラムには全てindexを貼っている(且つsolrを利用)
0379nobodyさん
2014/06/11(水) 20:36:33.73ID:???0380nobodyさん
2014/06/11(水) 20:37:05.37ID:???そんなに早いの?
ニコ生みたいにリアルタイムで更新されまくるような仕組みもイケちゃう系?
0381nobodyさん
2014/06/11(水) 20:38:21.89ID:???SQLクエリ見たところで
何がボトルネックになって
こんなに時間がかかってるのか分からない
1つのコード実行した、それだけでも時間がかかりまくってるし
0382nobodyさん
2014/06/11(水) 20:40:37.57ID:???非同期部分を除いてキャッシュするって意味
フラグメントキャッシュは概念全然別
>>381
時間がかかっていることが多いSQLの実行計画を見るのは定石
0383nobodyさん
2014/06/11(水) 21:41:42.39ID:???0385nobodyさん
2014/06/12(木) 05:44:15.06ID:???キャッシュも殆ど使ってないしリアルタイム制すごい高いけど余裕で400ms以内で返せてる
Railsが悪いんじゃなくて設計が悪いんじゃない
何が遅いかも調べられてないのにスペックだけ良くしても意味が無いよ
0386nobodyさん
2014/06/12(木) 07:49:02.68ID:???例えば常にアクティブユーザーが100人いたとして
ツイートするごとにユーザーのポイントが加算されるような
究極のリアルタイム性の高い計算と更新が行われるような会員制だと
キャッシュなしじゃ厳しくないか?
0387nobodyさん
2014/06/12(木) 07:50:37.57ID:???ちなみに
apache?
nginx?
だとしたらMySQLの設定側(チューニング)に問題あるのかな
混んでないときでも
1ページ開くときにクエリ実行だけで1300msとかかる
重いページだと3000ms以上
どうなってんだー
0388nobodyさん
2014/06/12(木) 09:36:29.91ID:Jzl38UQKhttp://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
0390nobodyさん
2014/06/13(金) 10:36:58.72ID:???出力時になぜか
○○○.jpg?758856
みたいに訳の分からないパラメーターが勝手につくんだけと
これって無くせる?
0391nobodyさん
2014/06/13(金) 11:00:11.81ID:???0392nobodyさん
2014/06/13(金) 11:12:13.86ID:???えっ?
?173747みたいなのがつくとキャッシュされてるの?
assets使ってprecompileしてるから
?27447みたいなのが付くのかな
これが付くとgoogleの画像検索とかにヒットしなくなりそうじゃない?
0393nobodyさん
2014/06/13(金) 16:06:57.01ID:???Rails関係ないからこれはおまけだからな!
画像ファイルをキャッシュする設定にしていた場合ブラウザは
「キャッシュが残っていればそれを使うし、サーバーには問い合わせない」
から、サーバー上でファイルを変更してもその変更したファイルを取得してくれない
これは画像だけじゃなくてcssとかもそう。変更したのに変更されてない不具合の9割はこれ
その対策としてどうすればいいかというと
hoge-hoge.jpgってファイルを使っていたなら、ファイル名をhogehoge-hoge2.jpgみたいに変更すれば違うファイルとして扱われるからキャッシュを無視してリロードしてくれる
でも全ファイル毎回ちょこっとずつファイル名かえるなんて正気じゃないよな?
そこで、hoge-hoge.jpg?20140613みたいな感じで?とキーを送る、そうすると?以降だけ変えれば違う名前のファイルとしてキャッシュを取り直してくれるんだ
これによって俺らはファイル名を毎回変更するなんて手間をかけずにみんなに新しいファイルを届けられてるわけだ
んで、この手法はもう15年以上使われてるから画像検索うんぬんとかなんも心配しなくてもいい感じにやってくれるよ
0394nobodyさん
2014/06/13(金) 17:08:50.74ID:???非常にわかりやすい説明をありがとう
なるほどね前回のキャッシュを読み込ませないための工夫だったってことね
そして、Googleなど検索エンジンは
?以降は無視して画像をインデックス化していってくれてるってことか
ありがとう
0395nobodyさん
2014/06/13(金) 19:09:01.06ID:???turbolinksの素晴らしさと優位性を力説してもらえないだろうか?
0396nobodyさん
2014/06/13(金) 20:18:11.06ID:???リンクをクリックすると、ページ遷移ではなく Ajax でサーバにアクセスする
返ってきた結果から body 要素の内容だけ抜き出して置き換えてくれる
またブラウザのヒストリも書き換えてくれるので、戻るボタンもきく
スタイルシートやスクリプトを評価しなおさなくて済む分、早い
プログラマは上記の処理内容をほとんど意識する必要がなく、お手軽
0397nobodyさん
2014/06/13(金) 21:24:40.13ID:???ゲームサーバとしてJSONしか返さんのならrails3で十分?
0398nobodyさん
2014/06/13(金) 22:22:55.28ID:???0399nobodyさん
2014/06/14(土) 00:36:00.18ID:???どれくらい早くなるの?
俺の見解だと
Rails3みたいに違うページをロードしても
同じスタイルシートやjsが指定されていたら
キャッシュから読み込まれるから早い遅いをあまり感じなく思えるんだけど
0400nobodyさん
2014/06/14(土) 00:37:52.20ID:???それにページによってヘッダ内の読み込むjsを変えてる場合
それだとturbolinksは使えないってこと?
要は<head>内のスタイルシートやjsを固定して読み込みを早くしませんか?ってことだよね?
0408nobodyさん
2014/06/14(土) 09:50:36.58ID:???0410nobodyさん
2014/06/14(土) 12:24:13.21ID:???railsが遅い問題とturbolinksで解決できる問題は関係ない
turbolinksが解決してるのはクライアントサイドの速度
レスポンスが遅いのとスループットが低いのを混同する奴がいるけど
アクセスが少なくてもレスポンスの遅さは影響する
Railsが遅いのはRubyとアプリサーバの影響の部分が大きい
フレームワークの性能が悪くて遅いCakePHPなどとは一緒にしてはいけない
0411nobodyさん
2014/06/14(土) 13:16:46.10ID:???Rubyやアプリケーションサーバが覿面に効いてくるのは相当のアクセス数がある場合だけだよ
たいていはDBアクセスがネック
■ このスレッドは過去ログ倉庫に格納されています