読者です 読者をやめる 読者になる 読者になる

元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

Active::Recordのトランザクション復習

user = User.find(2) user.name = 'takeyuweb' user.save! User.transaction do # A user.name = 'takeyuweb(trA)' user.save! User.transaction do # B user.name = 'takeyuweb(trB)' user.save! end User.transaction do # C user.name = 'takeyuweb(trC)'…

Ruby on Rails 4.2 のActiveRecordでMovable TypeのデータをQueryInterfaceとかArelとかで扱ってみた

この記事はMovable Type Advent Calendar 2015 - Adventar20日目の記事のはずでした。忘れてました。ごめんなさい。 ふと思い立って現段階の最新のRailsでMTのデータを扱う実験をしてみました。 Railsで非RailsなDBを扱うサンプルにもなるかも。 サンプルコ…

assetsのデプロイメモ

デプロイ先でprecompileしたくない Gitにプリコンパイル結果を含めちゃう デプロイ楽。 画像等が多い場合はアレ minifyされたファイルでコミットログに無駄が やるならgit clean(rake assets:clean すれば勝手にやってくれる模様)するようにする。 $ rake as…

ActiveRecordモデルにincludeしたりするModuleの結合テスト

テストのモデルを作って使う方法メモ。 参考にしたコード CarrierWave::ActiveRecordのテスト carrierwave/activerecord_spec.rb at 7d4713f251399ca6f107e0660616cd7b9494929c · carrierwaveuploader/carrierwave · GitHub require 'rails_helper' # インタ…

Rails Asset / Sprockets関係gem使ったものの感想

はじめに 個人的な感想 ガンガンassets pipeline使う Railsエンジニアだけでやる分には楽 assets pipeline / Sprockets使わない SPA開発などで、フロントエンジニアさんが別にいる場合、フロントエンジニアさんが使いやすいツールでやって貰った方が楽 自然…

Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話

9/30のShinjuku.rb発表ネタです。 ActiveJob プロセス管理ツール ServerEngine のはなし。 時間は適当で良いということだったので5分で終わらない感じになりました。 Shinjuku.rb #29 ActiveJobでSQS使ったのとその永続化についての話 from Takeuchi Yuichi

Action Cable + Flux + React でリアルタイムチャットデモを作ってみた

成果物 デモ(Heroku) http://fluxchat.takeyu-web.com/ ソースコード takeyuweb/rails-fluxchat-example · GitHub キーワード Rails 4.2 ActionCable ES6 React Flux (Alt) Action Cable? まだコード全部は読んでないのですが、WebSocketを使ったリアルタ…

アプリケーションの分割についての迷走メモ

マイクロサービス化の取り組み失敗メモ。新たな失敗やつらみ、なやみを追記していくことにする。

Refileを使ってハイテクなアップローダ(機能を利用したサンプル)を作ってみたのでメモ

昨日知ったのですが、Refileというファイルアップロード用のgemがとてもナウい感じです。

OpsWorks + Rails でロールモデル的な役割分担をインスタンスにもたせるBK

OpsWorks + Rails OpsWorksでRailsアプリを運用しようとした場合、通常の方法では、すべてのRailsアプリインスタンスが同じ設定になり、たとえば つねに1つのインスタンスでのみcronを実行する バックグラウンドタスク専用のインスタンス群を用意したい とい…

Rails + Globalize + Microsoft Translator API で他言語化するテスト

やりたかったこと 表示 言語の判別 ブラウザの言語を判別 URLのパスから言語を判別 言語に応じて表示内容を変える 自動翻訳 入力された言語以外でも表示できるように、他の言語版を機械翻訳で自動的に作成 日本語ロケールで保存すると、英語版を自動翻訳して…

ActiveRecordでサブクエリのJOIN

たとえば 「ユーザー1がコメントした記事の中で、コメントのlike数が1以上の記事を検索する」 SELECT `posts`.* FROM `posts` INNER JOIN ( SELECT `comments`.* FROM `comments` WHERE `comments`.`user_id` = 1 AND `comments`.`likes_count` >= 1 ) liked…

react-rails のprerender(サーバサイドレンダリング)のとき、コンポーネント中で他のJavaScriptライブラリを使う

僕はjs-routesをよく使うのですが、Reactコンポーネント内で、Routes.hoge_url(this.props.id)とかやってると、そのままではサーバサイドレンダリングするときにこけます。 render_component 'EntryListItem', { entry: entry.to_jbuilder.attributes! }, pr…

OpsWorks で使うunicornのバージョンを変更する

プロジェクト固有のOpsWorks設定は、カスタムJSONよりもカスタムCookbookでの管理の方がバージョン管理できること、設定の一元管理ができること、などで有利だと思います。

OpsWorks + Whenever

cron設定をバージョン管理に含めることができるのでありがたいWheneverをOpsWorksで使ったときのメモです。

ActiveJob エンキューされることをテスト

test用のアダプタがあるのでそれを使うとActiveJob::Base.queue_adapter.enqueued_jobsでキューイングされたジョブを取得できるっぽい。 rails/test_adapter.rb at master · rails/rails · GitHub で、それを利用して特定のジョブクラスが引数付きでエンキュ…

ActiveJob::Base#perform のブラックボックステスト

作法として正しいかどうかはわからないですが、queue_adapter = :inlineにしてperform_laterすればすぐ実行されるからブラックボックステストはできそう require 'rails_helper' RSpec.describe SendToChatworkJob, :type => :job do before :all do SendToC…

ActiveRecord で limit とか offset とかしたコレクションから条件を満たす全件数を取得する

posts = Post.where(author: author).limit(limit).offset(offset) posts.count # => 0 ~ limit posts.except(:limit, :offset).count # => 0 ~ Rails3からexceptで適用済みの条件式を除外できる。 except - リファレンス - Railsドキュメント

ActiveRecord::Relation から ActiveRecordクラス を得るには klass でOK?

posts= Posts.limit(limit).offset(offset) posts.klass # => Post(id: integer, title: string, body: text)

Rails + Grape + Rspec でサブドメイン(constraints)のテストを行う時は integration_session.host= を使う

問題 Rails.application.routes.draw do constraints subdomain: /^api/ do mount Api::HogeApi => '/hoge' mount Api::FugaApi => '/fuga' end constraints subdomain: /^(?!api)/ do # non API routes end こんな感じのとき、Grapeのドキュメントにあるよ…

Active Job meets Amazon SQS

この記事は Ruby on Rails Advent Calendar 2014 の11日目の記事です。 Rails 4.2の目玉機能の1つ、ActiveJobのアダプタの自作について試したことメモ。

IntellJ IDEA(RubyMine) + Rails 4.1 + Rspec (spring)で cannot load such file -- teamcity/spec/runner/formatter/teamcity/formatter (LoadError)

環境 IntelliJ IDEA 13.1.5 (Ruby plugin 6.5.2) Rails 4.1.6 RSpec 3.1.0 rspec-rails 3.1.0 ※僕はWindows8.1 + IntelliJ IDEA + リモートインタプリタ(Vagrant + VMwareWorkstation)環境ですが多分他でも同じ 問題 Rails 4.1 でIDEAからrspecを実行しよう…

Ginza.rb で IntelliJ IDEA を布教してきた話

Ginza.rb みんなmac + CUIでアウェー感すごかった。前回の挙手でわかってた。だからこそ、あえてやった。

Rails 4.1 + RequireJS + AngularJS で Single Page Application を作ってみるテスト

Rails 4.1 + RequireJS + AngularJS で Single Page Application を作ってみる