Rails
Rubyインストール時にRust環境が必要 Ruby 3.3.0では簡単にYJITが選択できるようになっているのですが、前提条件としてRubyビルド時にRustコンパイラがインストールされている必要があります。Rustが入っていない場合、YJITが使えないRubyがビルドされてしま…
UI開発におけるコンポーネント指向とは UIを独立した再利用可能な部品(コンポーネント)に分割 コンポーネントにHTML(DOM)、ロジック(JavaScript)、CSSをカプセル化 React、Vue.js、Angularなどフロントエンドの主要なViewフレームワークで採用されている手…
Clipkit(クリップキット) というSaaSを作っています。マルチスキーマ方式のマルチテナントシステムなのですが、テナント数が1,000近くなってきて辛さも出てきているので他の方式を検証中です。 LD;TR PostgreSQLのRow Level Security Policyを利用したマル…
Bootstrapのnavbarで現在位置のaにclass="active"って付けるじゃないですか。あれって階層になると判定が大変でなかなか美しく実装できないですよね。 色々考えてみたけど、JSで実装すればいいんじゃないですかね? JavaScript版とCoffeeScript版です。(要j…
RailsでのURLのバリデーションについて探すと次のような書き方がよく出てきます。 validates :url, format: URI::regexp(%w(http https)) URLの正規表現は真面目に書こうとすると複雑なものになりますが、URI::regexpがURLの正規表現を返してくれるのでこれ…
( ..)φメモメモ FacebookのOGPのメタデータを収集するクローラは、Accept: */*でリクエストを送ってくるようだ。普通のWebブラウザではAccept: text/htmlが入ると思うけど、これを前提にした実装になっているとクローラに対してWebアプリが正しいHTMLを返さ…
Railsでキャッシュストアをファイル(config.cache_store = :file_store)にして、ガンガンキャッシュを活用していると、サイトの規模が大きくなった時にrake tmp:cache:clearが辛くなってくる。やたら時間かかるようになるし、その間サーバの負荷もヤバイ。…
Railsでパンくずリストを実装するのに、breadcrumbs_on_railsを使っています。 これの出力をカスタマイズしたい。 Googleの検索結果にもパンくずリストが表示されるようにしたい。こんな感じで↓ このようにするためには、microdata構造化マークアップを追加…
個人的にHTMLテンプレートエンジンには昔からかなりこだわりがある大好き分野であり、何度か自作したりもしてきたんだけど、最近はちょっと冷めてきて、ここ最近というか長らく普通にERBを使っていました。 Webデザイナーから納品されたHTMLファイルを尊重す…
Rails Application Templatesを使おう、と思って、やめたわけなので、その代わりに普通に雛形アプリを作っておくことにした。 Webアプリを作る時に定型的に必要になる機能は少なくない。実はこれが結構ボリュームがあるし、機能要件に入らない部分が多いので…
新しくRailsアプリを作る時には、rails newコマンドを叩いて雛形を生成するわけだが、そこから先の準備が結構面倒だ。 いつものGemfileを作って、各設定ファイルいじって、Bootstrap入れて、定形のレイアウト作って、Git初回コミットして、…というやつ。それ…
普段作るRailsのプロジェクトはGitで管理しているので、アプリケーションのアップデート手順というと、sshでログインしてgit pull。あと必要に応じてbundle installやrake db:migrateして、touch tmp/restart.txtで完了。 たいした手間ではないし、昔のよう…
Railsアプリを作る時の最近のGemfileを晒してみる。 だいたいデフォで入れているものたち。 source 'https://rubygems.org' ruby '2.1.0' gem 'rails', '4.0.3' gem 'sqlite3' gem 'sass-rails', '~> 4.0.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails',…
昨日こんな記事が話題になっていました。 ≫ 登録されるとつらいユーザー名リスト - Qiita ああ、ちょうどまさにこういうルーティングのWebサービスを作っているところだったりすので、とても参考になる情報。ということでサクッとRailsのValidatorにしてみま…
bbatsov/rails-style-guideが非常に参考になりそうなドキュメントだと思ったので、自分で利用しやすいように適当に日本語訳してみたのが1年以上前のことです。 この1年でRailsは4.0になり、セオリーが変わった部分も少なくありません。このガイドの原文は…
チャットクラーク(chatclerk.com)のRuby 2.0.0 + Rails 4.0.0対応作業を完了しました。相変わらずRailsのアップデートは大変なのですが、3.2時代のアプリであれば、まあそれほどでもない感じですね。2.x時代のアプリだと大変そうだし、もし回帰テストがな…
遅ればせながらJenkinsを試してみました。 継続的インテグレーションは、複数の開発者が関わる大きなプロジェクトにおいて品質を保つための手法として効果的なのは明らかなんですが、いやいや独りプロジェクトでもかなり役立ちそうですよ。テストをサボれな…
今ではBundlerのおかげでプロジェクトごとにgemを管理できるので、システムワイドに色々インストールされてカオスになることはなくなりました。 でもRailsアプリを新しく作る時に困った。アプリ新規作成にはRailsが必要。でもシステムワイドにgem install ra…
Rails 3 スタイルガイド(bbatsov/rails-style-guide)が良いまとめだなと思ったのですが、僕は英語が苦手なので辛いです。だから自分なりに日本語版を作っておくことにしました。誤訳上等。 自分の理解が不十分のところの訳文は特にヘンテコなままです。Git…
リリースから2年以上が経った「モグリー」ですが、先日のリニューアルに続いて、(やっと重い腰を上げて)アプリケーションフレームワークをRuby on Rails 2.4から最新の3.2へとアップデートを実施した。Rubyも1.8.7から1.9.3へ。さらにライブラリの互換性の…