Rails5

Wordpressの記事データをRailsのDBに移行する

目次 目次 おおざっぱな流れ 移行するデータ 1. CSVを抽出 記事データ カテゴリ タグ Primary Category 画像データ サムネイル 2. mysqlでimportする 記事データ カテゴリデータ 記事とカテゴリの関連付けデータ タグデータ 記事とタグの関連付けデータ Prim…

Googleのモバイルフレンドリーテストのデバイス判定が適切にされないとき

Googleのモバイルフレンドリーテストの際に、mobile用のViewが適切に読み込まれていないことに気付きました。これはページランクに影響が出る可能性大なので早急に解決すべき問題。 k0kubunさんのrack-user_agentを使って、RailsのAction Pack Variantsを用…

React x Railsでデータの同時編集ロック機能を実装する

検討 競合する可能性が大いにあり、かつデータの整合性が非常に重要な部分の実装なので、今回の場合は楽観的ロックではつらそう。では悲観的ロックではどうか。 悲観的ロックとは、 悲観的ロックとは、DBMSの行ロック機能(SELECT FOR UPDATE句)を利用して…

Reactでロード中indicatorを表示するcomponentをRailsに組み込む

react-spinkitを使ってみます。 github.com 以下にデモも用意してくれてます。 React Spinkit classnamesとobject-assignというライブラリを使用しているので、こちらをnpmでインストールしておくのを忘れないように。 GitHub - JedWatson/classnames: A sim…

Railsで標準クラスへメソッドを追加してNumericの桁数を求めれるようにする

Numericクラスに、桁数を返すメソッドを追加したいと思ったので、Railsに乗っていて標準クラスをオーバーライドするプラクティスあるのかなーと思って調べてみましたが、特に決まったものはなさそうです。 ruby on rails - Railsで既存クラスへのメソッド追…

impressionistでcounter_cacheがうまくupdateされない

PVの測定にimpressionistというgemを使っているのですが、このimpressionistにはRails3くらいに実装されたcounter_cacheの機能を簡単に盛り込めるようにしてくれるオプションをis_impressionableメソッドにつけてくれてます。 ですがこいつがうまくupdateさ…

Railsでログイン機能を自作する

はじめに deviseを使いたくないし、と思ったらsorceryは開発終了してしまってるみたいだし、monbanはきになるけどproductionに載せるには少し不安だ...。 ということで、僕がきいてる限りだと大きな会社のアプリケーションだとかなり自作の事例の方が多いみ…

全アクション共通メソッドを利用してナビゲーションバーに検索フォームを配置する

検索フォームをナビゲーションバーのような共通viewファイルに置くにはどうしたらいいのか、一瞬迷ったのでメモ。 今回は、以下で作成した検索フォームをnavigation barに配置したいと思います。 totutotu.hatenablog.com 実装 Railsでは、全てのController…

Railsで検索機能を実装する

Special Thanks 以下の2つを参考にして実装しました。 github.com ruby-rails.hatenadiary.com 実装 Railsで、ransackを使ってObjectベースな検索機能を作成していきます。 今作成してるCofwaというコーヒーコミュニティアプリケーションで、豆のブランドの…

deviseに疲れたのでsorceryでユーザログイン機能を実装

deviseの代替案として、前々からsoceryいいよなんてきいてたので使ってみます。 github.com @komagata さんにおききしたらつらみはそんなに減らないとなったのが一瞬頭によぎる @komagata devise、つらみを感じてます...。あとはSorceryとかをよくきくのです…

Railsでのテスト時に`test_after_commit`のgemが読み込めないエラー

こんな感じのエラーに出くわした。 /Users/totzyuta/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'test_afte…