Rails

AttachmentFuプラグインで、日本語ファイル名が文字化けしてしまう

AttachmentFuプラグインでは、ファイル名を保存してくれます。 しかし、日本語の文字については勝手に'_'で書き換えられてしまいます。例: ____.png 原因 attachment_fu.rb module Technoweenie # :nodoc: module AttachmentFu # :nodoc: module InstanceMet…

RJSなどのAjax処理中に例外が発生した場合に、通常の例外画面を出したい場合

app/controllers/application.rbで以下のようにかくとできます(もしくは、libでうまく上書きするか)。 def rescue_action_locally(exception) add_variables_to_assigns @template.instance_variable_set("@exception", exception) @template.instance_varia…

Railsでトランザクショントークン(ダブルサブミット、2重登録対策)を使う

double_submit_protectionを使いましょう。 ただし、2008/9/11現在、sessionをクリアしていないというバグ?があります。なので、 http://github.com/DianthuDia/double_submit_protection/ な感じでgithubの使い方を学びながら軽く修正してみました。 インス…

ActiveRecord::Errorsにあえて、削除やマージをつけてみる

lib/extension.rb module Extension def included( recipient ) recipient.extend self::ClassMethods _this_class = self recipient.class_eval { include _this_class::InstanceMethods } end alias_method :extended, :included end lib/errors_extension…

モデルでhelperを使う方法

$(RAILS_ROOT)/helpers/model_helper.rb module ModelHelper #インスタンスメソッド def validate_name end def self.append_features(base) # :nodoc: super base.extend ClassMethods end module ClassMethods # クラスメソッド def convert end end end …

PassengerとcapistranoでのデプロイTips

デプロイの流れ(インストールは省略) cd RAILS_ROOT capify . # deploy.rbを下記のものに変更 cap deploy:setup # :deploy_toにcapistranoに必要なフォルダを作る cap deploy:cold # SVNから取得+migration+Passenger再起動(RAILS_ROOT/tmp/restart.txtが作…

DBからYAMLにする方法(ar_fixtures)

今までは、ar_fixtures+wamlを使っていましたが、もっとよいものを見つけました。http://d.hatena.ne.jp/elm200/20070928/1190947947id:elm200さんに感謝です。手で書いた時のように綺麗に出力されます。 ar_fixtures+waml dog_00301: name: "ああああ" lock…