Rails

nil.id==4の件

environments/production.rb config.whiny_nils = true にすればOK。元々はActiveSupportのOptionalだそうで、延々引き継がれて いるもより。 参考 http://moriq.tdiary.net/20050713.html#p03 http://d.hatena.ne.jp/koseki2/20080129/railswodb http://ari…

急遽欠席

それとは関係なしにRails勉強会出席できなかった。 すいません、次回こそは・・・!

No method error 'create_or_update'

Rails APIドキュメントとか見てるとちゃんと残ってるはずなんだけども なんかないと言われてしまったのでif〜elseで対処した。 にしてもなんでだろう?

とりあえず.comで

rubyonrails.orgが妙ちくりんなショッピングサイトというかリンク切れの ホスティングサービスの画面になっていてあらやだという話。 ちょっと調べてみたら.comは動いている。 .netとか試してみた人もいるようで。まあ.comでおながいしますということか。 19…

日付のPostをControllerでくみ上げている場合のテスト

昨日の続き。 要するにfixtureじゃなくてその場で付け足してしまえばよいようだった。 post_data = posts(post_2) post_data["date_from(1i)"] = 1990 post_data["date_from(2i)"] = 1 post_data["date_from(3i)"] = 11 post :next_screen, :post_data => po…

RSpecで日付をPostする際のfixtureどう書こう?

RSpecに限った話じゃないような気がするんだけどとりあえず。 既存のコントローラーについて今から後追いでテスト書いていて、 下記みたいなケースを書いていたとする。 post_data = posts(post_2) post :next_screen, :post_data => post_data response.sho…

productionのconfig.cache.classes問題

ぶち当たってる人がいるのかいないのか、調べ方が単に悪いだけかわからないのだけど。 端的に言えばProduction環境においてキャッシュをきかせるとなぜかうまく 動かない場合があるという話。 一旦falseにしてmigrateさせ、その後またtrueにしてmongrel起動…

IE6でだけFlashが表示されない!

端的に言うとIE6のバグということのようだ。 が、いまだに相当数のシェアがあるブラウザなのだし、対処が出来なきゃ しょうがない。 [事象]IE6で特定のFlashを開こうとすると表示されない。 特定の、というのは原因に引っかかるけれどXMLLoadingが必要なFlas…

O/Rの守破離

前の[0].attributesとかもそうだったけど、has_many関連であればそれを基点に さらに関連は引っ張れるわけで。子供すべてに紐づく孫のチェックをするなら こんな風に書けたわけだ。 @parent.children.each do|item| item.grandchildren.check_method? end 徹…

.attributesの件

has_many関連がついている時に、子供をとってくる場合、 内部的には結果セットは要素1個でもオブジェクト配列として 取得する。 従って、その先の関連を見ることが出来ない。単に配列として のアクセスに過ぎないため。 だから、要素が1個確定である場合は[0…

多段アソシエーション時に2段目以降の値が取れない。

僕は勉強不足なのと現状バージョンを変えられないという案件の都合で 当面Railsのバージョンは1.2.6くらいで書いています。2.0系ではないので その点ご了承ください。 これもin progressモード。こんな暫定対処じゃいけてなさすぎる。 まあ結論から言うと[0]…

バージョン違いでdefaultの解釈が異なる

Railsが関係するかどうかも若干不明な状態なのだけど、この問題のせいで 先週からしっちゃかめっちゃかになっていた。とりあえずでもリマインドの ためにメモっておく。 [現象] 環境によって値の取得が行えたり行えなかったりする 行えない場合は、Railsのレ…

チェックボックスの状態保持

Version1.2.6です。まだ2.0系触ってないです。いわずもがなRuby1.9も。 m:n関連で、m側のmodelがnのmodelのどれに関連付いているか、なんてのを チェックボックスで選択できたとする。 デフォルトの名前にのっとればnew.rhtmlのときは構わないのだけど、 edi…

動的なプルダウンメニューを作る(調査編)

確かこうすりゃできるよね的なものはあったのだが、RailsのAjaxヘルパーやら タグヘルパーと組み合わせるとどうなるのか割とさっぱり状態に。 絶対に単発で終わる使い方じゃなくて、利用するケースはあるような気がするので それなりにまとめられるまでどこ…

複数モデルを個別にPaginateさせたい

複数モデルを1画面で一気に取り扱う一覧表示画面があって、登録されている 数はもちろんばらばらなわけだ。 こういうときに個別にページネーションさせるとなるとAjaxを使う必要がある。 基本的なAjaxでのPaginationはRoR翻訳Wikiのページなどを見ればすぐに…

NULLを許す関連テーブルの名前をきれいに表示する

parentに紐付いたchildの名前を表示させることはよくある処理。 ただし、childが必須ではなく、かつデフォルト値がNULLの場合、 parent.child.nameでnil参照によるエラーが発生する。 こういった場合、ifをいちいちつけるのも面倒だしあまりきれいじゃない。…

動的条件のWhere句を少しきれいに作るwith Ez Where Two

そもそもこのプラグインどのくらい使われているのかわからないけれど、 フォームから動的条件で検索をかけるというケースは普通にあるはずで。 で、ばか正直に書いていると作るあたりはこんな風になっている。 cond = Condition.new :articles do if params[…

エラーチェックの評価順序がよくわからない件

def create @field = Field.new(params[:field]) unless @field.valid? flash[:notice] = 'バリデーションエラーです。' redirect_to :action => 'new' end if @field.save flash[:notice] = '項目の新規作成をしました。' else render :action => 'new' end…

Ez_Where_Twoを使ったPaginationの条件保持

ただの一覧表示におけるPaginationはPaginateでもいける。 固定のSQLの場合は何かしらの方法でキーと値を入れればいい。 では動的条件のときはどうか。 固定のSQLのときと基本は変わらないのだと思うけど、今やっているのは Ez_Where_TwoプラグインでARに引…

年月日の範囲検索で年だけ入れられた値を優しく拾ってあげる

絶対美しくないのでもっときれいに作れるはずだと思うんだけどちょっとわからず。 晒すから突っ込んでくださいな気分。 yyyy年mm月dd日〜yyyy年mm月dd日みたいな範囲を検索するみたいな フォームを作っている。 ここで年だけいれられた場合に例えば2007年〜2…

アップロードしたCSVを元データにテーブルを作る。

こんな要件があるのかわからないけどうちのシステムにはあったので。 アップロードしたCSVを前に使ったCSVパースライブラリを通して配列に突っ込み、 それをとりあえずテーブル化したrhtmlに渡してみた。 アップロードモデルの作り方次第で少しやり方が変わ…

datetime_selectのパラメータ

ほんまかいなと思うのだが今のとことりあえず値は取れたので一応メモ。 一応だらけでちゃんとした理解が出来てないような気がしてならないが… ARインスタンスであろうとなかろうとselectやら、ARインスタンスならdatetime_selectなどで日付枠を作成すること…

collection_selectのデフォルト値を空白にする

本来はDBに設定されたデフォルト値を事前に設定してくれるので助かるの だが、検索フォームなどで“未選択のときは全件検索をする”といった動作 に対応出来ない。出来れば“選択してください”のようなラベルを貼り付け たいが、とりあえず空白にすることで初期…