ActiveSupport による Date, Time クラスの拡張まとめ。バージョンは 2.0.2 準拠。ソースを読んで script/console で動作確認を行っています。 相互置換 Date でも Time でも、それぞれ to_time および to_date で相互に置換できます。 必要であれば to_datetime で DateTime 型への変換も可能です。 to_s の拡張 to_s に引数をつける事で、所定の形式で出力してくれます。 Time.now.to_s(:db) => "2008-2-23 17:49:29" 引数と出力の対応は以下のとおり。 Time 引数出力 :db%Y-%m-%d %H:%M:%S :time%H:%M :short%d %b %H:%M :long%B %d, %Y %H:%M :long_ordinallambda { |time
railsではフォームから入力したパラメータが不適だと(ARのvalidationで引っかかると)その入力フォームが赤く強調されるという素敵機能がありますが、それを実現しているのがクラス変数@@field_error_proc。cattrされていますので、下記で設定できます。 ActionView::Base.field_error_proc = Proc.new{|tag,instance| html_string }私の場合、デフォルトのdivタグのマークアップでは、ブラウザ上での見た目が崩れる(改行されてしまう)という悩みがあり、以下をconfig/environment.rbに書いて変更しています。 ActionView::Base.field_error_proc = lambda{|tag, instance| "<span class=\"fieldWithErrors\">
rails のこの不具合のせいで、クッキーに対応していない携帯でセッションが切れる。(jpmobile) 四苦八苦した後、検索したらあっさり同じことで悩んでいるいる人が解決している記事を見つけました…。 しかも、2日前の記事だし…。 ビューで引数なしでnamed routeを使ったときdefault_url_optionsが無視されるのに対処 - ζ’ワ’)ζ<うっうー遅レス。http://d.hatena.ne.jp/babie/20080728/1217236493 丁寧に解説してくれているので勉強になります。 不具合に対応するコードはこんな感じにしとけば、ActionView に修正入っても大丈夫かな。 lib/jpmobile_ext.rb module ActionView class Base delegate :default_url_options, :to => :con
■ [Ruby] Gemをユーザディレクトリにインストールする もしかしたら、あまり知られてないのかな。レンタルサーバなんかでルート権限がない場合、$HOMEの直下辺りにGemをインストールして、GEM_HOMEを設定してあげれば良い。詳しくは、こちら。 ■ [Rails] ApplicationControllerでContent-Typeをbefore_filterでセットするのはいい加減やめませんか運動 以下みたいなコード、なんだかまだ見かけるし、Railsの書籍を見てもほとんどと言っていいほど出てくるんだけど、RJSと一緒に(一部の環境では)使えないという問題があります。Rails使うんだったらRJSも使いたいよね? (誤) class ApplicationController < ActionController::Base before_filter :set_charset
Railsでauの携帯電話から3g2の動画がダウンロードできるようにするコードを書いたので公開してみる。 auの携帯電話から3g2をダウンロードしようとすると分割ダウンロードの要求が送られて、au用マルチメディア・コンテンツダウンロードタグにしても「ダウンロードデータが正しくありません」となってしまうという現象が発生していました。 これはその現象にRailsで対処するためのコードです。あくまでも参考のためのサンプルで動作の保障はできません。def send_3g2_file path = RAILS_ROOT + '/public/' + params[:filename] filesize = File::size(path) range = request.env["HTTP_RANGE"] if range and /^bytes=(\d+)\-(\d+)$/ =~ range of
VSZ Virtual Memory Size(仮想メモリサイズ)の略称。プロセスが確保しているメモリの量を意味する。 RSS Resident Set Size(常駐メモリサイズ)の略称。VSZのうち、実際に使用している物理メモリの量を意味する。 ロバスト 頑健さのこと。ロバストテストは、故障に関するテストの事だろうか。 メモリリークに見えるが おそらくはメモリリークではなく、スタックサイズの設定が影響しているもの。psやtopコマンドが知らせるapacheのVSZが、異常に高い数値に跳ね上がる事がある。 ulimit -aを実行してスタックサイズを確認してみる ulimit -s <size>を実行してスタックサイズを変更してみる Passengerに関しては2MBもあれば十分で、8MB以上は不要なはず どの程度のパフォーマンスか おおむね、Mongrel以上、Thin同等。 ただし、
知らない人もいるかもしれませんが、 Rails で使われている ORマッパーである ActiveRecord は、Rails からでなくても単品で動きます。 ActiveRecord はとても簡単で便利なので、 Rails 使うまでもないちょっとした日常のスクリプトでもどんどん使いましょう。 たとえば CREATE TABLE foods ( id INT NOT NULL PRIMARY KEY AUTOINCREMENT, name VARCHAR(100) NOT NULL UNIQUE, price INT NOT NULL ); と書いたファイル tables.sqlite を用意して、 $ sqlite3 test.db < tables.sqliteという感じで DB を作ります。 そしたら、こう。 require 'active_record' base_dir = Fil
こんにちは。天方です。 最近、Apache上でRailsを動かすPassenger(mod_rails)を導入してみました。 インストールはいたって簡単で、 http://www.modrails.com/install.html でも説明されているとおりコマンドラインで gem install passenger passenger-install-apache2-module とインストールして、あとはインストール時にでる指示に従ってhttpd.confに LoadModule passenger_module \ /usr/lib/ruby/gems/1.8/gems/ \ passenger-2.2.2/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.
よく忘れるのでメモです。ポイントは3と4で、セッション管理をDBでやる必要があります。クッキーでやっている限り、logged_in?はfalseになります。 jpmobile をインストール(gitから) RESTful_authenticationをインストール(gitから) セッション管理をクッキーからDB格納に切り替える % rake db:sessions:create % rake db:migrate config/environment.rb に以下を記述 config.action_controller.session_store = :active_record_store controller/application.rb に以下を記述 include AuthenticatedSystem mobile_filter trans_sid before_
四苦八苦したので、この記事にまとめを書いていこうかと。案外まとめページがない気がしたので。 ●Application.rbへの修正 以下の2行を追記する。 --- class ApplicationController < ActionController::Base ... transit_sid :mobile mobile_filter :hankaku=>true ... end --- transit_sid :mobileは、session_idをURLに埋め込んだりURLから読み込んだりするのに良き見計らってくれる機能 mobile_filter :hankaku=>trueは、カタカナを勝手に半角にしてくれる機能 ●RSpec対応 jpmobileはRSpecでテストを実行しようとする。RailsをRSpecを使って構築しているのならば問題ないけど、標準のテストフレームワー
これでいいのか。 パラメーターを追加するとき。 url_for(params.merge(:foo => 'bar')) パラメーターを削除する時は、nilにする。 url_for(params.merge(:foo => nil)) ちなみに、viewでparamsを参照するのは反則な気がするのは私だけ?
特に強い動機があったわけじゃないんですが、Extended-Bort をベースにした Railsで開発を始めてしまったので、必然的に prototype.js じゃなくて jQuery.jsに移行することになりました。 で、prototype.js環境のものをポツポツと移行していったんですが、link_to_remoteで詰まってしまったので、その対処法をメモしておきます。 jRails jQueryで Ajax関係(link_to_remoteなど)を扱うためには、http://ennerchi.com/projects/jrailsが必要です。 Extended-Bort には http://ennerchi.com/projects/jrails が含まれていないので、まずこれを RAILS_ROOTにインストールします。 ruby script/plugin install htt
Posted on 2008年9月24日 Posted by ちゅう コメントする Posted in Development Tags: Rails Railsはデフォルトで UTF-8 だけれども、たまに何ページか Shift_JIS で出したいみたいなことがあって、そういうのは after_action で処理すればよい。 Controller に以下のように書いておけばよい。上位のとこで書いといて、必要なとこで呼ぶ感じに。 after_filter :change_charset_to_sjis, :only => [:sjis_page] def change_charset_to_sjis response.body = NKF::nkf('-Ws', response.body) headers['Content-Type'] = 'text/html; charset=CP
メニュー表示のために、同じ内容のレイアウトを3ファイルも作っていた...。(app/views/layouts/user.rhtml、role.rhtml、permission.rhtml)これじゃDRYのルール違反。こんな場合は、application.rhtmlという名前でレイアウトファイルを作っておけば良いのだ。 Railsのレイアウトファイルの参照ルール コントローラーと同じ名前のファイル名をapp/views/layouts/フォルダに探しに行く。 例:softwares_controller.rbなら、softwares.rhtmlというレイアウトファイルを探す。 上記レイアウトファイルが存在しなければ、application.rhtml、またはapplication.rxmlを探しに行く。 layoutメソッド 上記ルールを超えて、コントローラーからlayoutメソッドで明示
Railsのradio_buttonヘルパーで少し悩んだのでメモ。 Railsのバージョンは2.0.2です。 ラジオボタンの基本的な使い方は <%= form.radio_button グループ名, サーバに送る値, :checked => "checked" %>表示名称例えば↓のように使う。 <%= form.radio_button :honban_flg, 0, :checked => "checked" %>練習 <%= form.radio_button :honban_flg, 1 %>本番:checked => "checked"はデフォルトでチェックしておきたいボタンにつける。 このデフォルトでチェックするボタンの指定方法がform.radio_buttonとradio_button_tagで違うようだ。 radio_button_tagの場合は↓のように指定する。 <%
リファレンスを見てたら偶然見つけたメソッドが使えそうだったのでまとめておきます。同じviewテンプレートを複数のアクションで使い回す時に使えます。 current_page? 指定したURLが、現在表示されていればtrueを返します。 例 # main#indexならtrue current_page?(:controller => "main", :action => "index") # link_to_if link_toの第一引数に条件文を書き、trueならリンクを有効に、falseならリンクを無効に(文字は表示されます)します。 例 # @mailがあればリンクが有効に link_to_if(@mail, "メッセージ送信ページへ", :controller => "message", :action => "new") link_to_unless link_to_ifのunl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く