タグ

ブックマーク / zariganitosh.hatenablog.jp (8)

  • 文字エンコードとロケールを体感する - ザリガニが見ていた...。

    前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 今時、OSX環境ならUTF-8で使っていれば何の問題もないだろう、と信じていると痛い目に遭う。 文字化けする現象 AppleScriptエディタで、ファイルフォーマット=テキストで保存してみる。 tell application "Finder" display dialog "こんばんは" end tell ____ここから、ターミナルの環境設定 >> 設定 >> 詳細 >> 言語環境:文字エンコーディング=日語(UTF-8)____ 現在の環境は、ターミナルの環境設定 >> 設定 >> 詳細で、文字エンコーディング=日語(UTF-8)になっている。 新規タブを開いて、catコマンドで確認すると... $ cat $HOME/Library/Scripts/encoding_test.applescri

    文字エンコードとロケールを体感する - ザリガニが見ていた...。
  • 改良中...心に優しいエラー表示を! - ザリガニが見ていた...。

    現状で、もしすべての行で検証エラーが発生したとすると、こんな感じになる...。 ずぶん派手に教えてくれる。何処がどんなエラーなのか明快と言えば明快なのだが...この表示、何度も見てると、なんだか気持ちを逆撫でされているようで、いつのまにか「言われなくても分かっとるわぃ!」とムキになってくるのだ。作っている人がそうなのだから、ユーザーがこのエラーを見たら、おそらく、やる気が失せるだろう...。もう少し、心に優しいエラー表示が必要だ。 配色 赤過ぎると挑発的な感じになってしまう。もう少しトーンを抑えた色にしてみる。 エラー時の背景色をピンクに変更した。 paddingを0にした。 控え目になるので、input、textarea、selectの背景色もピンクにしてみた。 /* スタイルシート: public/stylesheets/scaffold.css */ ...(中略)... marg

    改良中...心に優しいエラー表示を! - ザリガニが見ていた...。
  • nil?またはempty?を判定するblank? - ザリガニが見ていた...。

    プログラムの中で、中身が無ければデフォルト値を使う、というのはよくある処理かと。例えばCSVサーバーでは、以下のように使っていた。 sort_field = default_user['sort_field'] if sort_field.empty? でも、これだと変数sort_fieldがnilの場合*1は、エラーが発生してしまう...。それを避けるため、以下のようにしていた。 sort_field = default_user['sort_field'] if sort_field.nil? || sort_field.empty? まあ、簡潔といえば簡潔なんだが、params[:sort_field]だったりすると、1行が長くなり過ぎることが気になり始める。かといって、2行に分けるのも悔しい...。 params[:sort_field] = default_user['sort_

    nil?またはempty?を判定するblank? - ザリガニが見ていた...。
  • has_manyな関連で、1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。

    前回までのhas_oneな関連に限定した、複数のモデルを同時に保存するコード まず、前回のコードは、あまりにも手抜きだったので、もう少しscaffoldに習った形式に書き直してみた。この後has_manyな関連に対応させることを目指して、以下のようにしてみた。 既にRails2.0もリリースされ、Rails1.1.6時代の書き方では動作しない状況(end_form_tagなど)になりつつありますが、自分の頭が追いついていないので、ここではRails1.1.6仕様なコードを書いて、Rails1.2.6環境で動作確認しています。 まずはモデルを生成して... script/generate model slip script/generate model journal マイグレーションの設定... # db/migrate/001_create_slips.rb class CreateSl

    has_manyな関連で、1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。
  • 1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。

    今更ながら基的なことかもしれないが(自分では今も悩み続けている)、業務システムで入力する部分を作っていると、しばしば2つ以上のモデルを同時に保存したい状況に陥る。例えば、伝票を入力する場合であれば、伝票は複数の明細行を持っているので、共通情報を保持する伝票(Slip)クラスと、明細行情報を保持する明細行(Journal)クラスに分けている。そのようなシステムで、Submitボタンを押した後の処理は、模範的にはどのようにすべきなのだろうか? 保存する時には、以下の仕様を満たしておきたい。 class Slip {has_many :journals}; class Journal {belongs_to :slip}; な関連である。 検証エラーが発生したら... 保存は一切しない。 すべてのモデルの検証エラー情報を表示する。 Journalモデルの件数は可変である。 悩みのポイントは、S

    1アクションで複数のモデルを同時に保存するには? - ザリガニが見ていた...。
  • Rails2.1でform_forブロックの中のrender :partialの悩み解決! - ザリガニが見ていた...。

    以前、form_forブロック内の共通する部分を、パーシャルファイル(render :partial)として抜き出すときの書き方で悩んでいたい時期があった。実務的にはどうとでも書けてしまうので、そんなに深く悩む必要も無いのだが、徹底的なDRYを目指すRailsらしい書き方はどんな感じになるか気になっていたのだ*1。最近までずっと...。 で、Ruby on Rails 2.1 の変更点 PDF語訳を読んでいたら、ようやくその答えが見つかったので嬉しくなってしまった。 Rails 2.1のscaffold ソフトウェアの名前とダウンロード先を保存する適当なサンプルを作ってみる。 $ cd $ rails partial_test $ cd partial_test $ script/generate scaffold software name:string url:string $

    Rails2.1でform_forブロックの中のrender :partialの悩み解決! - ザリガニが見ていた...。
  • 2.0のmap.resourcesのオプション設定いろいろ - ザリガニが見ていた...。

    今までおろそかにしていた「ルート設定」ではあるが、Rails2.0からは避けて通ることができない*1と今更ながら思い直し、いろいろ試してみた。以下はその実験結果。 基 追加オプションなしの基ルート設定map.resources :slipsによって、以下のルート規則が生成される。 ルート規則は上にあるものが優先される。 .:formatが付属する偶数No.の行は、http://XXXX.XXX/slips.xml等の拡張子付きのリクエストを、respond_toブロックで適切に処理するために存在する。 # ルート設定: config/routes.rb ActionController::Routing::Routes.draw do |map| map.resources :slips end No. 名前付きルート名 メソッド URLパス書式 処理されるコントローラー、アクション

    2.0のmap.resourcesのオプション設定いろいろ - ザリガニが見ていた...。
  • AutoPagerizeなwill_paginateにしておく - ザリガニが見ていた...。

    classic_paginationのREAD_MEには、以下のように書かれている。 This code was extracted from Rails trunk after the release 1.2.3. WARNING: this code is dead. It is unmaintained, untested and full of cruft. There is a much better pagination plugin called will_paginate. Install it like this and glance through the README: script/plugin install svn://errtheblog.com/svn/plugins/will_paginate It doesn‘t have the same API, b

    AutoPagerizeなwill_paginateにしておく - ザリガニが見ていた...。
  • 1