リア充爆発日記

You don't even know what ria-ju really is.

Ruby on Rails

paperclipの保存先をAWSのS3にする

ただのメモGemfile gem "paperclip", "~> 3.4.1" gem "aws-sdk", "~> 1.9.5" config/environments/*.rb config.paperclip_defaults = { #path: "#{Rails.root}/public/system/develop/:class/:id/:style/:hash.:extension", path: ":class/:id/:style/:hash.…

Railsでテキスト中のURLに自動的にリンクを張る

というgemが存在した。 https://github.com/tenderlove/rails_autolinkこれは3.1以前はRails標準だったもので、セキュリティ的な要請から、Rails本体に比べて相当短いサイクルの修正が必要になるため、(そのたびにRailsをアップデートしてもらうのはスジが…

Railsでメール送信系のテストを行うには〜email-spec

会員登録時やパスワードリマインダーなどで発生するメール送信のテストはどうやってするのか調べたところ、email-specというgemが目的にぴったりっぽかった。 その名の通りRSpecとあとはMiniTestとCucumberに対応している。email-specをRSpecに導入するメモ…

開発中にいちいちメールが飛ぶのがウザいとお思いのあなたへーletter_opener

開発中にサンキューメール(この言葉久しぶりに使った)とかの送信がポンポンとんでうっとおしいぜっ!とお思いの方に朗報です。https://github.com/ryanb/letter_openerこのgemを使うと、メールが飛ぶタイミングでメール同じ内容のファイルを生成し、そこで内…

capybaraを2.1にupgradeしてテンパった方へ

以下を入れておけば、心に平穏が戻るかもしれない。spec_helper.rb Capybara.configure do |config| config.match = :one config.exact_options = false config.ignore_hidden_elements = false config.visible_text_only = true end https://github.com/jni…

i18n-jsとRails3.2.13で"invalid byte sequence in US-ASCII"

RailsでBackboneを使いながらDRYにi18nで登場したi18n-jsだけどRailsを3.2.13にアップグレードしたら検証環境で"invalid byte sequence in US-ASCII"が出てコンパイルがコケる。 rake aborted! invalid byte sequence in US-ASCII (in /var/www/hoge/shared/…

RailsでBackboneを使いながらDRYにi18n

これを使えばOK牧場。 https://github.com/fnando/i18n-jsGemfile gem 'i18n-js' application.js //= require i18n //= require i18n/translations configファイル生成 bundle exec rake i18n:js:setup※ホントはこのプロセスは要らないのだけど、sprocketの…

backbone.jsでdestroyとかcreateのsuccessコールバックが発火しない

このへんはresponseにJSONが帰ってこないと発火してくれないらしい。なんだよそれ。 head :created こんなふうだと発火してくれないので、しょうがないから render status: :created, json: {} ってやる。すると発火する。そういうわけで。

activerecord-reputation-systemでいいね!乞食になろう

たいがいのソーシャルなんちゃらにある、いいね!的な機能、ただ、投稿に対して1レコード分の評価的なものを足すだけだけど、実装しようとすると意外とめんどくさい。めんどくさいし、たいがいのソーシャルなんちゃらにあるんだから、gemになってるんじゃね…

俺的2013年 Ruby on Rails開発環境ニコニコセット

前に俺的Androidアプリ開発環境ニコニコセット 2012というまとめを書いたけど、それのRails版。ほぼGemの列挙になりそうなのと、それ以外はAndroid版と多分に被りそうな予感を持ちつつ。 無いと死ねる編 Rspec ないとテスト書けない。まぁ、ぶっちゃけ普通の…

backbone.jsでrails3とかのhas_manyとかhas_oneとかを実装

追記1)以下の内容は、更新系でうまく動かない可能性があるので、ご了承ください。修正できたら直します。 追記2)hasOne側は登録・更新までの動作検証ができた。 追記3)hasMany側も動作検証できた。ので、いちおう、これで終わり。ここんとこbackbone.j…

Railsで環境ごとの設定値を定数的に扱えるSettingslogic

https://github.com/binarylogic/settingslogic超絶便利。URLとかAPI_KEYとかそういうので重宝。 インストール方法や使い方はREADME見れば絶対にわかるので、そちらで。以上、よろしくお願い致します。

Rails3にbackbone.jsを導入する

JavaScript(CoffeeScript)をどうやって、疎に、DRYに保つか、ということはいつも考えながらも、最終的にはムスビのコトワリに導かれゆく結末をたどってきたのですが、近頃ではJSにも各種フレームワークが浸透してきており、その中でもデファクトの地位を確立…

rails3 + backbone.jsでデータのやり取りをするために。

RailsでWEB APIサーバを作るときのアーキテクチャをどうするか考える RESTful APIとWebサイトを1つのアプリケーションで作るで、この時はAndroidアプリしかAPIを使うクライアントはいなかったんだけど、等々HTMLから使うときが来ました! この時のために、…

RailsでJavascript/CoffeeScriptをテストするときの決定版(にしたい)!Konacha

というわけでKonachaです。https://github.com/jfirebaugh/konacha なにこれ、粉茶?JavascriptのテスティングフレームワークとしてはJasmineやらMochaあたりがメジャーどころのようだけど、セットアップが難しかったりして「これだ!」というものがなかった…

rspecキモい。

RspecがキモいんだかRubyがキモいんだか。SNS的な「ともだちになる」機能を作ろうとしたとする。 そのために 既にともだちかどうかを確認するメソッド -> friend_of?(other_user) ともだちになるメソッド -> become_friend!(other_user) の2を実装しようと…

bootstrap-sassを使っててアイコンがでない

compassを使っているからかもしれないけどbootstrap-sassでアイコンがでない。関連のgemはこんな按配。 gem 'sass-rails', '3.2.5' gem 'coffee-rails', '3.2.2' gem 'bootstrap-sass', '~> 2.2.2.0' gem 'bootswatch-rails' gem 'compass-rails' なんでかよ…

railsでupdateのときにpasswordのバリデーションを回避する

userモデルを更新するとき、パスワードも一緒に更新する画面構成だといいけど、twitterなどの最近の多くのWEBサービスと同じようにパスワードは別口で、という場合にどうしたら良いかわからなかった問題。2個書けばよかった。 validates :password, length: …

Jenkinsでrspecで書いたテストのコードカバレッジを表示する

前回の「さくらのVPS+Jenkins+github+rails3」の続き。どうせ俺一人だから通知とかいいや、それよりカバレッジ見てー。という気持ちになったのでやってみた。 もう、普段からrspecでテストしていることが前提条件。こちらを参考にした。っていうかほぼそのま…

さくらのVPS+Jenkins+github+rails3

さくらのVPS(CentOS6.3)にはすでにJenkinsとrbenvでruby1.9.3と公開鍵とかの設定ができているので、ここからこれらを繋げる。 ちなみにnginxも入っていて、nginx->jenkinsという流れで繋がるようになっていた。いつやったんだ。rbenvとかはここでやったんだ…

ActiveRecordで普段は必要のないカラムをscopeで除いてselectする

これは調べてよかった。例えばUserモデルがあったとして、特に何もしなければ全カラムの情報がクライアント・サーバ間を行き来するわけですよ。 で、passwordとかのセキュリティに関わりそうなやつは行き来させたくない、と。もしくはトラフィックをムダに食…

rspecでroutingのテスト

本当のリア充はクリスマスだからといってむやみにツイートを抑えたり偽装したりしない。通常運転。Rails3+rspec2でWeb APIサーバのpostをテストする方法がよくわからなかった件の続編。今度はAPIサーバ、つまりサブドメイン縛りのリソースに対してroutingの…

RecordNotFound時に404を返したいときー

ググればでてくるんだけど、ほとんどが rescue_from ActiveRecord::RecordNotFound, with: :url_not_found def url_not_found respond_with status: 404 end みたいに書いてあるんだよね。でも、それだとResponse Code自体は200だからこれだとあかんと思うん…

respond_withで任意の数の任意の値を返す

ハッシュでくるめばいいだけだった。。 @response = {foo: @foo, bar: @bar, id: baz_id} respond_with @response ,location: nil こんなんで30分くらいハマったぜよ。。railsのソース、読めないんだもん。。

has_oneなmodelとhas_manyなmodelのbuiltが混乱する件につきまして

has_manyの場合はfoo.bars.build()has_oneの場合はfoo.build_bar()なんで??

Rails3+rspec2でWeb APIサーバのpostをテストする方法がよくわからなかった件

RESTful APIとWebサイトを1つのアプリケーションで作るの続き。最初にテスト書こうと思ってintegration_testから攻めようと思ったらpostが発行できない。(か、もしくはする方法がわからない)けっこうな時間を調査に費やした結果、postを発行しようと思っ…

RESTful APIとWebサイトを1つのアプリケーションで作る

RailsでWEB APIサーバを作るときのアーキテクチャをどうするか考えるの続き。routingなど具体的にどうRailsに盛り込んでいくかの巻。 前提 ログとかをサイトとAPIと分けたいので、API側はサブドメインを切る。twitterみたいにapi.example.com的な。 スマホア…

RailsでWEB APIサーバを作るときのアーキテクチャをどうするか考える

最近のWEBサービスで多いパターンとしてクライアントがブラウザ(PC&スマホ)とアプリ(AndroidとかiOSとか)のように異るUIを持つクライアントを複数持つものがある。ブラウザはHTML+データが必要であり、アプリはデータのみが必要になる。こんな要件に対…

Paperclip + rail3 + rspec でテストごとに作られたファイルを消す方法

Rails3+paperclipでファイルアップロードの最後で気づいたテストごとにファイルを消す方法。基本的なコンセプトとしては、テスト時だけ保存場所を変えて、テストごとにそのディレクトリ配下をごそっと消す、という流れ。config/environments/test.rb config.…

Rails3+paperclipでファイルアップロード

Ruby界のファイルアップロードのライブラリはいくつかあるけど、PaperclipとcarrierwaveがTOP2らしい。どっちも歴史、機能、活発度的に大きく変わらないようだけど以下の点からpaperclipを使って見ることにした。 要件はどちらも満たしている(Rails、S3対…