【RoR】Ruby on Rails Part13
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/11/04(金) 17:06:24.32ID:???【Ruby】Ruby on Rails Part12
http://hibari.2ch.net/test/read.cgi/php/1311050686/
■参考サイト
<英語>
本家: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://twitter.com/dhh
http://www.loudthinking.com/
0337nobodyさん
2011/12/02(金) 14:02:14.97ID:???「テストが仕様」という記述をよく見るので
「仕様書なら、かなり細かく書くよな」
「テスト項目のvalidationってともかく全部網羅するよな」
という考えが頭の中で回ってしまいます。
とrspecでは細かく書いて、cucumberで大まかなシナリオかいてとやっていると
テスト書いている時間のほうが長くなり、仕様変更する度にうあー!となります。
問題として、自分のテストコードの書き方があるんじゃないかと。
DRYを目指して、仕様変更に対応しやすいコードを書いたりが下手なんだと思います。
Web上にアップされているリファクタリングを見ていると、
結構目から鱗状態でポロポロ落ちていくのを実感しますよ。
>>336
もう少し気楽にとらえてみる事にします(仕事以外では)
0338336
2011/12/02(金) 14:23:11.52ID:???自分は仕事でも 336 に書いた感じ。
全体の工数にもよるから、テストを十分に書ける案件と、そうでもない案件がある。
それで粒度を変えてる。
validationも気になるなら書いてる。普通に境界とか気にしながら。
でもvalidationに限らず、他の人のを見ると、たまにRailsやプラグインの機能のテストになってる人もいるから、そこは指摘したり。
テストが仕様になるのはその通りだと思う。
メッセージを何語で書くのかという問題と、メッセージに書いてある事とテストの実装に齟齬が無いかという問題(この辺も最近のるびまに書いてあったはず)もあるけど、場合によっては日本語でほとんどメッセージ書いて、テスト結果をテキスト出力で残したりする。
もちろん非エンジニア向けで。
0339nobodyさん
2011/12/02(金) 23:03:35.82ID:???英語の講演もあったと思った
0341nobodyさん
2011/12/03(土) 08:41:27.79ID:???紙版を少し立ち読みしたけど薄くなったね。
完全な初心者には、あれだけじゃキツイ。
アメリカのAmazonのレビューも分かるわ。
買うとしたらPDFのが良いかとは思う。
0342nobodyさん
2011/12/03(土) 20:45:30.51ID:???0344nobodyさん
2011/12/04(日) 01:27:06.38ID:???新しいアジャイル本、読んでみた?
なんか微妙に説明が足りないぞ。
初心者はそれでハマりそうな気がする。
あちこち端折られてる感じ。
分かってる人なら良いが。
0346nobodyさん
2011/12/04(日) 08:04:22.37ID:???第二版を学生時代に図書館で借りて、完璧に近い内容だったように記憶してる
中級者ぐらいが知識を深めるのに最適な日本語書籍(3.0以降対応)って無いのかな
0347nobodyさん
2011/12/04(日) 09:01:00.85ID:???ごめん、読んだのは第3版だったわ
辞書的な使いやすさじゃなくて、初心者のチュートリアル的なとっつきやすさでは、
アジャイル本>HEADFIRST >技術評論社
だった
個人的な意見だけど
0348nobodyさん
2011/12/04(日) 09:39:14.58ID:TN6yu8qJ0349nobodyさん
2011/12/04(日) 11:22:33.09ID:???大体そんな感じ。
「良い本だったのに、何があったの?」
「ガッカリだよ」
「初心者向けじゃないね」
「もうRails使えるからいいけど、初心者の時を思い返すとこれはないわ」
「Webで予め学習が必要」
みたいな。
0350nobodyさん
2011/12/04(日) 13:16:18.56ID:Zd1Rckh+varcharカラムを擬似的にenumっぽく使えるgemはあるみたいなんですが、
インデックス貼って使いたくなったときはvarcharよりenumの方が速く検索できますよねぇ?
0351nobodyさん
2011/12/04(日) 13:40:32.03ID:TN6yu8qJ0352nobodyさん
2011/12/04(日) 14:45:24.32ID:???無料だし。
0354nobodyさん
2011/12/04(日) 16:39:23.00ID:TN6yu8qJそれを言うと、「英語出来ません ;_; 」と言われて閉口する。
昨日 a_matsuda も「勉強してください」って言ってたぞ。
0355nobodyさん
2011/12/04(日) 18:57:25.37ID:???http://www.infoq.com/jp/news/2009/05/heroku-provisionless-revolution
0356nobodyさん
2011/12/04(日) 21:08:19.07ID:???http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html
0357nobodyさん
2011/12/04(日) 21:20:16.15ID:???acc_num: stringなカラムに
rec1:
acc_num: '2011E-0003'
というデータをrake db:fixtures:loadで読み込ませると、勝手に'2.011'にしてくれます。
たまたま実数リテラルになっているので仕方がないのかもしれませんが、
2011年のEクラスの3番目の受け入れ番号なので、できればこのフォーマットの文字列を
そのままacc_numカラムに入れたいのです。なにか方法は無いでしょうか。
0358nobodyさん
2011/12/04(日) 22:23:54.34ID:???0359nobodyさん
2011/12/04(日) 23:22:43.89ID:TN6yu8qJ0360357
2011/12/05(月) 10:19:24.91ID:???ありがとうございました。
>>359
その通りですね。rails fixtures scientific notationなどと検索しても出て来なかったのも当然です。
0361nobodyさん
2011/12/06(火) 18:23:51.40ID:???は?ubuntuなんかパッケージ管理ツールから全自動だろ。
馬鹿かお前。てかwindowsの話してんのになんでlinuxがでてくる
0362nobodyさん
2011/12/06(火) 18:50:49.63ID:???0363nobodyさん
2011/12/06(火) 19:20:44.17ID:???0364nobodyさん
2011/12/06(火) 22:40:47.04ID:???0365nobodyさん
2011/12/07(水) 11:01:25.63ID:???Posted by fxn December 06, 2011 @ 09:20 PM
There are some new features related to EXPLAIN in the forthcoming Ruby on Rails 3.2 we'd like to share:
http://weblog.rubyonrails.org/2011/12/6/what-s-new-in-edge-rails-explain
0366nobodyさん
2011/12/07(水) 11:38:44.35ID:???http://railscasts.com/episodes/114-endless-page
0367nobodyさん
2011/12/07(水) 23:48:36.03ID:3l+6U4x7パズルの問題だと思って答えてみてください
1. PHPでできたガラケーの案件がある
2. 現在あるテーブルのうち半分位はデータを同期しないといけない
3. 機能はスマホとガラケーでほぼ同じ、ただしビューは今後大きく乖離していくと思われる
4. PHPの旧案件はメンテナンス性が悪く、保守にRailsでの管理の倍近い時間がかかっている
・ガラケー案件なのでデータがsjisで保存されています、スマホ版ではUTF-8でガラケー版ではSJISで取り出す
・ガラケーならXHTML1.1Basic、スマホならHTML5での出力をしないといけない
こういう状態なのですが、次の4つの選択肢でどれを選択するでしょうか?
1. ガラケー版もRailsでリライト。
2. スマホ版もPHPの旧フレームワークでこれからも頑張る
3. ガラケー案件にWebAPIを追加。DBは分けてスマホはRails
4. 同じDBでにスマホ版のためのテーブルを追加、スマホはRasil
0368nobodyさん
2011/12/08(木) 00:01:12.45ID:???5. WebAPI は作らずガラケーDB直読みのバッチプロセスで同期を取る/DBは分離でスマホはRails
0369nobodyさん
2011/12/08(木) 00:07:18.52ID:???予算無いなら 3
予算あって、停止可能なら 1
でも、1もDB移行とかあってヤダなという感じ
0370nobodyさん
2011/12/08(木) 01:12:40.91ID:???DB 直接叩かないのはサービス間の密結合を避けるためなんです。疎結合。
http://d.hatena.ne.jp/naoya/20060228/1141094456
結論:内部WebAPIによりフロントエンド/バックエンド化
http://d.hatena.ne.jp/kazuk_i/20090117/1232191936
独自フレームワークはやめよう
作るのが難しい、メンテナンスが難しい、ということに加えて、もう一つの問題点は、新しく加わった人の教育コストが高くなるということがある。
まず、外の資源(ドキュメント/本/Google検索)が使えないので自前ですべて教育をしなくてはならない。
http://blog.madoro.org/mn/84
0371nobodyさん
2011/12/08(木) 02:41:00.29ID:???0372nobodyさん
2011/12/08(木) 03:13:03.63ID:???http://ja.wikipedia.org/wiki/テスト駆動開発
http://en.wikipedia.org/wiki/Test-driven_development
0373nobodyさん
2011/12/08(木) 03:13:44.24ID:???失敗するテストを書く
できる限り早く、テストがパスするような最小限のコード本体を書く
コードの重複を除去する(リファクタリング)
テストの実行環境ツールであるxUnitでは、テストの失敗を赤いバー、成功を緑のバーで通知するため、上記のサイクルは Red/Green/Refactor と称される。
0374nobodyさん
2011/12/08(木) 06:30:03.62ID:???古くなったのを捨てて、新しく作り直したいというのは分かる。モチベーション的に。
0375nobodyさん
2011/12/08(木) 07:42:43.24ID:???0376nobodyさん
2011/12/08(木) 08:25:03.90ID:???完全に動いてるコードがあるなら、この場合のリファクタリングは共通化できる部分(モデル)とできない部分(ビュー)の分離が主だから手間かからなそうなイメージ
まあ実物みないとなんともだけど
0377nobodyさん
2011/12/08(木) 09:15:39.46ID:???0378nobodyさん
2011/12/08(木) 09:43:10.12ID:???0379nobodyさん
2011/12/08(木) 11:10:52.17ID:???ひと通り勉強するには
新しく出たアジャイル本と技術評論社の本どっち買えばいい?
本とか買わないで公式のガイドだけでも大丈夫?
0380nobodyさん
2011/12/08(木) 12:54:46.36ID:???結局、ある程度完成したら その確かに動いているコードのためにテスト書いて、
保守・変更に備える、という風になってしまう。
BDDもTDDも全然できん。。。
0381nobodyさん
2011/12/08(木) 15:58:13.96ID:???脳内で仕様決めながらトライアンドエラーでやってるとテスト書けなくなるのは確か。
0382nobodyさん
2011/12/08(木) 16:18:10.49ID:???tddが適用できるのはそこじゃなく、仕様がある程度固まってきて、ライブラリを作ったりapiを作るとき。それと複雑だったりクリディカルな箇所を作るとき。
0383nobodyさん
2011/12/08(木) 16:31:57.40ID:???0384nobodyさん
2011/12/08(木) 16:38:23.79ID:???0385nobodyさん
2011/12/08(木) 22:45:49.21ID:???0386nobodyさん
2011/12/09(金) 00:25:15.46ID:???ただ、自分なんかは納品するコードは試行錯誤のあと一から清書するようにしていて、そのときにTDDとかを取り入れられないかなと妄想してる
0387nobodyさん
2011/12/09(金) 01:23:33.03ID:???仕事で書くのと全然違うし。
予算や時間、仕様、お客さんの意向なんかについても全く考えないでしょう。
0388nobodyさん
2011/12/09(金) 02:32:37.19ID:???俺は大半の案件でテストを書いてるが、それで問題になったことはほぼない
(ちなみに数人〜数十人のプロジェクトだが)
むしろメンテ段階で「書いててよかった」という方が多い
Railsは案件自体が少ないが、少なくともJavaの世界はテストは当たり前だぞ?
0389nobodyさん
2011/12/09(金) 09:23:55.85ID:???そういうところでは一人だけ頑張って書いても手間が増えるだけになるから
そういう結論に至るのもやむなしと言える。
0390nobodyさん
2011/12/09(金) 11:47:02.87ID:???多くて5,6人、普段は1人から3人くらい。
テスト書いてて、仕様変更が多すぎてテスト無駄になってキツイとかいうのは、仕様決める奴の問題。
プロジェクトに後から入ったり、改修で渡されたりした時に、テスト無いと本当に困る。
0391nobodyさん
2011/12/09(金) 11:52:05.50ID:???くるくる仕様変更されても耐えられるようになるんだよね。
仕様が口頭や脳内のみで決まる文化の場合は知らん。
0392nobodyさん
2011/12/09(金) 23:07:27.41ID:???明らかにこいつら要らないだろってくらい人が無駄にいたりする
0393nobodyさん
2011/12/10(土) 06:42:22.50ID:???っていう開発体制のところだと、事前にテストを書いてエラーをすべて潰した場合
品質保証部が単体テストの終了をどう判断したらいいかわからなくなる
0394nobodyさん
2011/12/10(土) 09:08:52.85ID:???なんかこれ思い出したわ。
↓のHaskellのとこな。
http://d.hatena.ne.jp/shunsuk/20100928/1285677528
0395nobodyさん
2011/12/10(土) 13:01:18.16ID:???0396nobodyさん
2011/12/10(土) 14:25:58.23ID:???0399nobodyさん
2011/12/10(土) 22:31:41.43ID:???0400nobodyさん
2011/12/10(土) 22:59:46.17ID:???0401nobodyさん
2011/12/11(日) 00:28:47.61ID:???0402nobodyさん
2011/12/11(日) 00:56:16.39ID:uh1drSU/rails3でscssを使用して/asset/images/画像.jpgを使用する際に
CSS上に「<%= asset_path '画像.jpg' %>」と記載すると
Invalid CSS after "...ge:url(<%= asse": expected expression (e.g. fr, 2n+1), was "<%= asset_path ..."
エラーになります。
application.cssの「= require_self」や「= require_tree」はコメントのままですが
こちらが影響していますでしょうか。
0403nobodyさん
2011/12/11(日) 01:14:46.68ID:???0404nobodyさん
2011/12/11(日) 01:19:10.34ID:uh1drSU/width:100%;
color: #ffffff;
font-size: 36pt;
background-image:url('<%= asset_path 'h1_bg.png' %>');
background-repeat:repeat-x;
padding-left: 20px;
0405nobodyさん
2011/12/11(日) 01:21:52.28ID:???0406nobodyさん
2011/12/11(日) 01:27:02.05ID:uh1drSU/ちなみに
「アプリ名」/app/assets/images/h1_bg.pngファイルを背景にセットする場合は
どういう方法で記載すればよろしいでしょうか。
0407nobodyさん
2011/12/11(日) 01:33:13.25ID:???0408nobodyさん
2011/12/11(日) 01:55:34.66ID:uh1drSU/・config/application.rbに下記を追記
config.assets.paths << Rails.root.join("app", "assets", "flash")
・application.html.erbに下記を確認(アプリ作成時に自動生成)
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
・CSSには下記を追記
.class { background-image: url(<%= asset_path 'image.png' %>) }
※でもココは記載方法が誤ってるとのこと
・application.cssの下記をコメントアウト
= require_self
= require_tree
おそらくcssがコンパイル対象に入ってないので<%%>が動作していない
感じですよね。。
何か設定が漏れてるか根本的な何かが違うのか・・・・・
ちなみにWebrick上です。
0409nobodyさん
2011/12/11(日) 01:59:41.26ID:???0410nobodyさん
2011/12/11(日) 01:59:57.88ID:V77chh0Xcssの中にerbを書きたければ拡張子を連結すれば?
css.scss.erb みたいなことになりかねないがw
0411nobodyさん
2011/12/11(日) 02:03:29.88ID:uh1drSU/0412nobodyさん
2011/12/11(日) 02:05:15.40ID:???話はそれからだ
0413nobodyさん
2011/12/11(日) 02:10:52.51ID:uh1drSU/一応css.scss.erbにしたらエラーは解消されましたが
画像は適用されなかったです。
background-image:url('<%= asset_path 'h1_bg.png' %>');
と
background-image:url('<%= asset_path 'images/h1_bg.png' %>');
両方試しましたがダメでした。
asset_pathにはassets/が入ってました。(当たり前か、、、)
0414nobodyさん
2011/12/11(日) 02:12:32.09ID:???だったらGuidesのどの項目にこう書いてたからこのように試しました、みたいな
話があるはずじゃん?
0415nobodyさん
2011/12/11(日) 02:26:13.23ID:uh1drSU/ていうか、無事にできました。
background-image:url('<%= asset_path 'h1_bg.png' %>');
の記述方法で出来ました。
大変申し上げにくいのですが、imagesフォルダに画像が入ってなかった
ってお粗末な感じでした。
てか414うっせーんだよ!
英語のサイトなんかそんな簡単に読めるかっツーの
0416nobodyさん
2011/12/11(日) 02:29:05.25ID:???煽りじゃなく、実際にそうだから
0417nobodyさん
2011/12/11(日) 03:14:06.04ID:V77chh0Xttp://speakerdeck.com/u/a_matsuda/p/object-oriented-social-coding-scripting-language-ruby?slide=92
0418nobodyさん
2011/12/11(日) 07:19:24.13ID:???どうでもいいけど
0419nobodyさん
2011/12/11(日) 10:34:28.96ID:???0420nobodyさん
2011/12/11(日) 10:38:45.08ID:???root :to => 'hogehoge#index' とか自分で表示したいモデルのアクションを指定してください。
もともとある public/index.html を消さないと表示されないので注意。
0421nobodyさん
2011/12/11(日) 22:24:26.01ID:???yieldしてる所といえば、関数的なトップかと。
0422nobodyさん
2011/12/12(月) 09:21:02.05ID:/L+tQXzJ絶対前スレのこの人だと思う
散々質問しておいて結局自力で環境すら構築できなかったのでさじを投げて3000円出すから環境作ってくれ発言して消えた人
改行の仕方、句読点の使い方が全く同じ
あれから二ヶ月を経てアンチRailsとなって帰ってきた模様 哀れですね
461 nobodyさん[sage]投稿日:2011/09/12 03:18:03 ID:???
Apache
MySQL
PHP(php-mysql)
phpMyAdmin
sqlite3
Ruby1.9
rails3.1
gem-mysql2
これらが干渉せずに問題なく動くよう
CentOS5.6に入れたいと思います。
しかし何度試しても必ずどこかで引っかかります(特にphpMyAdminの部分)
初期状態のCentOS5.6をお持ちの方で上の条件をクリア出来る方いたら
手順を書いていただけませんか?
こちらでも試してみて、それらが問題なく動くようであればpaypal経由で少ないかもしれませんが3000円を差し上げます。
お時間ある方で試してもいいよ!という方いましたら
よろしくお願いします。
0423nobodyさん
2011/12/12(月) 17:00:28.37ID:Y3Ov/unGDeviseでメールアドレスを変更したときにもsign_up時と同じようにメール確認したいのですが何かいい方法ありませんか?
0424nobodyさん
2011/12/12(月) 19:36:00.31ID:???または自分でそのように作る。
前にも同じ事質問してた人いたな
0425nobodyさん
2011/12/13(火) 14:33:11.22ID:???0426367
2011/12/15(木) 15:26:07.13ID:KwvvVU/T直接の上司&マネージャーと相談した結果
1.まずスマホ版をRailsで開発(set_table_name地獄!)
2.JPMobileに頼ってガラケー版もRailsで統合
を3ヶ月くらいかけてやる予定になりました
それで、追加で質問なのですが
元々PHPで作っていたフレームワークで<DOCOMO></DOCOMO>とかの独自タグがあるので
レンダリングされる前に
<DOCOMO>→<% if request.mobile.is_a?(Jpmobile::Mobile::Docomo) %>
とかのerb向けのコードに置換とかをしてくれる方法とかはないでしょうか?
render関数の中のコードとかを読んでいましたが、いまいち隙間なさそうな感じでしたので
ダメならsedで置換しますけど、<DOCOMO>タグとか、これはこれで可読性高いので、出来ればこのまま使い続けたいので
0427nobodyさん
2011/12/15(木) 21:21:54.63ID:ezOoglIjshow.html.erb.ourtemplate のうようなビューにしとくと、css.scssや
js.coffeeの処理と同様に、後ろ側の拡張子から順に指定のハンドラで
変換を施していくことが出来るよ。
Sprocketsに拡張子を登録しなきゃならないけど、たぶんsass-railsとか
見れば似たような処理をやってるはず。
0428nobodyさん
2011/12/16(金) 12:28:44.59ID:???https://github.com/rails/sass-rails/blob/master/lib/sass/rails/railtie.rb
0429nobodyさん
2011/12/16(金) 23:09:55.22ID:???0430nobodyさん
2011/12/16(金) 23:12:41.32ID:???0431nobodyさん
2011/12/16(金) 23:21:57.66ID:JsvWUNfN0432nobodyさん
2011/12/16(金) 23:24:44.50ID:???お客さん向けのはふっるいStrutsのシステムの保守というお寒い職場なのでお察し
0433nobodyさん
2011/12/17(土) 09:48:50.01ID:???今は新しい案件が来たら3.0.10で作ってる。
3.1はまだ触ってないので、趣味である程度慣れてから業務に使う予定。
0435nobodyさん
2011/12/17(土) 17:16:49.33ID:???DRYML っちゅー Rails用の XML風のテンプレートエンジンもあるよ。
独自タグも簡単に作れる。
<def tag="DOCOMO">
<do param="default" if="&request.mobile.is_a?(Jpmobile::Mobile::Docomo)"/>
</def>
Hobo と組み合わせずに使う人はあまりいないみたいなので
https://github.com/tablatom/hobo/pull/32
こんな感じだけど。
0436nobodyさん
2011/12/17(土) 23:58:38.85ID:???現在、多くのプログラマ(素人)がウェブアプリケーションというものがベストな正しい方向だと勘違いしている。
ソフトウェアの作るにおいてそのアプリケーションに応じた状態遷移を実装するというのは基本中の基本である。
その点においてウエブブラウザというある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは論外である。
そこまでするなら普通にアプリケーションを実装してダウンロードして使ってもらえばいいのである。
ウェブアプリケーションとは虚構にしか他ならない。
ウェブアプリケーションを作ろうとしているあなた。
今すぐ普通のアプリケーションとし設計し始めてはいかがだろう。
そうすればきっと後悔しないですむ。
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。
だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。
ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)
JavaならWebClietnだ(これは、ブラウザではないが。)。
包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。
■ このスレッドは過去ログ倉庫に格納されています