【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
0178nobodyさん
2014/02/28(金) 22:17:40.49ID:???レイヤーがもうちょい上になる業務よりのレイヤーで切り分ける感じにするかな
businessA_controller#updateみたいな感じで。
色んなリソース持ってるユーザーのマイページをmypage_controllerであれこれ処理したりしてる
0179nobodyさん
2014/03/01(土) 16:53:35.83ID:kyl0LBj5http://toro.2ch.net/test/read.cgi/tech/1393660194/2
0180nobodyさん
2014/03/01(土) 22:23:30.44ID:???>>178
ありがとうございました。
参考にします
>>177
ありがとうございました。
Rails4限定なんですね
0181nobodyさん
2014/03/02(日) 16:04:33.91ID:???調べてみたところshop.itemsは実際は3レコードあるのに、
shop.items.count => 1
shop.items.size => 3
このようにcountだと1が返ってました。
どういうことなんでしょう・・・
0182181
2014/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:???AbstractController::ActionNotFoundを表示しない方法ってありませんか?
存在しないアクション叩かれてエラーログが大量になるので困ってます
0184あ
2014/03/02(日) 19:42:02.77ID:???0185nobodyさん
2014/03/02(日) 19:43:53.19ID:???0186nobodyさん
2014/03/02(日) 21:06:18.23ID:f/Pqujp3もうひとつはbackup_image_idというカラム名です。
@model.backup_imageとプロパティにアクセスしたときに、自動的にImageテーブルにクエリー走らせることはできないのでしょうか?
0187nobodyさん
2014/03/02(日) 21:12:10.87ID:???0188nobodyさん
2014/03/03(月) 00:15:09.71ID:???http://rubyist.g.hatena.ne.jp/rochefort/20090802/p1
0189nobodyさん
2014/03/03(月) 00:42:54.12ID:eHHADPWD0190nobodyさん
2014/03/03(月) 01:01:41.74ID:???複数のRailsアプリ(複数ドメイン)を走らせてる猛者はいる?
Railsアプリ1つにつきVPSを1つ契約するのが勿体なく感じてきた
0191nobodyさん
2014/03/03(月) 01:03:32.20ID:???0192nobodyさん
2014/03/03(月) 11:32:43.29ID:???0193nobodyさん
2014/03/03(月) 12:05:52.25ID:tPpkCX6/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:???0196nobodyさん
2014/03/04(火) 00:14:26.81ID:???リンク踏んだらアフィリ貼りまくってるぺーじだったし
0197nobodyさん
2014/03/04(火) 02:27:29.26ID:???定期的にでっかいサイズの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:???バッチが2回ほど回ったときにtopコマンドを叩くと
メモリ使用量が40%ぐらいになってます。
ここでclockworkを再起動すると、また0%近くまで戻ります。
0199nobodyさん
2014/03/04(火) 08:20:37.89ID:???0200nobodyさん
2014/03/04(火) 21:56:50.40ID:???ありがとうございます。
タスクの終わりにGC.startを入れてみましたが、メモリ使用量は下がらなかったです。
とりあえず1時間ごとぐらいに再起動することで乗り切りることにします。
低レイヤのこと分かってないとこういうのが辛いなあ
0201nobodyさん
2014/03/04(火) 22:25:57.36ID:???0202197
2014/03/04(火) 23:07:49.36ID:???意味するところがちょっと分からないです><
途中でTempfileを使っているのがオンメモリということでしょうか?
Fileクラスを使うということですか?この場合もFileオブジェクトを作るから同じですよね。
見当違いのことを言っていたらすいません。
0203nobodyさん
2014/03/04(火) 23:16:13.55ID:???0204197
2014/03/04(火) 23:43:42.65ID:???csvを作る処理は違うプロセスでやって
clockworkでは作成済みのCSVファイルをftpにアップするだけ、という流れでしょうか
0205nobodyさん
2014/03/04(火) 23:56:04.97ID:???それじゃメモリに巨大な文字列がのっかってるってことじゃん
じゃなくて、1行ずつファイルに書き込めって話
CSV.open は IO を引数に取れるから、詳しくはマニュアルを読め
0206nobodyさん
2014/03/05(水) 00:05:46.31ID:???間違えた。CSV.new な
0208197
2014/03/05(水) 00:26:50.66ID:???0209nobodyさん
2014/03/05(水) 01:28:25.87ID:???メモリ解放する術は無いの?nil入れても無駄だし。GC.startってそもそもちゃんと働くのかね
0210nobodyさん
2014/03/05(水) 02:02:07.37ID:???プロセスは一度確保したメモリは解放しないことが多いよ
これは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:???手元で書いて動くコードは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:???普通は他のプロセスが利用しようとしたら手放すよ
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:???すげー興味でてきた
0219nobodyさん
2014/03/05(水) 23:47:43.77ID:???使わなくなったメモリを再利用すれば多くの場合は問題ない
巨大な文字列などは連続した領域が必要なので再利用できない場合がある
チビチビ使う方が再利用しやすい
0220nobodyさん
2014/03/05(水) 23:51:55.94ID:???フラグメンテーションとかそういう話だっけw
文系出身な俺には重いな
0221nobodyさん
2014/03/05(水) 23:55:29.43ID:???そうそう
RubyのGCはメモリコンパクション(デフラグメンテーション)をやらないので、今回ような使い方をすれば問題になる可能性がある
0222nobodyさん
2014/03/06(木) 01:11:41.99ID:???Rubyが採用してるGCのスタイルがコンパクションと相性悪いとか何とか
0223nobodyさん
2014/03/06(木) 10:57:14.72ID:???0224nobodyさん
2014/03/06(木) 15:47:34.23ID:???0225nobodyさん
2014/03/08(土) 01:09:20.34ID:???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$.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:???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:???0231nobodyさん
2014/03/09(日) 21:40:32.82ID:???すいません
他にどの辺りのソースも書けばいいでしょうか・・・
>>230
無理なんですか・・・
ユーザがアップロードした画像をメモリの中におさめて別の画面の<input type="file">にセットするとかはできないんですね・・・
0233nobodyさん
2014/03/09(日) 23:24:37.25ID:rV1atWDh投稿に確定フラグを用意して、
確認画面に行くときに確定フラグOFFで保存(画像も)してしまい、
確認取れたら確定フラグをONにする。
別途、長時間(1時間とか1日とか)確定フラグOFFのままのものは、バッチで削除する。
とした。
面倒だし、未確定のものが見えてしまうことを避けるためにscopeの設定に注意、
という残念なアプローチなので、あまりお勧めはしない。
0236nobodyさん
2014/03/09(日) 23:36:35.19ID:???>>233 で分からないようならかなり勉強が足りない
Railsは広範な知識が前提になるから、君にはまだ早いかもしれない
0237nobodyさん
2014/03/09(日) 23:40:35.43ID:???すいません、>>234と>>235は私ではありません
>>233
ありがとうございます
そういう無理矢理な方法を取らないといけないという時点で大きなヒント
IE8ではHTML5も使えないですし、
やはりユーザーが一度プレビューでも確認しようとする画像はサーバーにあげるしかないんですね
0238nobodyさん
2014/03/09(日) 23:42:42.92ID:???HTML5とか関係ないよ
セキュリティ上の制約からfileフィールドに値を与えることは不可能
それができたら、ローカルのファイルを取り放題になるからね
サーバに上げる以外の方法はない
0239nobodyさん
2014/03/10(月) 01:24:02.67ID:???何で悩んでるのかがイマイチ分からん
画像の保存先がDBにしろファイルシステムにしろ
そこへアップするのではなくtmpファイル作る
0240nobodyさん
2014/03/10(月) 02:47:48.52ID:???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:???あるビューでは子のレコードを最新の5件だけ、別のビューでは10件という風に
したいんですけど可能でしょうか?
0242nobodyさん
2014/03/10(月) 13:24:50.06ID:???0243「ガスライティング 集団ストーカー カルト」で検索を!
2014/03/10(月) 14:21:04.90ID:CT4FzesB・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
↑マスコミや、カルトのネット工作員がやっていること
TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。
リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
,,,
0244nobodyさん
2014/03/14(金) 06:16:01.68ID:???railsinstaller-2.2.1使用
0245nobodyさん
2014/03/14(金) 07:07:13.95ID:???0246nobodyさん
2014/03/14(金) 08:11:26.02ID:???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:???http://stackoverflow.com/questions/17917660/railsinstaller-2-2-1-fails-on-windows
0248nobodyさん
2014/03/16(日) 00:46:27.85ID:sX6tK28Vテストですよ!\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:???0251248
2014/03/16(日) 00:59:39.49ID:???でも確かに.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+EUWX250が言わんとしている事をもう少し分かりやすく言うと、
今回のケースではMySQLには改行コードではなくて
'¥r¥n'
っていう文字列そのものが入ってる。
Rubyで
print '¥r¥n' # 改行されずに¥r¥nっていう文字列そのものが表示される
と
print "¥r¥n" # 改行される
の実行結果を比較すると理解できるかと。
0254253
2014/03/16(日) 01:25:22.32ID:5H4+EUWXで文字化けしてる部分はバックスラッシュの事だと読み替えてください
0255nobodyさん
2014/03/16(日) 16:29:56.38ID:???0256nobodyさん
2014/03/19(水) 13:34:27.57ID:XfOUweW8この記事と同じところで躓いているのですが、
一番下の「追記 解決しました」はどういうことなのでしょうか?
「テストで作成しているデータが10文字以下だった」ら、
どこをどう変えれば解決するのでしょうか。
0257nobodyさん
2014/03/19(水) 15:28:10.08ID:???0258nobodyさん
2014/03/19(水) 17:20:29.04ID:XfOUweW8レスありがとうございます。
何を10文字より長くすればいいのでしょうか?
0259nobodyさん
2014/03/19(水) 18:33:11.75ID:???0260nobodyさん
2014/03/19(水) 18:46:53.11ID:XfOUweW8descriptionを10文字より長くしても駄目でした。
Failed assertion, no message given.
1 failures
のままです。
0262nobodyさん
2014/03/20(木) 10:48:45.83ID:???コントローラごとに適用されるCSSを分けることは出来ないのでしょうか?
0263nobodyさん
2014/03/20(木) 17:48:14.89ID:???<body class="<%= controller_name %>">
と書き換えて、後は scss で分ける。
scss だったら一段階層を増やしてあげるだけ。
0265nobodyさん
2014/03/23(日) 21:14:41.33ID:???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アプリケーションを作っている途中、カートを作るところまでいったのに
サーバーを実行しても、初期の"Welcome aboard"のページになってしまう
ようになってしまいました。
ファイルはあるのですが、ファイルを読み込むようにすることはできるのでしょうか。
0267nobodyさん
2014/03/26(水) 06:35:55.97ID:XaAxxKBe0268nobodyさん
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:???0270nobodyさん
2014/04/04(金) 17:14:47.47ID:???既存アプリをベースに新規アプリを作りたいのですが
既存アプリはDBの拡張ライブラリを使っていた時期があって
その環境を整えないとmigrationが通らないのですが今は使っていないのでスキップしたい
0271nobodyさん
2014/04/04(金) 17:17:55.16ID:???サンクス
0272nobodyさん
2014/04/05(土) 11:38:17.94ID:???http://www.kyoto-u.com/lounge/tokeidai/html/200602/06020020.html
0273nobodyさん
2014/04/05(土) 12:55:04.90ID:???0274nobodyさん
2014/04/05(土) 13:57:23.96ID:???0275nobodyさん
2014/04/06(日) 00:47:41.08ID:???コーディングなんかよりも
環境のデプロイが辛すぎる
使い慣れた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:???■ このスレッドは過去ログ倉庫に格納されています