株式会社ソフトエイジェンシー

ruby on rails の変更点



**juggernautプラグインを使用する際の注意点 [#i9d09a80]
config/juggernaut_hosts.ymlの中
 :host: 127.0.0.1
はそのままで、動かない可能性があります。
その場合に、実際のIPアドレスを入力することで、稼働させるかもしれないです。
はそのままで、サーバが動かない可能性もあります。
その場合に、実際のIPアドレスを入力することで、問題を解決できます。

**RubyEncoderでRailsプロジェクトを暗号化する際の注意点 [#h4951a2f]
Railsプロジェクトにある
 config/environments/*.rb
 app/views/*/*.rjs
を暗号化したら、Railsがうまく動作できなくなります。
Railsが動的に上記のファイルをロードし、eval()でローカル変数の値を取得するのは原因になっているらしいです。

**Calendar Date Select Pluginの日本語化 [#la701339]
Calendar Date Select Plugin は jQuery Datepicker より軽くて、railsアプリに最適だと思います。
多言語化にも対応しているけど、日本語と中国語の場合に、カレンダーに「年」がないから、修正してメモします。

インストール
-sudo gem install calendar_date_select
-environment.rbに
  config.gem "calendar_date_select"
を追加する

日本語化
-「年」を定義する
calendar_date_select.jsの中
--Date.months定義の下に
  #デフォルトでそのまま変わらない
  Date.years = function(year) {
    return year;
  }
を追加する

--populate定義を
  populate: function(values) {
    this.element.purgeChildren();
    var that = this;
    $A(values).each(function(pair) {
      if (typeof(pair)!="object") {
        pair = [Date.years(pair), pair]
      };
      that.element.build("option", {
        value: pair[1],
        innerHTML: pair[0]
      })
    });
  },
に変える

--initHeaderDiv定義を
  initHeaderDiv: function() {
    var header_div = this.header_div;
    this.close_button = header_div.build("a", {
      innerHTML: "x",
      href:"#",
      onclick:function () {
        this.close();
        return false;
      }.bindAsEventListener(this),
      className: "close"
    });
    this.next_month_button = header_div.build("a", {
      innerHTML: ">",
      href:"#",
      onclick:function () {
        this.navMonth(this.date.getMonth() + 1 );
        return false;
      }.bindAsEventListener(this),
      className: "next"
    });
    this.prev_month_button = header_div.build("a", {
      innerHTML: "<",
      href:"#",
      onclick:function () {
        this.navMonth(this.date.getMonth() - 1 );
        return false;
      }.bindAsEventListener(this),
      className: "prev"
    });
    
    if (this.options.get("month_year")=="dropdowns") {
      this.month_select = new SelectBox(header_div, $R(0,11).map(function(m){
        return [Date.months[m], m]
      }), {
        className: "month",
        onchange: function () {
          this.navMonth(this.month_select.getValue())
        }.bindAsEventListener(this)
      });
      this.year_select = new SelectBox(header_div, $R(this.options.get("year_range")[0], this.options.get("year_range")[1]).map(function(m){
        return [Date.years(m), m]
      }), {
        className: "year",
        onchange: function () {
          this.navYear(this.year_select.getValue())
        }.bindAsEventListener(this)
      });
      this.populateYearRange();
    } else {
      this.month_year_label = header_div.build("span")
    }
  },
に変える

-localeディレクトリの下にja.jsを追加する
  Date.weekdays = $w('日 月 火 水 木 金 土');
  Date.months = $w('1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月');
  Date.years = function(year) {
    return year + "年"
  };
  _translations = {
    "Now": "現在",
    "Today": "今日",
    "Clear": "キャンセル"
  };

プラグインを使う
-headerに
  <%= calendar_date_select_includes :locale => "ja"%>
-viewに
  <%= calendar_date_select_tag :date %>

具体的な使い方は
http://code.google.com/p/calendardateselect/

**proxy経由でgemを使う [#la701339]
gem install xxx --http-proxy http://proxy.example.com:PORT

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS