【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/
0119nobodyさん
2012/07/14(土) 22:14:17.51ID:???rails generate model page title:string ....
みたいなモデルを消したければ
rails destroy model page
でmigrationコードからテスト/fixtureまで消してくれる。
0121nobodyさん
2012/07/14(土) 22:22:54.25ID:???ネストのフォームでアソシエート先の値を編集できるようにするとき
アソシエートの器を用意するために
@parent.build_children
とすると仮にアソシエート先の値をブランクにしたままsaveしても
アソシエート先にレコードが出来ちゃうじゃん?
これって入力フィールドがemptyだったら
アソシエート先のレコードはdeleteするみたいな条件で毎回廃棄処理を入れなきゃダメなの?
空白だったらアソシエート先にはレコードをわざわざ作らないって出来ないの?
説明下手でスマソ
0122nobodyさん
2012/07/14(土) 22:24:48.85ID:???generate と destroy は対になってるから
view も controller も helper もなんでも同じ構文で消せるよ
0124nobodyさん
2012/07/15(日) 00:59:17.49ID:???例えば他のアプリから
@viewとcontrollerのファイル自体をコピペで持ってきて使うのはOK?
要するにrails generateは使わないってこと?
それとも
A必ずrails generateしてコードの中身だけをコピペすべき?
@だけでも問題なくアプリは動くけど
testやfixtureなどの整合性はどうなんだろうと思って。
あまり気にせず、controllerやmodelやviewsはいちいちgenerareせずに新規ファイルだけ突っ込んでいってok?
0126nobodyさん
2012/07/15(日) 06:07:46.57ID:???極力generate で作って destroyで消したほうがいいぞ
0128126
2012/07/15(日) 07:05:45.49ID:???あるべきところに、適切なテキストが置いてあれば
それだけでRailsはちゃんと動くからgenerateで作らなくても大丈夫だけど
そのあるべきところに適切なテキストを配置するのに結構手間がかかる
この手間をしている間にミスをする可能性が出てしまうから
極力generateで作ったほうがいい
そのためにgenerateコマンドとdestroyコマンドがあるといっていい
言い換えると作ってる人が楽をするためにgenerateとdestroyがある
0129nobodyさん
2012/07/15(日) 10:28:51.44ID:???どこに何をおけばどのように動くかきちんと把握できてるなら、generate を使う必要は
必ずしもあるわけではない
逆に、把握できてないなら、素直に generate 使っとけ
0130nobodyさん
2012/07/15(日) 11:02:10.06ID:???0133nobodyさん
2012/07/15(日) 15:51:05.43ID:???rails g controller action method1 method2 method3
ってしたらviewも対になってmethod1〜3まで出来るよね
controller内のmethod1〜3までの記述は異なるけど
renderはすべてmethod1.html.erb
を呼び出すようにした場合
method2.html.erb
method3.html.erb
は手動で消してもいいの?
0134nobodyさん
2012/07/15(日) 15:59:47.90ID:???0136nobodyさん
2012/07/15(日) 21:45:55.32ID:???http://salvan.web.fc2.com/programming/ruby/ruby.blog15m.html
0137nobodyさん
2012/07/16(月) 09:40:23.12ID:???1億ドルという途方もない額が今週GitHubに投資された。
http://jp.techcrunch.com/archives/20120714what-exactly-is-github-anyway/
0138nobodyさん
2012/07/16(月) 09:47:18.70ID:???http://blog.sorah.jp/2012/03/05/mass-assignment-vulnerability-in-github
0139nobodyさん
2012/07/16(月) 22:27:55.29ID:???http://www.atmarkit.co.jp/fdotnet/dotnettips/1069appusingruby/appusingruby.html
0140nobodyさん
2012/07/18(水) 03:22:17.81ID:???#!/usr/bin/env perl
use Dancer;
get '/' => sub {
"Hello World!"
};
dance;
$ perl bin/app.pl &
...
$ curl http://localhost:3000/
Hello world!
0141nobodyさん
2012/07/18(水) 03:38:29.22ID:???http://rubygems-leader.herokuapp.com/
0142nobodyさん
2012/07/18(水) 12:08:06.70ID:???行が増える分だけ動作が遅くなるとかあり得るんか?
0143nobodyさん
2012/07/18(水) 12:13:11.04ID:???字句解析の時点でコメントスキップされるから誤差もいいところ
0144nobodyさん
2012/07/18(水) 12:32:49.99ID:???ifなどの条件判断からの処理を複数行で書くのと
一行で端的に極力省略化された書き方するのとでは違ってくる?
0145nobodyさん
2012/07/18(水) 12:38:36.68ID:???コンパイル時に結合順序の違いが考慮される程度で最終的な構文木なり内部コードなりは一緒じゃないの?
Rubyの実装は知らんけどわざわざ違いを出す理由も思いつかない
0146nobodyさん
2012/07/18(水) 20:31:58.90ID:9zcTnPvu0147nobodyさん
2012/07/18(水) 21:48:48.00ID:???見にくいだけなのに
0148nobodyさん
2012/07/18(水) 22:08:52.48ID:???今はどうかしらんが。
0149nobodyさん
2012/07/18(水) 22:27:34.20ID:???ベンチもかなり回さないと分からんけど
0150nobodyさん
2012/07/19(木) 02:12:58.27ID:???それを「誤差の範囲」というのでは…
0151nobodyさん
2012/07/19(木) 03:06:40.35ID:???例えばSNSでいうメッセージ的なものでもGETにして
URL example.com/messages/46747
Routes 'messages/:id' => 'messages#show', :as => 'show_messages'
ViewLink <%= link_to 'message', show_messages_path>
とするのが王道ですか?
これだとURLにメッセージのIDが丸見えなので不健全な気がしないでもないのですが。。。。
0152nobodyさん
2012/07/19(木) 05:02:53.18ID:???google+
0153nobodyさん
2012/07/19(木) 05:16:14.90ID:???http://b.hatena.ne.jp/entry/www.treefrogframework.org/ja/ドキュメント/パフォーマンス比較%23.UAbIZa4NDMg.hatena
0154nobodyさん
2012/07/19(木) 05:28:09.34ID:???普通は
ハッシュキー持たせるかな
before_createで
1.MD5あたりで時間をキーにハッシュ生成
/message/:hash_key
で表示
0155nobodyさん
2012/07/19(木) 05:52:31.53ID:???「2chのトリップとID:xxxxxx」で説明するとmd5ハッシュとsaltの話がピンと来る気がした
http://www.otsune.com/diary/2007/10/24/1.html#200710241
281京4749億7671万0656個のランダム値を全て計算してつきあわせなければならない
0156nobodyさん
2012/07/19(木) 13:18:59.65ID:???ありがとん
メッセージ新規作成のときに
URL messages/new/:username
で送信相手のユーザー名を入れて
メッセージ編集画面を開くのも同様にすべき?
このやり方も不健全?
0157nobodyさん
2012/07/19(木) 13:22:06.49ID:???http://guides.rubyonrails.org/security.html
0158nobodyさん
2012/07/19(木) 15:59:02.27ID:???viewの中で
カラムを表示させるときのことです
(特に入れ子のテーブルの)
表示させようとするカラムのレコードがしょっちゅうNilってことが、あるとします。
その場合、viewに毎回いちいち
if (カラムのテーブル名.カラム名)?
をお尻につけてあげなきゃダメですか?
それとも、もっとスマートな方法はありますか?
0159nobodyさん
2012/07/19(木) 16:52:49.05ID:???設計ミス、はい次。
0160nobodyさん
2012/07/19(木) 17:32:13.02ID:???なぜかというと余計なレコードは増やしたくない。
必要な時だけbuildしてネスト先のレコードを作るようにしているからです。
そのネスト先のレコードを使わないと分かっていても
has_oneなどのアソシエーションをくんでいた場合は
空でもいいから必ずレコードは作っておく必要があるのでしょうか?
0166nobodyさん
2012/07/19(木) 21:19:28.86ID:???これNoMethodError出るよねw
0167nobodyさん
2012/07/20(金) 06:14:23.06ID:???どこがアジャイル開発だ
0169nobodyさん
2012/07/20(金) 12:08:54.42ID:???素人ヘッポコ・プログラマーでも出来る?
HTMLとCSSくらいなら分かる
0170nobodyさん
2012/07/20(金) 12:09:25.65ID:???0171nobodyさん
2012/07/20(金) 13:18:29.99ID:???PostgreSQL Rising
http://wekeroad.com/2012/07/19/postgresql-rising
MySQL is done. It's the Postgres Age. by Jeff Dickey
http://dickey.xxx/mysql-is-done-it-s-the-postgres-age
「MySQLが技術的なギャップを縮めてきているものの、PostgreSQLは優秀で人気がある」
http://www.computerworld.jp/topics/601/
MySQLにはDDLトランザクション処理がないので、
http://www.infoq.com/jp/news/2009/05/heroku-provisionless-revolution
MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.4.2 ロールバックできないステートメント
http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html
0172nobodyさん
2012/07/20(金) 14:10:58.50ID:???hobo_support の _? を使うときれいにいくぞ:
カラムのテーブル名.カラム名.なんとか if カラムのテーブル名.カラム名
の代わりに
カラムのテーブル名.カラム名._?.なんとか
hobo_support 全体を require すると起動が遅くなるので、必要な定義だけコピペしてもよろしい
0173nobodyさん
2012/07/20(金) 18:39:17.31ID:???http://d.hatena.ne.jp/rx7/20081124/p1
0174nobodyさん
2012/07/21(土) 02:50:05.00ID:???match 'posts/disable/' => 'posts#disable', :via => :post, :as => :disable_post
としていてindexのビューのテーブルにて
削除したい該当レコードにチェックをつけて、
下記で対象を絞り、複数のPostレコードのフラグを一括で書き換え無効(0)にしていたとします。
Post.find_all_by_id(params[:checked].keys) 以下、フラグ変更処理
ここまではうまくいっています。
しかし、posts/show.html.erb
の中に
フラグ書き換えのための下記リンクを
張ると何故か posts/disable.4
に飛ばされてしまいます。
本当は posts/disable/4 に飛ばしてフラグを変えたいのですが何故でしょうか
<%= link_to 'disable', disable_post_path(@post) %>
0175nobodyさん
2012/07/21(土) 07:25:29.58ID:???0176nobodyさん
2012/07/21(土) 09:05:23.73ID:???ありがとうございます
それも試しましたが
そう書くと
indexからチェックをつけてdisableアクションに飛ぶと
なぜか
routing error no route matches [post] "posts/disable/"
になります
showから単独でのdisableをしようと飛ぶと
routing error no route matches [get] "posts/disable/15"
になります
もうこれだけで3日間止まっちゃってます。。。。
0177nobodyさん
2012/07/21(土) 13:10:54.88ID:???じゃなくて
:as => 'disable_post'
じゃね
0179nobodyさん
2012/07/21(土) 14:00:34.40ID:???ちなみに詳細から飛ばす時、GETで飛ばしてるなら当然エラーになる。
あとPUTだと思うぞ。
0180nobodyさん
2012/07/21(土) 20:02:00.33ID:???ありがとう 書かれた通りに直しました。
しかし、いまだに
No route matches [PUT] "/posts/disable/11"
と出ちゃうけど何故でしょうか。。。。
indexのほうは問題ありませんでしたが、
showで posts/disable/11 に飛んで上のエラーが出ます
ちなみにこのように記述しています
routes
match 'posts/disable(/:id)' => 'posts#disable', :via => :post , :as => :disable_posts
view
<%= link_to 'Disable', disable_posts_path(@posts), :method => 'put' %>
controller
def disable
post = Post.find_all_by_id(params[:checked].keys)
...残りの処理...
end
0181nobodyさん
2012/07/21(土) 23:29:59.96ID:???0182nobodyさん
2012/07/21(土) 23:41:06.96ID:???コントローラも下記のように書き換えました
controller
def disable
post = Post.find_all_by_id(params[:id])
...残りの処理...
end
そして routes も
match 'posts/disable(/:id)' => 'posts#disable', :via => :put , :as => :disable_posts
として、複数レコードにチェックつけてsubmitしても
なぜか1レコードしか処理されていないみたいです。
@showから、表示しているレコードのIDだけを、link_toを使って単独で渡して処理する
Aindexから、チェックをつけてる複数のレコードのIDを、submitで渡して処理する
この両者に対応させる処理を1つのアクションに集約するって可能なんでしょうか?
0183nobodyさん
2012/07/22(日) 01:54:37.91ID:???0184nobodyさん
2012/07/22(日) 01:55:28.42ID:???0185nobodyさん
2012/07/22(日) 02:32:01.04ID:???0186nobodyさん
2012/07/22(日) 03:43:23.95ID:???そこは盲点でした
indexのviewはこんなかんじです。 これじゃ配列として>>182に書いたコントローラにパラメータを渡して処理できてない?
<%= form_tag(:action => disable, :via => 'put') do %>
<% @messages.each do |m| %>
<tr>
<td><%= check_box_tag "id",m.id %></td>
<td><%= m.last_message.id %></td>
<% end %>
<%= submit_tag "無効化" %>
0187nobodyさん
2012/07/22(日) 03:47:12.83ID:???こんなもんなんでしょうか???
0188nobodyさん
2012/07/22(日) 15:22:31.84ID:???hoge.com/ユーザー名
とするときに
コントローラーの予約語が入る時以外
→ユーザーの情報に飛ばす
ここのルート設定は問題ないんだけど
新規作成でユーザー名で予約語と被ったときに
弾く方法ってどうすればいいのかな?
バリデーションで予約語は弾く!的なものあったっけ?
0189nobodyさん
2012/07/22(日) 15:46:50.61ID:???ユーザ名にするのは、routesの順番で
0190nobodyさん
2012/07/22(日) 16:06:01.76ID:???たとえばpostsってコントローラーが既にあって
新規ユーザーがpostsってユーザー名で新規登録しようとするのを防ぐには
どうすればいいのかな?
0191nobodyさん
2012/07/22(日) 16:09:32.06ID:???0192nobodyさん
2012/07/22(日) 16:43:36.55ID:???スマートな方法が見つかったら書き換えればいいよ。
0193nobodyさん
2012/07/22(日) 16:49:46.21ID:???0194nobodyさん
2012/07/22(日) 16:57:51.83ID:???んで予約語だのコントローラ名を動的に引っ張ってこれるような上手い方法見つけたら差し替えろってこと
0196nobodyさん
2012/07/22(日) 17:11:32.73ID:???0197nobodyさん
2012/07/22(日) 18:23:58.26ID:???>>194
要するにUser Modelに
コントローラーの数の分だけバリデーションの行を書けってこと?
少しは頭使えよ…
0198nobodyさん
2012/07/22(日) 19:04:56.84ID:GOaeCh76http://blog.shares.ne.jp/2011/12/blog-post_13.html
なぜクックパッドの営業利益率は50%なのか (プレジデント) - Yahoo!ニュース
会員事業が売り上げ全体に占める割合は約60%。これがドル箱
http://zasshi.news.yahoo.co.jp/article?a=20120629-00010000-president-bus_all
http://hyokoya.wordpress.com/2011/05/02/クックパッドというビジネスについて%E3%80%802-%E3%80%80セグメ/
0199nobodyさん
2012/07/22(日) 19:11:40.75ID:GOaeCh76http://profile.yahoo.co.jp/independent/2193
blog::941:クックパッド株式会社 に行ってきた!
http://blog.kushii.net/archives/1350951.html
uby on Rails セミナー(クックパッド)へ行ってきたメモ
http://d.hatena.ne.jp/japanrock_pg/20081120/1227193355
0201nobodyさん
2012/07/22(日) 19:41:44.27ID:GOaeCh76http://stackoverflow.com/search?q=%5Breserved-words%5D+rails
0202nobodyさん
2012/07/22(日) 22:03:35.08ID:GOaeCh76Built-in way to determine whether a string is a Ruby reserved word?
http://stackoverflow.com/questions/6461303/built-in-way-to-determine-whether-a-string-is-a-ruby-reserved-word
0203nobodyさん
2012/07/23(月) 00:13:07.98ID:???User modelに
validates_exclusion_of を使えばいいことは分かったけど、どうやって端的に列挙すればいいのか分からない
0204nobodyさん
2012/07/23(月) 01:39:49.68ID:???validates_exclusion_of :name, :in => ['posts', ...]
配列の部分をDBで管理しておいてもいいけど。
0205nobodyさん
2012/07/23(月) 13:23:02.46ID:???link_toで:action => :newact
っていれただけだと、なぜかshowにidがnewactでわたってエラーになります。
newにnewact.html.erb、contoroller.rbに def newactを足しても
変わりません。
rails generate controller sample newact
ってしたら、書いていた他のactionが全部消えました。
0206nobodyさん
2012/07/23(月) 13:37:11.00ID:ZvaJ+abo「GET」「POST」「PUT」「DELETE」
Skinny Controller, Fat Model
0209nobodyさん
2012/07/23(月) 19:59:58.47ID:9hnh66oE0210nobodyさん
2012/07/24(火) 04:21:55.87ID:z+HRsGzrRailsによるurlの描き方
http://www.slideshare.net/fukajun/railsurl
0211nobodyさん
2012/07/24(火) 12:33:21.04ID:z+HRsGzrhttp://www.ruby-forum.com/topic/4404251
Ruby on Rails: Core - Google グループ
https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core
0212nobodyさん
2012/07/24(火) 12:46:07.03ID:z+HRsGzrhttp://rubygems.org/gems/rails/versions/3.2.7.rc1
0213nobodyさん
2012/07/24(火) 18:53:22.61ID:???その通りでした。
ありがとうございます。
generate controllerすると、route.rbに勝手にgetができるんですね。
0214nobodyさん
2012/07/26(木) 04:54:18.18ID:33u1kgJZ流儀に従ってフォルダパスを取得する方法ありますでしょうか?
image_path() のソースを追ってみたのですが、asset_tag_helper.rb#asset_paths に
入っていった所で断念してしまいました。。
0215nobodyさん
2012/07/26(木) 09:22:16.35ID:KMBCE3o3期待しているものとは違う気がするけど、
Rails.configuration.assets.paths.grep(/images/)
とか?
0216nobodyさん
2012/07/26(木) 22:18:36.72ID:???Railsでのコーディングはだいぶマスター出来たんだが
デザインもやりながらだと尋常じゃなく時間がかかってしまう。
0217nobodyさん
2012/07/27(金) 05:47:59.14ID:???サーバーの管理もやってるよ
デザインはそんな奇抜なものはやってないけどね
これからはMVC分業じゃなくて一人のエンジニアが
全部やっていくなんてことになりそうな勢い
■ このスレッドは過去ログ倉庫に格納されています