【Ruby】Ruby on Rails Part6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/10/24(金) 17:46:53ID:???http://pc11.2ch.net/test/read.cgi/php/1207425569/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ
Rubyについて Part 33
http://pc11.2ch.net/test/read.cgi/tech/1223709050/
Ruby 初心者スレッド Part 22
http://pc11.2ch.net/test/read.cgi/tech/1221467121/
0773nobodyさん
2009/03/29(日) 10:04:29ID:7sf+X/id内容の空チェックには「hoge.blank?」を使えばおk
0774nobodyさん
2009/03/29(日) 10:39:06ID:???blank?を使うのは、データをRailsで取得したあとだろ。
取得したくない場合は、「is not null」とか条件をつけたりするが、
NULLと空白を意識してないのに、両方混在するときついんだが。
「論理的には同じ意味でーす」みたいな感じだから条件が増えてばかにならん。
それにユニーク制約とかどうするのよ。
NULL許可でも空文字で入ってきたらはじかれるじゃん。
でもそんなことを意識してるWebプログラマーは少数派。
0775nobodyさん
2009/03/29(日) 10:44:52ID:???仕事でWebやっているけど、
そんな連中には会ったことないぞ。
プログラム未経験の新卒くらいじゃないのか?
0776775
2009/03/29(日) 10:46:50ID:???NULLと空白の違いを意識しないやつには会ったことないって意味ね。
しかし、本当にそんな変なやついるのかな。
素人以外で。
0778nobodyさん
2009/03/29(日) 13:38:45ID:???大学になら居たかも知れん
0779nobodyさん
2009/03/29(日) 14:08:29ID:???PHPしか知らないエンジニアなら、区別がつかんかもしれん。
0780nobodyさん
2009/03/29(日) 14:33:09ID:???0781nobodyさん
2009/03/29(日) 14:38:02ID:???0782nobodyさん
2009/03/29(日) 14:39:19ID:???0783nobodyさん
2009/03/29(日) 14:41:57ID:???○伝播(でんぱ)
0784nobodyさん
2009/03/29(日) 14:45:44ID:???伝播ということはどこかをNULLにするとほかに波及するってことか?
0785nobodyさん
2009/03/29(日) 14:47:11ID:???0786nobodyさん
2009/03/29(日) 15:02:00ID:???t.string hoge :null => false
t.string hage :default => nil
みたいに、nullとnilの表現が混在して、一瞬どっちがどっちだったか
まぎらわしくなることがある。
0787nobodyさん
2009/03/29(日) 17:58:33ID:Uytn6itq(自分は、Rails や Ruby は未経験)
本を一冊買おうと思うのですが、どれがいいでしょうか?
Ruby の本と、Rails の本をそれぞれ1冊ずつ買おうと思います。
(Ruby の本はム板の「Ruby 初心者スレ」で検討しています。)
自分は Java は経験が長く、PHP / C / Perl はある程度書けます。
amazon で調べると
「RailsによるアジャイルWebアプリケーション開発(第二版)」が定番の本らしいですが、
この本は Rails 2.0 系に対応してないのですよね?
できれば 2.1 系に対応している本がいいのですが、(そうでなくても)いい本があれば教えてください。
0788nobodyさん
2009/03/29(日) 18:23:57ID:???http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
その本の原書第3版が出たばかりで、これは当然2系を扱っている。
(URLのrails3てのはrails ver3じゃなくて、この本の第3版という意味)
英語が気にならないならどうぞ。
0789nobodyさん
2009/03/29(日) 18:24:36ID:???2系の追加機能については最後のほうでちょこっと触れてたはず
なので、補完しながら読めば問題ない。
0790nobodyさん
2009/03/29(日) 18:36:08ID:???教えてもらえる人がいるのかいないのかで違ってくるんじゃないだろうか。
どっちにしてもリファレンス本は別に1冊あった方がいいよ。
リファレンスなら、
Railsレシピブック(ソフトバンク) ←ものすごく無難な感じ
The Rails Way(翔泳社) ←少しがっつりやりたい人向け。RSpecを使うならこれ
Ruby on Rails 逆引きクイックリファレンス(毎コミュ) ←割と実戦的
があるね。一応どれも2.0に対応してるよ。
0791787
2009/03/29(日) 18:53:47ID:Uytn6itqいま amazon を必死に眺めてますが、
「10日でおぼえる Ruby on Rails入門教室」が気になってきました。
あと少ししたら本屋に行ってこようと思います。
>>790
新規システム開発で、プロジェクトそのものは製造フェーズに入り始めたところらしい。
人が足りない&デスマになってきたのでアサインされたそうです。
まだ中身を見ていないのですが、
> Ruby on Rails 逆引きクイックリファレンス(毎コミュ) ←割と実戦的
これは逆引きとのことですが、これを使って勉強するのは、ちょっと目的が違いますか?
0792nobodyさん
2009/03/29(日) 19:56:48ID:???なるおそれがあるから、基本から予習しておいたほうがいいな。
0795nobodyさん
2009/03/29(日) 21:31:31ID:???製造フェーズに入り始めなのにデスマになりかけとはご愁傷様
リファレンスは部分部分を解説してるから、
全体が分からないときついと思うよ。
逆引き〜はいい本だと個人的には思うけど、それだけで勉強するのは無理だと思う。
「10日でおぼえる Ruby on Rails入門教室」は、
徹底してテスト駆動開発のスタンスをとってて、
Railsでの開発の基礎固めにはいいと思うよ。
デスマだとテスト駆動とか無視される可能性大だけど。
ちょっとだけどRubyの基礎みたいなものも触れてるから、
買うならはじめはそれ1冊をやるといいかもね。
欠点は
・1.2系が対象。2系との差は意外と無視できない。
違いを知らないとスキャフォールドの生成すら苦労する。
・目次が不親切。リファレンスとしては使えない
「あれやるのってどこに書いてあったっけ?」と思って後から探しても見つからない。
・広範囲にやりすぎて、まとまりがない
7,9,10日目はいらないと思う。「ゲームアプリの作成」とかいらんちゅーの。
その代わりActiveRecordとかについて、もっと突っ込んだりしてほしかった。
Rubyそのものの入門書はオライリーの「はじめてのRuby」がダントツおすすめ。
多言語の経験ある人むけだけど、Javaメインで結構あるみたいだから。
0796nobodyさん
2009/03/29(日) 22:23:24ID:???0797nobodyさん
2009/03/29(日) 23:24:14ID:???本気でRailsやってるやつは少ないと思う。過去のレス見てみ
ほとんどは趣味レベル
0798nobodyさん
2009/03/30(月) 04:15:36ID:???あとRoRなんて採用しちゃって運用も大変だと思う。
ゲームは販促上は重要。実践的ではないにしろ。
0799nobodyさん
2009/03/30(月) 08:53:57ID:???0801787
2009/03/30(月) 14:13:17ID:???本屋で「10日〜」と「RailsによるアジャイルWebアプリケーション開発」を
読み比べてましたが、2冊買ってもそこまで読む暇もないだろうということで、
「Railsによるアジャイル〜」を買ってきました。
「10日〜」のほうが読みやすそうだったのですが、 >>795 さんの言うとおり
・こっちも 1.2 系準拠だったのと、最後の方は業務で使わなさそうと思った
・scaffold や migratoin が知りたかったが、「Rails によるアジャイル〜」のほうが載ってるっぽい
・「Rails によるアジャイル〜」も、前半部分は、「10日〜」と同じようにチュートリアル形式で
勉強していけそう
「逆引き〜」は、もうすこし RonR がわかってから、必要であれば読もうと思います。
あと多少スレ違いですが、Ruby そのものの入門書は、「初心者スレ」でも好評だった
オライリーの「初めてのRuby」を買ってきました。
>>798- Ruby でデスマ
すでに加入している人に聞いたところ、いまデスマっている要因は、上流工程によるもの
(設計書が全然fixしない。こっちのヒアリングの仕方が悪いのか、顧客が無理を言っているのかはわからないけど)
だそうですが、RonR(というかRuby)経験者もほとんどいなく、1機能だけ先行して開発しているが、
これも全然うまくいっていないそうです。
上流工程がうまくいっていなくても、開発に入った段階でリスクが少ない技術を
選んでいれば(自分だったら Java になりますが)、ある程度リスクや工数を読めますが、
今の状態だと、開発に入ってからも全然安心できない、と言っていました。
余談ですが RonR を指定してきたのは顧客だそうです。
# それを言い訳にしたいというわけではない。あきらかに案件に RonR が合っていないのならば
# 顧客にそういうべきだし、そもそも自分たちが RonR でやれる自信がないのであれば
# 受注しないほうがいい
まぁこれを機に RonR が覚えられればと思って、大変そうだけどがんばろうと思っています。
0802nobodyさん
2009/03/30(月) 15:50:15ID:bIKocM1Vちょっと勘違いしてないか?
テキストエリアの値が空文字でDBに保存さてれるのは、未入力の場合該当パラメータが空文字で送られてきてるから
該当カラムの値をnilにして保存すればDBにはNULLが格納される
なぜ未入力が空文字で送られてくるのかというと、そのほうが色々都合がいいから
・nilを許可する場合、メソッド実行前にnilチェックが必要になる
・空で更新されたのか、本当にNULLなのか見分けがつかない
・IS NULL検索時にインデックスがきかないケースが存在する
・NULLの扱いがDBの実装によって異なる
俺からしたら空白で統一されているものを、なぜわざわざ
コアをいじってまでNULLを混入させようとするのか謎なんだが
ユニーク+NULL許可というレアなケースを実現したいならなら、その場合だけ
フィルタ使ってnilに置き換えたらいいんじゃない?
0803nobodyさん
2009/03/30(月) 16:39:00ID:???↓
すまん、これよくわからん。なんのメソッドだ?
バリデーションが必要ということか?:allow_nilオプションのことだろうか。
・空で更新されたのか、本当にNULLなのか見分けがつかない
↓
実際はNULLかもしれないのに、
空が入ってくると見分けがつかないとも言える。実際混乱する。
データがWeb経由のみから入ってくるとは限らない。
たとえば、
select count(column_name) from table_name
とやると、column_nameの値がNULLの時はカウントされない。
有効なデータ件数のカウントすらつまらん条件を入れることになる。間違いのもと。
・IS NULL検索時にインデックスがきかないケースが存在する
↓
ビットマップインデックスならきく。
B-Treeの場合、カーディナリティーが重要になる。
絞り込み条件によってデータがざっくり15〜20%くらいまでは最低でも絞り込まれないと、
フルスキャンの方が速くなる。
形だけNULLにするとインデックスがきくことによって逆に遅くなったりする。
・NULLの扱いがDBの実装によって異なる
↓
Oracleあたりは両者を区別してないね。というより空白はNULLで格納される。
それと空白が都合がいいという結論とどう結びつくのかわからん。
むしろ空白だと思ってたのに、NULLが入ってましたなことになるんだぞ。
where column_name = '' とかやっても絞りこまれんぞ。
Web系は特にDBまわりの扱いがおおらかすぎ。データが汚いと余計な苦労が増える。
0804nobodyさん
2009/03/30(月) 16:40:11ID:???↓
形だけNULLを空白にするとインデックスがきくことによって逆に遅くなったりする。
0805nobodyさん
2009/03/30(月) 17:32:33ID:???できれば YAML, 配列, ハッシュなどで記述できると嬉しいです。
0807nobodyさん
2009/03/31(火) 00:58:24ID:1AlmVzbDsalable_itemsが見つからないと怒られます
コントローラに、@products = Product.find(:all, :order => "date_available desc")
のように記載すると動作します。
アクセス修飾子等考えたのですがわかりません、何が原因なんでしょう?
Railsは2.1を使っています。
class StoreController < ApplicationController
def index
@products = Product.salable_items
end
end
class Product < ActiveRecord::Base
def self.salable_items
find(:all, :order => "date_available desc")
end
end
0808nobodyさん
2009/03/31(火) 01:23:58ID:???モデルはそれで全部なの?実際にブラウザで確認した結果、そのエラーが出たのかな?
0809nobodyさん
2009/03/31(火) 01:42:31ID:oWRq8GzNブラウザで確認した結果上述のエラーがでました。
モデルでは、入力された値のチェックを行っていますが
StoreコントローラではProductに入力は行われないので省きました。
情報を書ききれてなくて申し訳ないです。
0810nobodyさん
2009/03/31(火) 01:48:09ID:???コード的には間違ってないと思う。(salableはsellableのような気がするけど)
0811nobodyさん
2009/03/31(火) 02:08:55ID:???暇だからproductsテーブルを作って試してみたが普通に動くよ。
CentOS5.2、Ruby1.9.1、Rails2.3.2。
コントローラで元の「@products = Product.all」をコメントアウトしたけど、
コメントを入れ替えれば挙動も当然かわる。
推測ではモデルのほかの部分が問題なんじゃないだろうか。
可能な限り情報を出さないと、ほかの人間からは分からないと思う。
自分では問題ないと思ってる部分が問題なことは多いからね。
***** おれが試したソース *****
コントローラ(一部、変更部分は完全コピペ)
def index
# @products = Product.all
@products = Product.salable_items
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end
モデル(全部、完全コピペ)
class Product < ActiveRecord::Base
def self.salable_items
find(:all, :order => "date_available desc")
end
end
0812nobodyさん
2009/03/31(火) 02:23:02ID:???0814nobodyさん
2009/03/31(火) 13:01:11ID:ZMAhYizeviewからcontrollクラスのメソッドを使うことってできないのでしょうか??
例えば、ApplicationControllerクラスに現在自分がログインしているユーザーのIDを取得するメソッドを定義しておいて、それをviewから使いたいようなことがあると思うのですが、どうするのがベストなのでしょう??
教えて頂けると幸いです。
0815nobodyさん
2009/03/31(火) 14:53:49ID:???0816nobodyさん
2009/03/31(火) 15:01:58ID:???current_user.id みたいにヘルパで取れる
0817nobodyさん
2009/03/31(火) 18:35:45ID:???@hoge = now_login_user
みたいにインスタンス変数に入れておけばViewで以下のように使える
<= @hoge >
0818nobodyさん
2009/03/31(火) 19:09:06ID:???0819809
2009/03/31(火) 21:29:42ID:???文法的にはあっているということでまるまる書き直してみたら動きました。
有難うございます。
0820nobodyさん
2009/04/01(水) 03:46:07ID:i7k4rzu/・nilチェック
アプリケーション層の話だな。フォームの未入力項目がnilでくるなら、
カスタムバリデーションを書くときになどに、常にそれを想定して
メソッドを呼び出す前にnilチェックをする必要がある。
空文字でくるなら、その必要がない(不正なデータなので例外で一括キャッチできる)
・count
NULLを表すデフォルト値を省くのがそれほど複雑な条件とは思えないし、
明快さを望むなら有効/無効を表すフラグを持てばいいかと
・NULLの扱い
意図としては、アプリ層のロジックがDBの実装に依存するのはいやよネーという話だったんだが
Oracleが手元にないので確かめられないけど、SQL直たたきでないfindをつかって
column_name = '' でNULLを引っ掛けられませんか?
だとすると空文字/NULLでレコードの有効無効を判断する処理はDB依存になるな・・・
面倒なorz
しかし、オブジェクト指向的(というかRuby的?)には空文字とnullが別物というのは自然なように思えるんだが、
DBな人にはそうでもないんだろうか
0821nobodyさん
2009/04/01(水) 09:51:57ID:???0822nobodyさん
2009/04/01(水) 12:02:24ID:???オラクルは古いDBというのもあって負の遺産も引きずってるからな。
長さゼロ文字列とNULLは今後区別するかもしれません、
と何年も言ってるが影響がでかすぎて一向に変わらん。
たぶんずっと変わらないと思う。その点Railsはやりたい放題だよなw
0823nobodyさん
2009/04/01(水) 14:41:12ID:???ttp://d.hatena.ne.jp/tsuyoshikawa/20090325/1237977001
を見つけたのですが、こういうやり方が正解なのでしょうか?
0824nobodyさん
2009/04/01(水) 15:06:34ID:???0825nobodyさん
2009/04/01(水) 16:29:41ID:???0826814
2009/04/01(水) 19:55:35ID:TXtYORpdすいませんもう一個質問させてください。
Sampleモデルクラスのオブジェクトが入っている配列 arr からSampleクラスがbelongs_toしているTestモデルクラスのオブジェクトを配列の要素ごとに全て得たい場合は、
arr2 = []
arr.each do |v|
arr2 << v.test
end
みたいにループ文を回して取得するしかないのでしょうか??
arr2 = arr.ほにゃらら
みたいな形式で取得できたら便利だなーと思うのですが・・
0827nobodyさん
2009/04/01(水) 21:39:09ID:???ちょっと暗号じみてるけど、これは
arr2 = arr.collect {|v| v.test }
と同じ。collectはmapと書いてもいい。
0828nobodyさん
2009/04/01(水) 22:11:54ID:???arr2 = arr.collect{|v| v.test}.flatten
じゃないかな。違ったらごめん。
Smalltalkを習ったので、俺もcollect派。
BagやSetが時々欲しくなる。
0829nobodyさん
2009/04/01(水) 23:05:43ID:???モデルにカスタムのバリデーションを追加する手段はちゃんと提供されてる。
コントローラーは振り分けを行ったり、全体の制御を行うところ。
こんなごちゃごちゃのめちゃくちゃにするなら、
最初からRailsなんて使わなきゃいいのにと思う。
0831825
2009/04/02(木) 09:29:35ID:???ありがとうございます。了解しましたー。
モデルにカスタムのバリデーションを追加する情報 ( ドキュメント ) なりを教えてもらえませんか。。。
0832nobodyさん
2009/04/02(木) 10:25:19ID:???つvalidate
つvalidate_on_create
つvalidate_on_update
0834nobodyさん
2009/04/02(木) 14:47:58ID:???ttp://journal.mycom.co.jp/news/2008/02/08/019/index.html
そういった Rails で作られたソースの公開されているアプリやプラグインをご存じありませんか?
0835834
2009/04/02(木) 18:14:31ID:???0836nobodyさん
2009/04/03(金) 19:47:58ID:???あるフィールド(複数の場合も)からの計算結果を表示したいとき、
メソッドはモデルに置くのとビューのヘルパーに置くのと、どちらが適当なのでしょうか。
例えば、purchase_dateという日付のフィールドがあるとき、
どこまで正確なのかを表すのにpur_date_qualというフィールドにY, M, Dの
どれかを入れておいて、Yなら年だけ、Mなら月までを表示させたいとき、
このメソッドはモデルとヘルパーとどちらに属すのでしょうか。
モデルに置いた場合は他のデータベースでもよくある計算フィールドのイメージで、
オブジェクト指向的にはこちらが正解のような気がするのですが。
0837nobodyさん
2009/04/03(金) 21:12:20ID:0BZVS1Kz面倒くさそうならヘルパ使うかなー
0838nobodyさん
2009/04/03(金) 23:11:23ID:gpEgAnUB糞重くて仕方ないです。どうしたらよくなるのか運営に言いたいんですが
0839nobodyさん
2009/04/03(金) 23:13:07ID:???0841nobodyさん
2009/04/04(土) 02:22:46ID:???しかもどこもそこそこ盛況なようで結構なことですな
うちの会社の自社サービスなんて2年たって会員数2桁ですよwww
マネージャは冷や飯くらったらしい
0842nobodyさん
2009/04/04(土) 03:25:38ID:???0844nobodyさん
2009/04/04(土) 15:01:46ID:???>>828
ありがとうございます。どちらでもできました。
また、疑問ができてしまたのですが、
arr2 = arr.collect(&:test)
の:testの前の&はなんでしょうか??
http://www.ruby-lang.org/ja/man/html/_A5AFA5E9A5B9A1BFA5E1A5BDA5C3A5C9A4CEC4EAB5C1.html#a.a5.e1.a5.bd.a5.c3.a5.c9.c4.ea.b5.c1
ここらへん見るとproc辺りが関係してるのかと思うのですが、そもそもブロックが定義されてない??
railsっていうよりrubyの質問っぽいですが、教えていただけると幸いです><
0846nobodyさん
2009/04/04(土) 16:08:10ID:???0847nobodyさん
2009/04/04(土) 17:06:49ID:???そのときどういうブロックに変換されるかを、引数(今回はSymbolである:test)の#to_proc
メソッドで定義できる。
http://www.ruby-lang.org/ja/man/html/_A5E1A5BDA5C3A5C9B8C6A4D3BDD0A4B7.html#a.a5.d6.a5.ed.a5.c3.a5.af.c9.d5.a4.ad.a5.e1.a5.bd.a5.c3.a5.c9.b8.c6.a4.d3.bd.d0.a4.b7
0850nobodyさん
2009/04/05(日) 00:59:52ID:???あと,ショートカットキーで入力フォームを行き来したりするのはHTMLだと難しいと思うんですが,
そういうインターフェース面はフォームのボタンをマウスでクリックしてもらうしかないのでしょうか?
0851nobodyさん
2009/04/05(日) 02:09:32ID:???0852nobodyさん
2009/04/05(日) 03:14:38ID:???つーかRoR関係ないだろ。
http://pc11.2ch.net/test/read.cgi/php/1025346267/
Webアプリで帳票印刷
0853nobodyさん
2009/04/05(日) 20:17:58ID:???autotest + rspec + ($KCODE = "u") + cygwin(UTF-8化) + ck.exe(or Poderosa)
rspecのログがUTF-8で流れてくるので、UTF-8のcygwinターミナルを使っているのですが、
autotestを実行時に Ctrl+C でautotest自体が終了してしまいます。
Ctrl+Cではテストの再実行を期待しています。
ただ、コマンドプロンプトでautotest実行した場合は、Ctrl+Cで期待通りテストが再実行されます。
(通常、終了は Ctrl+C→Ctrl+Cですよね。コマンドプロンプトでは期待通り)
autotestでイベント時にサウンドを鳴らすようにしているのですが、cygwinターミナルからだと、
autotest終了音がやはりなりません。
これはどういった対応策がとれるものでしょうか?
Windowsやその他の環境の皆様はどうしておられますか?
もし、他に該当スレがあれば誘導してください。
0854nobodyさん
2009/04/05(日) 20:35:25ID:a/bIl6WE<a href="http://sample.com/aaa/bbb/">http://sample.com/aaa/bbb/</a>
うまい書き方はないでしょうか??
第一引数で指定する部分が :controller とか :action で指定するものと重複するので、なんとか省略できないのかと思っているのですが・・
0855nobodyさん
2009/04/05(日) 22:48:27ID:???WindowsのコマンドプロンプトでUTF-8を表示する方法がある。
>>854
そういうヘルパを書けば良いだけでは。
link_toの第一引数が無くて、中ではurl_forを使うやつ。
0856nobodyさん
2009/04/05(日) 23:00:04ID:???link_to は第一引数に nil 渡すとURL文字列にリンク張ってくれるよ。
<%= link_to nil, :controller => :foo, :action => :index, :only_path => false %>
0857nobodyさん
2009/04/05(日) 23:08:02ID:J2cktlykどうも form の Submit 先の URL が 「/shops/1/items」 みたいに「new」とかがない状態で生成されるからみたいなんだが、これってどうすればよい?
単純に redirect_to してしまうと Validation のエラーメッセージが消えてしまうし・・・。
0858nobodyさん
2009/04/05(日) 23:50:04ID:???そういえばみんなどうやってるのか気になるな。
自分は普段こんな感じ
エラー時はリダイレクトじゃなくてrender :action => アクション名で表示する
class SampleController < ActionController
def new
@shop = Shop.new
end
def create
@shop = Shop.new(params[:shop])
unless @shop.valid?
render :action => :new
return
end
@shop.save
# 次の画面へリダイレクト
end
end
0859nobodyさん
2009/04/06(月) 00:08:52ID:???確認画面入れるといろいろと面倒なんだよね。
IEだと入力画面でAjax使って入れた値が消えてくれたりとか。
自分なら、
render :action => :new and return unless @shop.valid?
と1行で書くかな。
0860nobodyさん
2009/04/06(月) 00:32:13ID:???あ、社内で使う管理画面は確認画面ない場合もあるけど、
実務ではほとんど確認画面あるよ。
その場合は、ボタンに名前(submitのname)付けて対応してる。
new -> confirm -> createという3画面の場合はこうかな。
# 確認画面
def confirm
@shop = Shop.new(params[:shop])
# 入力画面に戻る
if params[:btn_back]
render :action => :new
return
end
# 登録
if params[:btn_next]
# エラー時入力画面へ
render :action => :new and return unless @shop.valid?
return
# 保存して完了画面にリダイレクト
@shop.save
redirect_to :action => :create
end
end
0861nobodyさん
2009/04/06(月) 04:20:31ID:???RESTを厳密に適用していくと、URIは(人間系の)画面表示から独立したものとして扱われていくような気がする
アンカーのON/OFFは人間系の処理なので、URIからどうこうするのは無理が出てくるのではないかと思う
つーか、routeの別名からアクセスしただけでも動かなくならね?的な柔軟性のなさが使えなさすぎるw
リダイレクト時のvalidation結果保持は俺も欲しいのよね・・・
エラーメッセージだけとかデータ量が小規模ならやりようがないこともないけど
リダイレクト時にエラーメッセージをあらかじめレンダリングしておいてflashで渡したりとか、シリアライズしたバリデーション結果をflashで渡したりとか
データ量が多い場合は使えないから、システム全体の統一感が崩れるのでやらない
POSTリダイレクトとかできんかなとも思った
0863nobodyさん
2009/04/06(月) 14:49:19ID:eCZIYZ8I0864nobodyさん
2009/04/06(月) 19:01:32ID:???2.1.x や 2.3.x をいろいろとダウンロードしても
・起動時、セキュリティの警告が出る
・気にせず開いても「Web ページへのナビゲーションは取り消されました」と出る
・ただし目次、キーワード、検索は動く
という感じ。
rubymanjp.chm は問題なく動くのだけど。
0865nobodyさん
2009/04/06(月) 21:25:24ID:???rails:2.1.0
でやってるんだけどto_dateって使えないの?
ググったら1.8.6だとprivateメソッドで定義されて〜
とか書いてたけどto_datetimeやto_timeとかもundefind methodになる…
0866nobodyさん
2009/04/06(月) 22:08:52ID:???irbで試したけど、2.3.2では使えてる(Rubyは1.8.7-p72)。
require 'rubygems'
require 'activesupport'
"20090406".to_date
0867865
2009/04/06(月) 23:47:30ID:???制作済みの社内アプリ全部2.1.0なんだよなぁ…
http://wiki.fdiary.net/rails/?AdjusterExtension-0001
に書いてる
unless @schedules.map {|s| s.schedule_date.to_date }.include?(date)
cell_text << link_to("New", :controller => 'schedule', :action => 'new', :id => @event, :date => date)
end
の部分で詰まってる。
to_dateじゃなくても出来そうな気がするんだけど。
もうちょい頑張って駄目だったら諦めて2.3.2にするよ。
0868nobodyさん
2009/04/07(火) 01:31:04ID:???0869nobodyさん
2009/04/07(火) 06:41:24ID:???0870nobodyさん
2009/04/07(火) 06:55:15ID:???>>868-869のいうようにしたらいいと思うよ。
ActiveSupportのソース見ろって言われても分からないかもしれないから説明すると、
・gem install railsで2.3.2を入れる
・gem serverコマンドを実行してからhttp://localhost:8808にアクセス
・activesupportのrdocを見る
・Methodsのところにメソッド一覧があるからto_dateで検索
ActiveSupport::CoreExtensions::Time::Conversions
ActiveSupport::CoreExtensions::String::Conversions
あたりのto_dateのソースを見る(メソッド名のリンクをクリックするとソースが見れる)
ソースを自分のプロジェクトに使う時は、environment.rbの一番下でとりあえず定義すればいいと思う。
(他にもプラグインにするとか方法あるけど説明が面倒)
↓これはActiveSupport::CoreExtensions::Time::Conversionsのto_dateの例
irbでもコピペすれば動くよ
require 'date'
class Time
def to_date
::Date.new(year, month, day)
end
end
Time.now.to_date
0872nobodyさん
2009/04/07(火) 08:47:39ID:BAwL1OSs0873nobodyさん
2009/04/07(火) 11:19:37ID:???>>864
よくある話で、IEでchmをダウンロードするとそうなるかも。
chm右クリックでのプロパティでセキュリティのチェックをはずすかつけるかするとみられるはずですよ。
■ このスレッドは過去ログ倉庫に格納されています