【RoR】Ruby on Rails Part15
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/07/07(土) 00:50:39.45ID:???http://kohada.2ch.net/test/read.cgi/php/1329492840/
■参考サイト
<英語>
本家: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/
【ヘロク】 Heroku Part1 【PostgreSQL】
http://toro.2ch.net/test/read.cgi/hosting/1329378677/
0704nobodyさん
2012/12/14(金) 15:29:42.62ID:???ありがとうございます
todofuken.rb→has_many :users
user.rb→belongs_to :todofuken
で期待通りの動きをしているようですが、
これはおかしいんですか?
0705nobodyさん
2012/12/14(金) 15:38:20.44ID:???ああ、ユーザーに選択式ってことだから複数チェックボックスかと思ったけど一ユーザー一都道府県ならそれであってる
0706nobodyさん
2012/12/14(金) 15:43:11.19ID:???ありがとうございます。
ユーザーのプロフィール編集画面で
各自の都道府県を選ぶようにしています
user modelにはtodofuken_idのカラムを用意しています。
設計方法として問題なさそうでしょうか?
0708nobodyさん
2012/12/15(土) 08:53:01.42ID:ZQMsU3ZLhttp://en.wikipedia.org/wiki/Prefectures_of_Japan
0710nobodyさん
2012/12/15(土) 10:36:42.68ID:???auに来たメールだけどうしても、
認識できないメール形式のため表示できません。
ってなる。
色々調べたところプレーンテキスト形式にしろとのことで views/devise/mailer
のファイル形式をhtml.erbからtext.erb
に変えたけど、やっぱり同じ。
この問題にぶち当たった人で解決できた人いますか?
0711nobodyさん
2012/12/15(土) 11:40:16.59ID:???例えばmailの中身が
a→title,body
b→title,body
c→title,body
のように配列になっていたとしたら
cさん(最期)の部分だけを取り出すには
どうすればいいでしょうか?
0712nobodyさん
2012/12/15(土) 11:47:43.11ID:???なんでメールの中身が配列なのさ
配列の最後取り出すなら、rubyの勉強しなよ
0714nobodyさん
2012/12/15(土) 12:37:01.27ID:???mail = [{:a=>[title,body]},{:b=>[title,body]},{:c=>[title,body]}]
こういうこと・・・なの?
0716nobodyさん
2012/12/15(土) 13:08:45.67ID:???マジでそうなのか・・・>>712の言うようにrubyの勉強しろ
と言うかググレ「ruby 配列 最後」とかでググレ
0717nobodyさん
2012/12/16(日) 00:41:14.09ID:???なにか工夫できる点とかある?
0718nobodyさん
2012/12/16(日) 01:19:33.42ID:???実際にはそんな事にはならないし、対処法もよく知られてる
0719nobodyさん
2012/12/16(日) 03:31:11.14ID:TfTpyI1zActs_as_authenticated(Rails1.xで主流だった)とか
Restful Authentication(Rails2.xで主流だった)とか
今はdeviseとか、はやり廃りがあるけど、
今使っている認証系プラグインが将来ディスコンになったりしたら、痛いよなー。
他の種類のプラグインと比べて、依存度が半端ないから、なかなか他に置き換えられないし。
やっぱり、こういうの使わずに自作するしかないのか?
あるいは、開発が止まったら自分で引き継いで新しいRailsに対応させるとか?
0720nobodyさん
2012/12/16(日) 03:46:28.84ID:aOe33MNU田浦本部横須賀桜山支部の高橋裕之氏が年末ジャンボで6億円当たるようにまた女子部と結婚成就を5分でよいので高橋裕之氏に題目を送って行こうではありませんか!
0721nobodyさん
2012/12/16(日) 11:34:12.70ID:???if hoge.present?
て書くのが鉄板
present使うとhogeに
必ず何かの文字列が入っている場合のみ
っていう扱いになる
マジおすすめ
0722nobodyさん
2012/12/16(日) 11:35:07.64ID:???deviseとか最強じゃん
rails3.2以上にバージョンアップしていく必要なんてほとんどないだろ
0723nobodyさん
2012/12/16(日) 11:41:13.25ID:8gHW4Yi/0724nobodyさん
2012/12/16(日) 11:53:27.15ID:???荒らしが出てきたため、論理削除で該当Userを削除すると、
繋がっている色んな箇所においてレンダーする際にnilエラーが発生しますよね?
こういうのを防ぐには全ての箇所にif文でnilだったときの回避を想定して書いていくしかないんですか?
それともmodelの段階でdependancyにしておいて
連携しているものは全て同時に削除させるのですか?
後者だと、仮にコミュニティーのオーナーユーザーが会員抹消したときに
既存のコミュニティ自体も消えますよね?
これはこれで現実的ではない気もします。
0725nobodyさん
2012/12/16(日) 12:06:27.90ID:???消して良いものとそうでないものは、自分で書いてるんだから分かるでしょ。
連動で消す消さない選ぶだけだし。
エラーになりそうな箇所は、そうならないように設計すれば良いだけで。
エラーになっても例外補足したら良いし。
こういうのはRails関係ないけどな
0726nobodyさん
2012/12/16(日) 12:11:09.69ID:???自分で書けるが、面倒なのでdeviseとか使ってる。
devise使うかどうかはかなり長い間迷った。実際嫌いな人がたくさん居る。
0727nobodyさん
2012/12/16(日) 12:26:16.41ID:???自作するよりは、今までの知識捨ててそれ覚えるほうが楽っていうのはかわらないんじゃないかな
そうならないなら自作すればいいし
0728nobodyさん
2012/12/16(日) 13:06:18.95ID:???お金払ってもいいレベル
gemの中で世界一需要あるだろ、あれ
0729nobodyさん
2012/12/16(日) 13:40:56.50ID:???その下のwardenまでなら許容できる
0730nobodyさん
2012/12/16(日) 16:04:54.26ID:qaK7KzoYhttp://blog.madoro.org/mn/84
0731nobodyさん
2012/12/16(日) 16:43:48.42ID:???0732nobodyさん
2012/12/16(日) 19:50:11.84ID:8gHW4Yi/ruby 2.0.0dev (2012-12-01 trunk 38126) [x86_64-darwin12.2.1]
アイウエオABCDE
古いRubyのnkfだと-Z3までしかないかも。1.9系ならたぶんある。
0734nobodyさん
2012/12/16(日) 21:56:58.54ID:TfTpyI1z>>727
趣味で作ってる分にはいいんだけど、
一度Rails3.2 & deviseで作ったWebサービスを公開して、
将来deviseがディスコンになった時がねー。
他の認証システムにユーザーデータをスムーズに移行させるのは結構めんどい気がする。
0735nobodyさん
2012/12/17(月) 00:09:31.08ID:1jwbQomXnkf 自体は標準ライブラリだよ。(-rnkf == require 'nkf')
1.9.2のならもう-Z4導入されてるんじゃないかなぁ。
手元にないしコンパイルしてまで確認する気にもならないので試せないけど。
0736nobodyさん
2012/12/17(月) 08:14:48.38ID:wruMuh6O0737nobodyさん
2012/12/17(月) 10:21:42.49ID:dIcXqlm1http://www.oiax.jp/rails/zakkan/has_secure_password.html
0738nobodyさん
2012/12/17(月) 10:37:46.26ID:???ありがとうございます
全角英数のみ→半角英数なので
params[:book][:author] = NKF.nkf("-m0Z1 -w", params[:book][:author])
↑のようにcontroller内に記述するのですが半角になりません。
どこを間違えているか分かりますか?
0739nobodyさん
2012/12/17(月) 20:31:07.77ID:1jwbQomX<%= debug(...) %> 使え。
0740nobodyさん
2012/12/19(水) 18:36:54.09ID:???form_for
〜
f.submit
〜
end
Scaffoldで吐き出したときに
_form.html.erbは上記のような構成になっていると思います。
このなかにcaptchaも実装しており
更新/新規作成の時には画像認証もかけています。
このフォームに併せて
削除ボタンを加え、上記の画像認証もパスしなければ削除できないようにするためには
どういった構造設計にすればいいですか?
画像認証パスはbefore_filterにて間違っていたらFLASHエラーとredirect_to :back
にしています。
削除ボタンをsubmitにしない限り
画像認証がうまく作動しませんし、
submitを追記してもupdateアクションが呼び出されますよね。
長々となってしまいました。
よろしくお願いします。
0741nobodyさん
2012/12/19(水) 22:40:42.49ID:???・JavaScriptでボタンクリック時にformのactionをすり替える
・submitボタンにname属性をつけておいて、コントローラでそのname属性を見て処理を分岐する
0743nobodyさん
2012/12/19(水) 23:12:55.98ID:???そもそも
form_for
f.submit name => 'action1'
f.submit name => 'action2'
end
みたいにsubmitが中に2つ存在とかありうることですか?
その際、コントローラーでは
このnameの中身はどのように取得するんですか?
0744nobodyさん
2012/12/20(木) 00:30:10.97ID:???一般的なんてのはない
システムの要件で決めれ
>>743
ふつーにありえる話
nameの中身なんてparamsダンプすりゃ分かる
やってみれ
0745nobodyさん
2012/12/20(木) 00:57:48.77ID:???ありがとうございます
最後に教えてください
@一般のlink_toやbutton_toはURLに対して引数を渡すイメージ
Aそれらに対し、form_forではオブジェクトの集合体の情報をまるまるコントローラーへ渡す感じ(引数がURLに出現することはない)
この認識で正しいですか?
なお、form_forの中ではlink_toのようにパスがかかれていません。
呼び出されるアクションはどうやって決まっているんですか?
呼び出すのがcreateの場合もあるし、updateの場合もあるわけですが
_form.html.erb内には記載がありません。。。
今回はさらにそれに対して呼び出し先をdeleteアクションにしてやらないといけないので。。
0747nobodyさん
2012/12/20(木) 01:40:01.82ID:???トピックスに今現在ついてるコメント数は表示の度にカウントで計算させて表示させてる?
それともコメントをcreateする度にカウントの集計をとって
それをトピックのテーブルにあらかじめ格納しておく?
後者のほうが表示が早そうだし
普通なのかな?
0748nobodyさん
2012/12/20(木) 01:50:56.98ID:d/t2+tfj0750nobodyさん
2012/12/20(木) 02:33:50.60ID:???リアルタイム性が高いに越したことはない、の世界だし
みんなどうやってるんだろ
0751nobodyさん
2012/12/21(金) 01:32:58.07ID:???でも、カウンタを表示しなくてもなんとかなる作りにするのが流行りじゃないの?
0752nobodyさん
2012/12/21(金) 01:53:41.43ID:pfZZNoyA0753nobodyさん
2012/12/21(金) 01:54:52.50ID:pfZZNoyA0754nobodyさん
2012/12/22(土) 00:33:17.53ID:???使ってる場合はroutingに:idに代わる引数を使っていますか?
それともfriendly_idみたいなgemを使っていますか?
0755nobodyさん
2012/12/22(土) 01:26:25.47ID:E+md4EwU0756nobodyさん
2012/12/22(土) 03:55:59.78ID:???例えば
blogってモデルがあって
そこに投稿できたとします
本文にurlが含まれた場合は自動でハイパーリンク形式にして表示させようと思うんだけど
投稿時点で変換してやってカラムの中に<a href=.....
みたいにタグごと保存させるべき?
それとも表示させる時に変換して表示させるべき?
0757nobodyさん
2012/12/22(土) 05:20:05.44ID:???日本語での入力時に挙動おかしくない?
カーソルキーを押して初めて候補が表示される。
英語だとすぐに候補が表示されてるのに
これを直す方法を知ってる人がいたら
お願いします。
0758nobodyさん
2012/12/22(土) 06:18:47.83ID:+yA+/kCphttps://github.com/tenderlove/rails_autolink
文字列にURLがあれば、自動的にリンクを追加する方法は何ですか? - QA@IT
http://qa.atmarkit.co.jp/q/2153
0759nobodyさん
2012/12/22(土) 15:27:15.91ID:???そのとき遷移してきたページを
階層ごとに追加してパンクズリストに追加していきたいのですが
これはURLパラメータで渡して追加していくしかないのでしょうか?
たとえば
URL: hoge.com/user/1/show?list=index
みたいに
前のページがindexだったと分かるようなかんじですね。
ただし、この場合ってSEO的には不利ですよね?なにかいい方法はないものでしょうか?
0760nobodyさん
2012/12/22(土) 15:34:54.03ID:???0762nobodyさん
2012/12/22(土) 16:25:17.72ID:E+md4EwU遷移履歴を表示したいの?
どっち?
0763nobodyさん
2012/12/22(土) 17:31:03.30ID:???サイトのページの階層です
crummyというgemを使っていますが
2階層目以降にいくときはgetのurlで
どこのコントローラーのアクションから来たかを渡しています。
0764nobodyさん
2012/12/22(土) 21:41:03.90ID:???会員が1万人に達しました。
サイトに機能追加をしたいんだが
サービス中だけど
そのまま手を入れてもいいもの?
それとも同じテスト環境を作って試すべき?
ちなみにテスト環境で試して本番に移植するときって
どんなかんじで差分だけを持って行くの?
0766あ
2012/12/24(月) 23:07:15.72ID:T//Mfk22https://bugzilla.redhat.com/show_bug.cgi?id=889649
0767nobodyさん
2012/12/24(月) 23:08:50.57ID:T//Mfk22http://phenoelit.org/blog/archives/2012/12/21/let_me_github_that_for_you/index.html
0768nobodyさん
2012/12/24(月) 23:17:42.41ID:???当然サーバーを増強しようとしたのだが、
頭が堅い(おかしい)上司が、なぜか遅いのはRailsのせいだと決め付けて、
サーバーに金を使う前に違うフレームワークを使って試せの一点張り。
どんなに丁寧に説明しても折れてくれない。
終いにはRubyが悪いからPHPにしろとか言い出した。
何を言っても聞く耳持たず。
こういうゴミ上司はどうやって処理すればいいんだろう。
0769nobodyさん
2012/12/24(月) 23:36:07.26ID:???別にそのこと自体は間違ったことじゃないし
0770nobodyさん
2012/12/24(月) 23:37:23.87ID:T//Mfk22http://www.amazon.co.jp/gp/product/4087202402
ttp://ja.wikipedia.org/wiki/橋本治
0771nobodyさん
2012/12/25(火) 00:16:27.98ID:???うーん、そんな簡単に出来るもんですかね
ソース量も結構な量なので同じrubyのフレームワークだとしても1週間はかかりそうです。
0772nobodyさん
2012/12/25(火) 00:29:40.43ID:???1人月かかって成果がでなくても責任とってくれるんだろうし、付き合ってやればいいんじゃね
0773nobodyさん
2012/12/25(火) 00:33:47.81ID:???0774nobodyさん
2012/12/25(火) 02:33:15.17ID:???LLでやってる以上はRubyでもPHPでもPythonでもそこまで差はでないよなあ
0775nobodyさん
2012/12/25(火) 04:08:27.33ID:1GjI0Zxa"モバイルサーバで実行しなければならなかった処理に関して言えば,Ruby on Rails より適切であったことは事実です。しかしパフォーマンスの万能薬ではないのです。下位レベルのサーバとフルスタックの Web フレームワークの比較なのです。"
http://www.infoq.com/jp/news/2012/10/Ruby-on-Rails-Node-js-LinkedIn
LinkedIn Moved from Rails to Node: 27 Servers Cut and Up to 20x Faster
http://highscalability.com/blog/2012/10/4/linkedin-moved-from-rails-to-node-27-servers-cut-and-up-to-2.html
Clearing up some things about LinkedIn mobile’s move from Rails to node.js
http://ikaisays.com/2012/10/04/clearing-up-some-things-about-linkedin-mobiles-move-from-rails-to-node-js/
0776nobodyさん
2012/12/25(火) 04:18:15.80ID:???一日当たりどのくらいのPVくらいまでなら耐えうるかな?
アクションメーラーとかもバリバリなんだけど。
パフォーマンスあげるのに手っ取り早いのは
CPUあげて
メモリあげまくって
Hdd→SSDかな?
0777nobodyさん
2012/12/25(火) 05:53:46.01ID:Hj73KizL0778nobodyさん
2012/12/25(火) 06:03:24.46ID:???http://wired.jp/2012/03/20/mark-shuttleworth-ubuntu/
0782nobodyさん
2012/12/26(水) 05:59:44.14ID:???https://github.com/rails/rails/issues/8582
0783nobodyさん
2012/12/27(木) 23:17:38.91ID:???今カウントしたら17個
しかも、まるまる全て使ってる
多すぎ?
0784nobodyさん
2012/12/28(金) 18:20:31.35ID:Qev3IcZThttp://jvndb.jvn.jp/ja/contents/2012/JVNDB-2012-005811.html
0785nobodyさん
2012/12/29(土) 11:56:46.85ID:???コントローラーが複数あって全てのコントローラーにおいてbefore_filterで共通の関数(check_captcha)でチェックをかけています。
すべてのコントローラーの冒頭に
def check_captcha
処理
end
と、いちいち記述しているのですが
DRYに基づくには
application_controller.rb
の中にこれ一回だけ書いておくのが賢明ですか?
0786nobodyさん
2012/12/29(土) 12:02:11.58ID:???プログラムもサービスとしても
全部にcaptchaってユーザの利便性低過ぎ
0787nobodyさん
2012/12/29(土) 19:09:55.10ID:???もし、実装したとしたら >>787のように
application_controllerに一度記載しておけばOK?
それともenvironment.rb?
0788nobodyさん
2012/12/29(土) 19:31:52.74ID:Rz1m8OqIFooController < ApplicationController という継承になってるよね?
0789nobodyさん
2012/12/29(土) 20:20:29.53ID:???goos_controller.rb
はただscaffoldで作りました
0790nobodyさん
2012/12/30(日) 10:35:32.69ID:???CakePHPにもこんな最強プラグインコンビってあるの??
0791nobodyさん
2012/12/30(日) 20:17:35.73ID:B70eWZuqcancanなんて初めて知った。
うわ情弱だおれw
今まで権限管理は手実装してたよorz
0792nobodyさん
2012/12/30(日) 20:31:37.51ID:???というかプラグインにするまでも無いだろこんなん。
0793nobodyさん
2012/12/31(月) 00:06:01.88ID:???うむ、俺も今までは各種コントローラーごとに
def owner_check
if current_user.id != post.user_id
レコード編集・削除権限がない場合の処理
end
end
こんなメソッドをいちいち書いてbefore_filterでシコシコとedit や destroyに適用してた
しかし、CanCanを入れると
can, [:edit, :destroy], Post, {user_id = current_user.id}
を一行入れるだけで済むようになる
しかも、そこらへんの権限については
柔軟な対応可能が可能になり短い文をroutes.rbのように書き出すだけで事済むようになる。
20文字くらいを一行書くだけで、もはやコントローラーを触る必要がなくなった。しかもCanCanの他の機能のload_resourceは超便利!
みんな@post = Post.find(params[:id])
を各メソッドごとに書くか
before_filterで@postを取得してるだろ?これをする必要がなくなる
つまりコントローラー内から
@post = Post.find(params[:id])
の表記を全て削除できる
なんぞこれ!?ってくらい便利
CanCanって海外だとdeviseくらいに多く使われてるし何よりdeviseとの相性が良すぎる。なんせCanCanの作者は俺たちのお師匠ライアン様(Railscast)だからね
0794nobodyさん
2012/12/31(月) 00:21:33.13ID:???if can?, update, @post を追記するだけで
Postモデルのupdateを実行できるかどうか判断できる
レコードオーナーや編集可能ユーザーの判定をいちいちシコシコと書く無駄な作業が激減して
見渡しの利くコードになる
全てにおいて作業効率が大幅アップする
それが世界で愛されるCanCan
githubでもお気に入りが4000越えてる
0795nobodyさん
2012/12/31(月) 01:18:29.16ID:???0796nobodyさん
2012/12/31(月) 01:52:22.33ID:???0797nobodyさん
2012/12/31(月) 02:11:19.05ID:GaWJ1okAわざわざコードまで示してくれてありがとう。
cancan導入してみますw
0798nobodyさん
2012/12/31(月) 02:17:33.48ID:???うむ、頑張りたまえ
ここの連中ってほぼ全員が
ノウハウを共有したがらないから
ROM専ばかりだけど
君にはそうはならないでほしい
書き込みや質問、応答が活発なCakePHPスレと比べても
Railerって陰湿
0799nobodyさん
2012/12/31(月) 02:46:36.79ID:???付属の tablib ではフィールド毎に表示とかupdateとかの権限チェックしてくれるので安全 (その代わり遅い)
0801nobodyさん
2012/12/31(月) 06:50:13.60ID:???これを外から見ると一つのHTTPサーバーでそれぞれのパス毎に稼働しているように見せかけたいのだが、どうすれば良いだろうか?
0802nobodyさん
2012/12/31(月) 07:37:40.27ID:zUgdNyrn■ このスレッドは過去ログ倉庫に格納されています