Sassを使ったり、人からパクったりして、極力失敗しない方法
本日、Ruby on Rails 3.2.7がリリースされました。 主なトピックは、Digest認証時にDoS脆弱性が発生する問題の修正です。 (3.1系列は3.1.7、3.0系列は3.0.16が対応版になります) https://weblog.rubyonrails.org/ https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-security/vxJjrc15qYM 3.xのユーザはアップデートが強く推奨されています。 追記: テスト環境のデフォルトがdevelopmentになる問題があるので注意が必要です 今回は、Rails 4に向けて一部DEPRECATEDになった機能もあるようです。 一番わかりやすいところでは、update_attributeが非推奨になっています。 update_attributes,
scaffoldを使うとCRUDが揃った「土台」を一発で作れるわけですが、それをアレコレして全ての操作をAjax化してみたので、手順をまとめました。 記事を読むのがだりぃって方はソースコードをGitHubで公開してるので、そちらをご覧ください。 RubyもRailsもあんまり触った事がないので、識者によるツッコミ歓迎します。 (`・ω・´) 概要 やること indexの画面だけでCRUD、つまり新規作成 (Create)、表示 (Read)、編集 (Update)、削除 (Delete)を行えるよう、scaffoldで作成したファイルをいじります。 結論 form_for()にremote: trueを与えるだけで、とりあえずAjax化します。あとはサーバー側のレスポンスの内容を整えて、クライアント側で適切に処理してやればOKです。 作業 下準備(scaffoldとか) indexに編集フ
はじめに calendar_helperプラグインをgemで入れた場合、ほとんど手を入れられないけどなんとかしてみようという話。 タイトルの月名を日本語化 くわしくは「https://github.com/topfunky/calendar_helper」で確認。 カレンダーのタイトル部分(月名)は、オプションだけでいけるので、やっつけ仕事的にはこれで。 <%= calendar(:year => @year, :month => @month, :calendar_title => "#{@month}月") %>多言語化を考えるならこれで。 <%= calendar(:year => @year, :month => @month, :calendar_title => I18n.t('date.month_names')[@month]) %> 曜日を日本語化 やっちまった系の危険な
Rails3時代のpaginationの標準に成り得るkaminariのインストールと設定の方法をまとめます。 Kaminariはamatsudaさんが作られたpaginationのためのgemです。 使用させていただいたところ、現在ひろく使用されているwill_paginateからこのkaminariに乗り換えてしまうのに充分な機能がある上、will_paginateと比較してシンプルなためにレンダリングのカスタマイズ等が容易に感じられました。 amatsudaさんありがとうございます。 以下、インストールからカスタマイズの方法までをまとめます。 Kaminariのインストール方法 Gemとしてインストールします。 単にgemとしてインストールするだけであれば、シェルで、 $ gem install kaminari のように入力します。 Rails 3で使用する場合は、Gemfileの
rails2でscaffoldすると、migrateも作られるようになったのはわかった。 で、usersがある状態で/admin/usersみたいな会員管理コントローラを作りたいとき。 #いや、管理ページはRestfullにする必要ないかもしれないけど。。/mypage/xxxとかありうると思うから scaffold $ script/generate scaffold Admin::user --skip-migration create app/models/admin create app/controllers/admin create app/helpers/admin create app/views/admin/users create app/views/layouts/admin create test/functional/admin create test/unit/
Rails ジェネレーターとテンプレートのカスタマイズ(Creating and Customizing Rails Generators) † ワークフローの向上を計画するなら、Rails ジェネレーターは必要不可欠なツールです。 このガイドで、ジェネレータを作成する方法、および既存のものをカスタマイズする方法について学びます。 このガイド内であなたは: アプリケーション内で使用可能なジェネレータの参照方法を学びます。 テンプレートを使って、ジェネレータを作成します。 Rails がどうやってジェネレータを呼び出す前に探すかを学びます。 新しいジェネレータを作成することにより、scaffold をカスタマイズします。 ジェネレータのテンプレートを変更することにより、scaffold をカスタマイズします。 ジェネレータの巨大なひとまとまりを上書きしないようにフォールバックを使用する方
2010-09-19 ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Getting Started with Rails 2010-09-18 ruby/rails/RailsGuidesをゆっくり和訳してみたよ Top 2010-09-16 search_result MenuBar 注意 † 英語が苦手なので、超意訳だよ。 表題に日本語がついているのは一応訳してあるけど、 古いバージョンだったり、適当な訳で清書していなかったり。 ちゃんと終わったものは、twitterでつぶやくから、よかったらフォローしてね。 ちゃんと終わったページ Railsのはじめ方(Getting Started with Rails) 最低でも一週間に一本以上は更新予定だけれど、 滞っている場合は、StarCraft2にハマってるから叱咤して下さい。 Rails 3を始める皆
Railsでpaginationを出力するpluginのwill_paginateをRails 3で使用するには、Rails 3に対応したwill_paginate 3.0.pre2をインストールする必要があります。 will_paginate 2.3.15もRails 3で動作しましたが、エラーが数多く出力され、作者のmislavさんもwill_paginate 3.0.pre2の使用を推奨されています。 will_paginate 3.0.pre2をインストールするには gemコマンドを使う場合 gem install will_paginate —pre bundlerで設定する場合は、Gemfileの中に以下を記述し、 その後でshellから bundle installもしくはbundle updateを実行します gem ‘will_paginate’, ‘3.0.pre2
will_paginateのアップデートによってインストール方法など一部の情報が古くなっています。 関連:will_paginateもgithubに行ってた この間Rails2.0に移行したときにいったん放置したwill_paginateへの移行を行ったのでメモ。 それほど手間ではなかった。 ぐーぐる先生が教えてくれたページやREADMEを読みつつ作業。 プラグインのインストール さくっと。 $ script/plugin install svn://errtheblog.com/svn/plugins/will_paginate コントローラの修正 以下のようにコードを修正。コメントアウトしたものは修正前のもの。 def list # @pages, @items = paginate(:items, :conditions => ["deleted = 0"], :order => '
Ruby on Rails Guides: Rails Internationalization (I18n) APIを読んでのメモ。全部網羅してたりはしてないので、気になった方は原文見てください。 基本 I18n.translate "store.title" I18n.localize Time.now # 短縮形 I18n.t "store.title" I18n.l Time.now config/locales が translation 用のデフォルトロードパス。 I18n.load_path や config/application.rb 内で config.i18n.load_path をいじれば修正できる。 辞書ファイルにはyaml形式かRubyのhash形式が使える。 デフォルトのlocaleは:en I18n.default_localeでデフォルトのlocaleを変
今のURLのチェックは下記の1行で行っているが、http:、https:、ftp:で始まっていれば、その後は、ほぼ、どんな文字が来てもOKで通ってしまう。今になってそれがちょっと気になってきたので、見直してみた。 validates_format_of :url, :with => URI.regexp(['http', 'https', 'ftp']) 生成される正規表現については意味を追いきれないので、何がOKで、何がNGなのかは確認していないが...。 そもそも、rubyのURIライブラリの存在を知った時には、こんな風にメソッド定義しておくと、簡単にHTTPの書式チェックが出来ると知ったことからだ。 URIのパターンマッチとURIクラスより、タイムリーな話題に感謝です。 def http?(str) begin uri = URI.parse(str) rescue URI::Inv
存在しないページにアクセスがあった場合に404のページを表示する方法をまとめます。 例えば、http://memo.yomukaku.net/path/that/does/not/exists のように、routingに引っかからない(つまり、実在しないか、対応するcontrollerとactionが存在したとしても、routes.rbには載っていない)ようなページを全て補足するrouteを作り、一括して404ページを表示するようにします。 具体的には、app/config/routes/rbの最下行に、以下のようなルートを追加します。 ActionController::Routing::Routes.draw do |map| // (省略) map.connect '*path', :controller => 'application', :action => 'error_404
いつもpublic/404.htmlとか編集してる程度だったので、Railsの仕組みを使ったエラーページを作ろうかと色々試行錯誤してみた. 因にエラーページは通常はProductionモードでHTTPアクセスをローカルホスト( localhost / 127.0.0.1 )以外でアクセスしたときに確認できます. エラーページの実装方法 方法はググってみると、ざっと3種類あった. public/404.htmlを書き換える ApplicationController内でrescue_fromを追記 ApplicationController内でrescue_action_in_publicメソッドをオーバライド 色々やるなら、最後のrescue_action_in_publicオーバライドする方法が一番よさそう. ただ欲を言うとRails自身もProductionモードのときちゃんと、404
Rails 2.1からの日付と時刻の表示はUTCが標準になり、そのままの環境では以下のように表示されてしまう...。 <%= user.updated_at %> 2008-08-08 04:52:49 UTC 以前に比べれば日本人にとっては分かり易い表示だが、決定的に問題なのは日本の時刻と9時間ずれていること。 タイムゾーン その環境を決めているのは、config/environment.rbの以下の部分。 その部分をコメントアウトしてみると... # ---------- config/environment.rb ---------- Rails::Initializer.run do |config| ...(中略)... config.time_zone = 'UTC' ...(中略)... <%= user.updated_at %> Fri Aug 08 04:52:49 +
Rails 3のルーティングで気になったところについて。いつものメモです。あくまで気になったところなので全部網羅しているわけではありません。あしからず。 基本形 map.connect から match メソッドに変更。オプションも下記のように変更。 # Rails 2 map.connect 'products/:id', :controller => 'products', :action => 'view' # Rails 3 match 'products/:id', :to => 'catalog#view' # :to は省略可能 match "/account" => "account#index" # :controller/:action 形式であればさらに省略可能 match "account/overview" Named Routes asオプションで指定するように
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く