トップページ⇒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
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出して質問しろ
■ このスレッドは過去ログ倉庫に格納されています