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

【RoR】Ruby on Rails Part16

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/01/31(木) 08:07:31.27ID:GGHiBszv
前
http://kohada.2ch.net/test/read.cgi/php/1341589839/
http://unkar.org/r/php/1341589839

■参考サイト
<英語>
本家:http://rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
http://ruby-toolbox.com/
http://rubygems.org/
http://agilewebdevelopment.com/plugins/top_rated

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/

http://doc.ruby-lang.org/ja/1.9.3/doc/index.html
0514nobodyさん2013/07/17(水) NY:AN:NY.ANID:???
Rails
自己参照結合
自己結合(Self Joins)
http://wiki.usagee.co.jp/ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active%20Record%20Associations#m6658a2f

Self-referential has_many :through associations
http://blog.hasmanythrough.com/2007/10/30/self-referential-has-many-through
http://blog.hasmanythrough.com/2006/4/21/self-referential-through
http://japan.zdnet.com/blog/yoshimi/2007/11/22/entry_27016437/
0515nobodyさん2013/07/17(水) NY:AN:NY.ANID:???
>>513
>>419
0516nobodyさん2013/07/18(木) NY:AN:NY.ANID:???
>>506

昔からRDBを使ったシステムでパフォーマンスに問題がある場合、
個人的な感覚ですが9割以上はRDBの使い方や知識不足に原因があるように思います。
今回の場合も、まずその大量のSQL発行が原因でしょう。

> 生徒1件につき少なくとも3回のsql発行
> 生徒10件の表示だと30回のsql発行になりますが、これが普通の設計方法じゃないのでしょうか?

DBの論理設計の点ではお手本通りです。
物理設計(ここで問題になりそうなのは参照整合性制約の設定やインデックスの設定など)に関しては、
レスに情報がないので分かりませんが
(物理設計をおろそかにすると、データ件数が増えた場合、絶望的なパフォーマンスの問題が発生します)、
今現在提示されている情報の中で問題なのは、多数のSQLを発行している点です。

例で示されたテーブルから10件のデータを取得する場合、
生徒テーブル:1つのSQL
性別・血液型・都道府県テーブル:各10のSQL、合計30のSQL
を発行することになり、常識的なDBの使い方とは言えません。

このような場合は、性別・血液型・都道府県にNULLが入りうるなら外部結合、
入り得ないなら内部結合を使うべきでしょう。
それならば1つのSQLで済むはずです。

ActiveRecordを利用する場合、裏で発行されるSQLは隠蔽されるわけですが、
実際に使い物になるシステムを開発したいと考えるなら、
このあたりもしっかり押さえる必要があると思います。
望みのSQLを発行させるには、別途、本やネットで調べれば、
いくつかのノウハウが見つかると思います。
0517nobodyさん2013/07/18(木) NY:AN:NY.ANID:???
>>516
ありがとうございます

内部結合と外部結合について教えていただけませんか?

includesは外部結合ですか?
0518あ2013/07/18(木) NY:AN:NY.ANID:???
http://www.sophia-it.com/content/内部結合
http://www.sophia-it.com/content/外部結合
0519nobodyさん2013/07/18(木) NY:AN:NY.ANID:???
そもそもincludesは結合じゃないです
railsとsqlは分けて考えましょう
0520nobodyさん2013/07/18(木) NY:AN:NY.ANID:Ci9HSP1w
Railsで出来たサイトで、たまにコントローラーはあるけど
アクションは指定してないurlでもエラーが出てないことがありますが
あれはどうやるのでしょうか

http://www.sample.com/controller/

でもエラーが出てないってことです
0521nobodyさん2013/07/18(木) NY:AN:NY.ANID:???
結合の話は置いておいて、

生徒テーブル:1つのSQL
性別・血液型・都道府県テーブル:各10のSQL、合計30のSQL

この例で行くと、includesを使えば4つのSQLで済むけど、そういう話じゃないのか?
そもそも、性別を別テーブルにする意図がわからないんだけど。最近は体が男で心が女とかも
あり得るし、その個人がどちらとして扱って欲しいかを含めると6通りの性別が考えられるけど、
それでも高々6種類しかないものをテーブルにする必要があるんだろうか。血液型もしかり。
0522nobodyさん2013/07/19(金) NY:AN:NY.ANID:???
@students = Student.page(params[:page]).per(10).includes(:genders, :blood_types, :prefectures)

コントローラーでは上記のようにしています。

index(�@views/students/index.html.erb)では、
10件のstudents(�Aviews/students/_student.html.erb)をレンダーするとします。

そして、この�Aの中には
上に書いた 性別 血液型 都道府県 が表示されます。マスタテーブルの値を参照。

↑はincludesで解決できそうなのですが問題は次の箇所です。

�Aにはhelperが使われていて
そのhelperが

�Bjyugyo 授業レコード(生徒が取っている授業)や
�Cnormal_diary 日記レコード(生徒の日記)や
�Dbukatsu_diary 部活日報レコード(生徒の部活の日報)があります

これらは全て1対多です(生徒:各テーブル)

そこで�Aをレンダーする際に
�B、�C、�Dへのリンクボタンも表示します。

ここで�Cと�Dについては、ボタンへ件数(カウント)の表示および、
本日の投稿があればボタンを赤く表示する、といった仕様にしています
(つまり10レコード表示すると、この処理×10回SQLが発生?)

なので、さきほどのincludes表記だけじゃ対処しきれないみたいです。

例えばnormal_diaryのhelperはこのようになっています。ですので都度SQLが発行されるのかもしれません↓
0523nobodyさん2013/07/19(金) NY:AN:NY.ANID:???
def normal_diary_button(student)
 last_diary = student.normal_diaries.order('created_at DESC').first
 if last_diary && last_diary.created_at.today?
  link_to sanitize("日記 ("+ student.normal_diaries.count.to_s+")" , normal_diaries_path(student), :class => 'red_color_button'
 else
  link_to sanitize( "日記 ("+ student.normal_diaries.count.to_s+")" , normal_diaries_path(student), :class => 'button'
 end
end

こんなかんじです
同様に�Dのhelperのbukatsu_diary_button(student)も
各�A(views/students/_student.html.erb)で呼び出されます。

その度にSQLが発行されます。
>>522に書いた

@students = Student.page(params[:page]).per(10).includes(:genders, :blood_types, :prefectures)

だけでは対処できません
0524nobodyさん2013/07/19(金) NY:AN:NY.ANID:???
https://www.google.co.jp/search?q=count+rails%E3%80%80site%3Astackoverflow.com
0525nobodyさん2013/07/20(土) NY:AN:NY.ANID:???
link_toを使うとそんなに重くなる?

まぁroutes.rbの記載量にもよるんだろうけど
1ページにどれくらいlink_toが出現してたら
顕著に遅さを感じるようになるんだろう?
0526nobodyさん2013/07/20(土) NY:AN:NY.ANID:???
RailsにおけるJSって、実際はサーバー立ち上げたら、ページごとに一つの.jsファイルにまとめられるんですかね?
0527nobodyさん2013/07/20(土) NY:AN:NY.ANID:???
precompileしてproduction環境で起動すればrequireしたものはひとつのファイルに連結される
0528nobodyさん2013/07/20(土) NY:AN:NY.ANID:???
"Entry"というモデル名をさける
http://www.ustream.tv/recorded/25419544

Enumerable#entries
http://ruby-doc.org/core-1.9.3/Enumerable.html
0529nobodyさん2013/07/20(土) NY:AN:NY.ANID:netzHBJp
ついでにrails4だと(つーかturbolinksを使うと)、
最初のページ以外ではJSの読み込み(とそれに続く評価)も行わないのがデフォ。
0530nobodyさん2013/07/20(土) NY:AN:NY.ANID:???
>>527
ありがとうございます
その連結したものってどこかで見れるのでしょうか

undifinedされていてどうも正常に読み込まれてない気がするんですが
0531nobodyさん2013/07/20(土) NY:AN:NY.ANID:???
>>530
production環境だとassetsじゃなくてpublicフォルダから読み込まれる
0532nobodyさん2013/07/21(日) NY:AN:NY.ANID:???
>>531
ありがとうございます
developmentでrails serverで起動しているときはどこに吐かれますか?
0533nobodyさん2013/07/21(日) NY:AN:NY.ANID:???
>>532
またいつもの教えてクンか
うざいよ
自分で調べなさい
0534nobodyさん2013/07/21(日) NY:AN:NY.ANID:z4jXw/gy
developmentでは通常連結せずに読む。ログにばっちり出てるやん。
0535nobodyさん2013/07/21(日) NY:AN:NY.ANID:???
>>533
自分で調べてわからないんです

>>534
ありがとうございます
するとdevelopmentでは読み込み順とかを確認するために生成されたjsを読むすることはできないんですか
0536nobodyさん2013/07/21(日) NY:AN:NY.ANID:???
http://ja.asciicasts.com/episodes/279-understanding-the-asset-pipeline
0537nobodyさん2013/07/21(日) NY:AN:NY.ANID:z4jXw/gy
development.rb に

config.assets.debug = false # 個別読み込みをしない
config.assets.compile = true # 連結などのコンパイル処理は行う

あたりを書けてみればどうか。
0538nobodyさん2013/07/21(日) NY:AN:NY.ANID:z4jXw/gy
debugの意味間違えたけど、まあいいか。
0539nobodyさん2013/07/22(月) NY:AN:NY.ANID:D6h65OPK
Amazon.co.jp: Ruby on Rails 4.0 eBook: Stefan Wintermeyer: Kindleストア
http://www.amazon.co.jp/gp/product/B00E25KVLW
0540nobodyさん2013/07/22(月) NY:AN:NY.ANID:???
とあるカラムに文字長のバリデーションを設定しようと思うんですが

半角英数字なら20字
日本語なら10字

みたいな設定の方法ってありますか?
UTF8になる前は
20バイトまで〜みたいな設定が出来たのでしょうが
今ではそういう類のことはどのように対応するのでしょうか?
0541nobodyさん2013/07/22(月) NY:AN:NY.ANID:???
>>540
validates length tokenizerでどうですか
0542nobodyさん2013/07/22(月) NY:AN:NY.ANID:???
>>541
調べてみたのですが
日本特有の問題?だからかなかなか参考が出てきません。

よければどういう書き方をすればいいか見せてもらえますか?
0543nobodyさん2013/07/22(月) NY:AN:NY.ANID:???
https://gist.github.com/takuya327/4974881
0544nobodyさん2013/07/22(月) NY:AN:NY.ANID:4qZfH6dA
>>540
混在したら何文字までになるんですか?
0545nobodyさん2013/07/23(火) NY:AN:NY.ANID:???
>>544
半角英数を1字につき1バイト
日本語だったら1字につき2バイト
といったかんじです
0546nobodyさん2013/07/23(火) NY:AN:NY.ANID:???
>>545
UTF-8の日本語は3バイトなの知ってる?
0547nobodyさん2013/07/23(火) NY:AN:NY.ANID:???
要は全角文字を2文字分として計算したいんだろ?
正規表現でもなんでも使ってやればいいじゃん
0548nobodyさん2013/07/23(火) NY:AN:NY.ANID:???
PostgreSQL カンファレンス 2013 &#8212; NPO法人 日本PostgreSQLユーザ会
http://www.postgresql.jp/events/jpug-pgcon2013
0549nobodyさん2013/07/24(水) NY:AN:NY.ANID:???
>>546
すみません
2バイトだと勘違いしていました

>>547
おっしゃる通りです
0550nobodyさん2013/07/24(水) NY:AN:NY.ANID:???
夢のない、クラウドソーシング。夢をみるクラウドワークス | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp
http://blog.sumyapp.com/2013/07/no-dream-crowdsourcing/
0551nobodyさん2013/07/24(水) NY:AN:NY.ANID:???
クックパッドの様なレシピ投稿サイトの構築 - ウェブシステム の仕事 | ランサーズ
http://www.lancers.jp/work/detail/171339
0552nobodyさん2013/07/24(水) NY:AN:NY.ANID:GIiGlKgV
今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyapp
http://blog.sumyapp.com/2013/07/no-recommend-rails/
0553nobodyさん2013/07/25(木) NY:AN:NY.ANID:qrUaN9f/
料理レシピ投稿サイトの制作 - ウェブシステム の仕事 | ランサーズ
http://www.lancers.jp/work/detail/34672
0554nobodyさん2013/07/29(月) NY:AN:NY.ANID:???
セレクトボックス
テキストボックス(入力不可)
ボタン

があってセレクトボックスの初期値は空白
ボタンは押下不可

この状態でセレクトボックスで選んだ値でDB検索
値をテキストボックスに表示して、
1以上であれば、ボタンが押下可能になる


というのを作りたいんですが
どこからどこまでかJavaScriptで、どこからどこまでがRubyでやるのかわかりません

・セレクトボックスの選択と、選択した値を引数にしてRailsのアクションの呼び出しはJavaScript
・DB検索はRails


までは分かるのですが、ここから先、たとえばボタンのenabledを変更するのは誰がやるのでしょうか?
0555nobodyさん2013/07/29(月) NY:AN:NY.ANID:???
インクリメンタルサーチ
http://d.hatena.ne.jp/ooolong/20070202/1170393898
https://luna.easyjp.net/projects/memo/wiki/rails/Rails3サンプル/Yahoo路線のようなインクリメンタルサーチ

https://www.google.co.jp/search?q=rails+incremental+search+site:stackoverflow.com
0556nobodyさん2013/07/31(水) NY:AN:NY.ANID:???
時間かけて作り込んだのに
独自ドメインで公開開始してから4ヶ月。

会員数1000人
PV 3000/1日
UU  250/1日
google検索結果からの訪問 30/1日
yahoo検索結果からの訪問  25/1日

なんだかなぁ。。。。。
0557nobodyさん2013/07/31(水) NY:AN:NY.ANID:???
MySQLのクエリーで

WHERE now() > (end_date + INTERVAL days DAY)

これをrailsで書くならどうなりますか?
0558nobodyさん2013/07/31(水) NY:AN:NY.ANID:6YPlmowL
daysは可変パラメータ?

where( [ 'NOW() > end_date + INTERVAL ? DAY', days ] )
0559nobodyさん2013/07/31(水) NY:AN:NY.ANID:???
>>558
ありがとうございます。
daysはカラムです
0560nobodyさん2013/08/03(土) NY:AN:NY.ANID:???
自分でサーバ立てるのってなんか楽しそうだしスゴそうだよね?
サーバ立てるのなんてちょっとパソコンに詳しければ簡単にできるんでしょ?
ハードウェアの多重化なんて必要?
企業で使うとかじゃなく個人的に細々と立てたサーバが攻撃されることなんて滅多にないよね?
攻撃が来るって言ったって大した数じゃないんでしょ?
攻撃されたって大したことは起きないんでしょ?
http://b.hatena.ne.jp/entry/tmaeda.s45.xrea.com/20041101.html

ITmedia エンタープライズ:自社サーバがフィッシングサイトに「踏み台化」されたら? (1/3)
また、電源を切ってしまうことも良い対応ではない。
オンメモリ上で稼働しているフィッシングサイトの場合は、電源を切ることによって、すべてのデータが消えてしまい、原因究明や対応に遅れなどが出ることも考えられるからだ。
 事実、フィッシングサイトを構成するツールの中には、後に証拠が残らないよう、すべてがオンメモリ上で動作するものがある。
このような場合、再起動や電源オフによって、メモリ上にあるすべてのプログラムやファイルが消え、事実や原因の確認が困難になる。
http://www.itmedia.co.jp/enterprise/articles/0603/17/news004.html
0561nobodyさん2013/08/07(水) NY:AN:NY.ANID:aOWd/F64
Why Nobody Should Use Rails | Hacker News
https://news.ycombinator.com/item?id=6168885

http://blog.bensigelman.org/post/57543889435/why-nobody-should-use-rails-for-anything-ever
0562nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
質問です

link_to "hoge", hoge_path(:key => foo)

といったlink_toを様々なページで多用しています。
しかし、条件分岐でkeyのパラメーターをつけるか付けないかを分けたいです。

hoge_pathのpathの部分だけを
helperのようなかんじで
呼び出し型にすることは可能ですか?
その際に呼び出し側から引数も渡すかんじで
0563nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
Mixiでいうところの足跡機能をRailsで導入するとしたら負荷はハンパない?

ユーザー数が10000人として
仮に5000人がページ遷移して
お互いユーザー同士のページを表示する度に
足跡レコードを生成してたら
データベースの負荷はハンパないですよね?
ユーザー数の増加も考慮すると現実的でない?
0564nobodyさん2013/08/07(水) NY:AN:NY.ANID:3f/GYhsz
水道管の値段と水の流量を考える。
太い水道管を用いるとたくさんの水が流せるが、水道管の重量が増えるため水道管に必要な費用が大きくなる。
逆に水道管を細くすると重量の軽い水道管になるので水道管に必要な費用は少なくて済むが、少ない量の水しか流せなくなる。
このように、水量の多さを重視すると費用が犠牲になり、費用の安さを重視すると流せる水の量が犠牲になるという関係にあり、
流せる水量の多さと費用の安さはトレードオフの関係にある。
http://ja.wikipedia.org/wiki/トレードオフ
0565nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
>>564
そんな一般論はいりません
0566nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
一秒は1000ms

シーク時間はシーク範囲によって異なりますが、仮に 5ms とした場合、並列でI/Oを出せない IDE では 200 IOPS が限界となります。
http://pc.casey.jp/archives/153904156

http://e-words.jp/w/IOPS.html  

Amazonクラウド、2テラバイトのSSD、60GBメモリ搭載で12万IOPSを実現するインスタンスを発表 − Publickey
http://www.publickey1.jp/blog/12/amazon2ssd60gb12iops.html
0567nobodyさん2013/08/07(水) NY:AN:NY.ANID:aOWd/F64
水道管とIOPS
0568nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
Standardボリュームは1ボリューム当たり平均約100 IOPSで、
ベストエフォートながら、数百IOPSまでバースト可能というパフォーマンスレベル。
http://www.atmarkit.co.jp/news/201208/02/aws.html

ioDriveは10万IOPS、SSDも3.6万IOPSほどでした。
ハードディスクでは数百から千ぐらいのIOPS
http://internet.watch.impress.co.jp/docs/special/20120731_549042.html

まさに怪物! Fusion-ioが容量10テラバイト/性能130万IOPSのフラッシュドライブ「ioDrive Octal」発表 − Publickey
http://www.publickey1.jp/blog/11/_fusion-io10130iopsiodrive_octal.html

IOPSは、ディスクが1秒当たりに処理できるI/Oアクセスの数である。
IOPSが高ければ高いほど、高性能なディスクと言える。
http://itpro.nikkeibp.co.jp/article/lecture/20070104/258117/
0569nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
Fusion-io、10億IOPSの新技術「Auto Commit Memory」発表。ストレージなんてレベルじゃない、パーシステントなメモリだ − Publickey
http://www.publickey1.jp/blog/12/fusion-io10iopsauto_commit_memory.html
0570nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
>>563
RDBSじゃなくてmongodbとかredisを使え
0571nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
>>570
どうして?
0572nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
>>570
基本のDBはMySQLで
そういった足跡みたいに頻繁にRead/Write処理が行われる部分だけは
mongodbとか
Railsでは可能なの?
0573nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
ちょっと横入りして悪いんだけど、
モデルを新規作成する際は、とりあえずはscaffoldを利用して、
controllerなども作っておく場合が多い?
それともモデルのみ作成で、必要になってからcontrollerを作成?
今は確定していないけど将来的にcontrollerを使うかも?って感じの微妙なモデルの場合なんだけど。
0574nobodyさん2013/08/07(水) NY:AN:NY.ANID:1ogPlLd9
片方だけ作るときはコントローラから作ってる気がする。

リソースとして何が必要になるかを考える。
リソース名にマッピングされるのはモデルではなくコントローラ。
という順番。
0575nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
>>572 モデルにestablish_connection を入れればテーブルごとに接続先の変更も可能なので問題ないかと思います。

関連で質問です。
Rails4.0で
self.abstract_class = true と establish_connection xxx  
を入れたクラスを継承したモデルがあり、
テーブルのカラム名に「catch」や「x」 を使っていたため
@model.catch
@model.x
を実行したときにprivateメソッドを呼びだしたことになって
エラーを起こしてしまいます。
3.0の頃は問題なかったのですが…。

何かよい対処方法ありませんか?
0576nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
>>572
余裕でできる
そもそもRDBSとの連携はモデルにデフォルトで書かれてるActiveRecordの記述だけで
Mongoidをincludeするだけでそのモデルはmongodb用に使える(接続用のconfigファイルを作成する必要あり)
0577nobodyさん2013/08/08(木) NY:AN:NY.ANID:x7tUE+P1
MongoDB Plans & Pricing with MongoHQ
http://www.mongohq.com/pricing

Plans and Pricing | MongoLab: MongoDB-as-a-Service
https://mongolab.com/products/pricing/
0578nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
>>576
ならどうして最初からすべてmongodbでやらないの?

mongodbはMySQLに比べて
圧倒的に早いんだよね?

自分の認識では
mongodbってmemcachedの
フラグメントキャッシュみたいに
キーと内容だけを保持するシンプルなもの
なんだけどあってる?
だからこそ使い勝手が悪いから
単純なところのテーブル(DB)だけを
mongodbで実装

あってる?
0579nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
みんなは4.0に移行してるようだけど
そんなにメリットあるかいな?

使えるgemはほとんど未対応だろうし
0580nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
> 使えるgemはほとんど未対応だろうし
ずいぶんとまぁ印象だけで語ってるなぁ
0581nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
>>578
mongodbはスキーマレスな上に、各々が配列やハッシュを持てるからRDBSよりも自由度がはるかに高い
書き込み性能は段違いだが、読み込み速度は大差ないか劣る可能性もある
最大の弱点はトランザクションが効かないことで、テーブル構成が複雑で整合性が必要な箇所には使われない

だから使い分けが必要なの

わかる?
0582nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
>>579
ほとんど対応してますね
0583nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
すみません、質問させてください。

RoRでirbを使用してデバッグしているのですがhelperのメソッドを更新してreload!を実行したのですが、更新がされず毎回exitして再度irbを立ち上げてる状況です。

すでに定義済みのメソッドの中身を書き換えてもreload!では反映されないのでしょうか?
05844462013/08/10(土) NY:AN:NY.ANID:OMYv+fV8
>>456
質問させていただいた件、解決しました。
書込みができなかったのでお礼が遅れてしまいましたが、ありがとうございました。
0585nobodyさん2013/08/12(月) NY:AN:NY.ANID:???
ActiveRecordで


| id. | language |typed│
|001| Ruby   │  0│
|002| Perl   │  0│
|003| Python │  0│
|004| C++   .│  1│
|005| Java  │ 1│


こんな感じの検索結果を受け取ったときに、そこで更にtypedによってレコードを分割したいときは
どうすればいいでしょうか
0586nobodyさん2013/08/13(火) NY:AN:NY.ANID:ZYgjO/1S
result = Language.where(なんか条件)
のようにして >>585 の結果を得ているとする。

A: DBから別々に取ってくる

result はActiveRecord::Relation のインスタンス(まだ配列は返ってきていない)だが、
これはさらに条件を . でつなげることが出来る。この場合、ANDで条件を追加する形になる。

typed = result.where(typed, 1)
typeless = result.where(typed: 0)

2つの変数ともに Relation のまま(= 必要になるまでSQLは実行されない)。
必要なら to_a とか。大抵ぎりぎりまで Relation のままでOKなはず。

B: Rubyレベルで分ける。

こっちだと、SQLを実行してレコード一式読み込んでから、メモリ内で分ける。

B-1: Enumerable#partition を使う

2つに分けるなら partition が使える。

typed, typeless = result.partition{|x| x.typed == 1 }

B-2: Enumerable#group_by を使う

lang_groups = result.group_by {|x| x.typed }
typed = lang_groups[1]
typeless = lang_groups[0]
0587nobodyさん2013/08/13(火) NY:AN:NY.ANID:ZYgjO/1S
>>583

アプリ生成後のREADMEによれば、 reload! でリロードされるのはコントローラと
モデルのコードだけのような。
0588nobodyさん2013/08/13(火) NY:AN:NY.ANID:???
>>586
ありがとうございました
0589nobodyさん2013/08/15(木) NY:AN:NY.ANID:9ap0WrHO
暗号化通信サービスが沈黙
http://blog.f-secure.jp/archives/50708704.html

http://jp.wsj.com/article/SB10001424127887323338404579001681390701184.html
0590nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
assetsのプリコンパイルする意味って何ですか?

そんなに速度が変わりますか?

プリコンパイル実行で毎回5分ほど待たなきゃいけないし
画像一つ追加するのにこれだけ大変だから気になりました

画像一つフォルダにつっこんで
イメージタグを記述のほうが楽ですので。
0591nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
rails4にすればプリコンパイルは早くなるよ(たぶん
0592nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
要らないなら無効にすればいいんじゃないの。
0593nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
ドットインストールの講座を進めているんですが、#37〜#41でハマりました。
下記のエラーがどうしてもわかりません。
ActionController::RoutingError (uninitialized constant CommentsController):

環境はruby:2.0,rails:4.0です。
環境が新しくなったことの弊害だと思うのですが、どなたか教えていただけると有り難いです……
ちなみにrake routesでルーティングはしっかりできているように見えます
0594nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
>>593
ソースはらないと分からん
05955932013/08/16(金) NY:AN:NY.ANID:???
>>594
失礼しました。
下記がソースです、見られるでしょうか。
https://github.com/248/rails_blog

RoutingErrorが出ているものをコミットしてあります。
0596nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
>>595
また教えクンか

ググれ
0597nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
>>595
ggrks
0598nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
>>596
しね
0599nobodyさん2013/08/16(金) NY:AN:NY.ANID:???
>>598
うるさい
0600nobodyさん2013/08/17(土) NY:AN:NY.ANID:???
>>593
コントローラの名前が間違ってる。
coments_controller.rb
↓
comments_controller.rb
06015932013/08/17(土) NY:AN:NY.ANID:???
>>600
指摘の通り名前のミスでした。
自分では見たつもりだったのですが、気づきませんでした。
有難うございます。
0602nobodyさん2013/08/17(土) NY:AN:NY.ANID:???
uninitialized constant CommentsController

って書いてあるんだからもうちょっと注意してたら分かったかもね!頑張って!
0603nobodyさん2013/08/17(土) NY:AN:NY.ANID:LZQA7c0b
ActionController::RoutingError (uninitialized constant CommentsController):

ActionController:: RoutingError(定数CommentsControllerを初期化されていない):

翻訳
http://translate.google.co.jp/
0604nobodyさん2013/08/17(土) NY:AN:NY.ANID:???
http://hayabusa3.2ch.net/test/read.cgi/morningcoffee/1366274651/l50

【芸能】女優の日南響子(19)、車にひかれ一時意識不明に 「フラフラと放心状態、車道に自ら入って行ったようにも見えた」と目撃談★2
http://awabi.2ch.net/test/read.cgi/mnewsplus/1376716736/l50
0605nobodyさん2013/08/19(月) NY:AN:NY.ANID:???
https://twitter.com/makotokuwata/status/369178911852085249
https://blog.twitter.com/2013/new-tweets-per-second-record-and-how
0606nobodyさん2013/08/19(月) NY:AN:NY.ANID:???
なぜ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
0607nobodyさん2013/08/19(月) NY:AN:NY.ANID:???
localeについてだけど
viewで適用させる方法は分かるけど

controllerで判断させるにはどうすればいいの?
やっぱりあらかじめ
localeファイルに各文章を格納してて
それをコントローラーで読み込まなきゃダメ?
0608nobodyさん2013/08/19(月) NY:AN:NY.ANID:???
何を判断させたいのか分からない
多言語対応させたいってこと?
0609nobodyさん2013/08/19(月) NY:AN:NY.ANID:/LpY+15W
i18n
0610nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
assetsのpreconpileって
javascriptのコードを他人にパクられるのを防ぐ抑止力になる?
0611nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
多少難読化はされるからなるといえばなるかもしれないけど
関係ない部分含めて丸パクされたら結局パクられるからならないともいえるかもしれない
0612nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>611
関係ない部分も含めて丸パクってどういう意味?

javascriptをパクられなくするのって無理だよね
0613nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>612
precompileするとコード全部ひとまとめにされるじゃん?
それ丸ごとコピペすればパクることができるじゃん?
って言うアホみたいな意味しかないです

あくまで抑止力って話でしょう
■ このスレッドは過去ログ倉庫に格納されています