約束の地

キャロの想い出

Ruby

ActiveRecord::Relation のオブジェクトから生データ(FixnumクラスやStringクラスのオブジェクト)を取り出す方法

結論 以下の順序に沿っていきます。説明を分かりやすくするため*1、一部で正確ではない表現を使っています。 *1:分かりやすくなっているだろうか……

Legato を用いたコードを抽象化する

Legato Google Analytics の API を扱うときに便利な gem です。 ベタ書きで実行はできるけれど 以前に書いた記事のとおりにコードを書いていけば Legato を用いて Google Analytics の結果を取得することができます。しかしこのコードは(分かりやすさのた…

Legato でフィルターをかける方法

Legato Google Analytics の API を扱うときに便利な gem です。 検索結果に対して「フィルター」をかける 例えば、昨日のサイトのページビュー数を取得したとします。その中から「ページビュー数が1000以上のもの」を抽出したい場合には「フィルター」をか…

Legato でプロファイル(ビュー)を選ぶ方法

Legato Google Analytics の API を扱うときに便利な gem です。 ビューを選択する APIの認証が済んだユーザは次の段階で「ビュー」を選択することになります。その際の選択方法を記します。以下、認証が済んだユーザのオブジェクトを ga_user とします。ま…

Google Analytics API 用の gem である Legato を使う

Legato Google Analytics の API を扱うときに便利な gem です。 ごくごく基本的な使い方 Legato の詳しい使い方は 公式のREADME や 公式のWiki に詳しく載っていますが、やはりコードを実際に見て理解するのが一番良いと思いますので、コードベースで順を追…

Ruby で Time.parse メソッドを使うときは require 'time' してあげないといけない

結論 標題のとおりです。

Nokogiri(というか XPath ?)のHTMLパースで属性値を指定した際にオブジェクトが取得できないとき

結論 属性値(プロパティ値)はすべて小文字で記述しないといけない。

Kaminari の バージョン 1.0.0 以降では直接ページ総数を取得する方法はない(ようだ)

追記 以下の内容は大きな勘違いの可能性(検索力不足)。READMEを参照。 https://github.com/kaminari/kaminari/blob/master/README.md Kaminari 説明するまでもないぐらいに、有名で素敵なプロダクトです。 ページ総数を取得したいが…… 今現在、何ページあ…

Rails で rails generate kaminari:views bootstrap3 が失敗するのを防ぐ方法

結論 どこか適当な場所でいいので*1、require 'open-uri'をしてやる。 私はconfig/initializers/extensions.rbというファイルを作り、そこに以下のように一行だけ書いて、Rails を再起動しました(重要)。 require 'open-uri' 設定ファイルなどはまだ何もい…

Rails で既存クラスにメソッドを追加(オープンクラス)したが適用されない

結論 Rails の再起動を行っていなかった。

Rails で created_at や updated_at に現在日時を DEFAULT で入れたい場合

結論 こんな具合に書きます。 class CreateUsers < ActiveRecord::Migration[5.1] def change create_table :users do |t| # 省略 t.datetime :created_at, default: -> { 'CURRENT_TIMESTAMP' } t.datetime :updated_at, default: -> { 'CURRENT_TIMESTAMP'…

Kuroko2 のインストールで少しハマった

Kuroko2 Cookpad製のジョブ管理システムです。 ドキュメントは以下から。

Rails (というか Active Record) のマイグレーションで複合外部キーを設定する方法

結論 生SQLを書くしかなさそう。

Rails のマイグレーション時に references メソッドの対象テーブルがない場合は失敗する

Rails のマイグレーションで失敗する 標題でほぼ言い尽くされているし、何をお前は当たり前のことを言っているんだ状態だとは思いますが記録として残しておきます。

Ruby で UTC の日時を取得する方法(Rails 不要、gem 不要)

動機 検索するとRailsしか引っかからなくて1時間くらいハマったため、書き残します。追加で何かを入れる必要はありません(Rubyのバージョンは2.4.1)。 結論 Time.now.gmtime 実例 puts Time.now.gmtime #=> 2017-07-07 07:45:38 UTC

Rails の production モード起動時に app/ 配下に余計なコード(ファイル)を入れているとハマる

production モード起動時 標題のとおりですが、productionモード起動時にapp/配下(サブディレクトリも)のファイルが根こそぎ*1読まれてしまうので、書き捨てのコードが残っていたりすると*2うまく起動しないか、起動したように見えても問題があります。dev…

OpenCV (ruby-opencv) を用いて「ある画像が画像のどこに埋め込まれているか」を調べる(「坊ちゃんを探せ!」)

動機 「坊ちゃんを探せ!」と、あとまさんがツイートをしたので探してみようと思いました。 坊ちゃんを探せ!#坊ちゃんの日 pic.twitter.com/2yHVQmDDuR— あとま@1169会お疲れ様でした (@1atoma) 2016年11月10日

Twitter の gem において RT の Favorite 数は取得できない(が、何とかして取得する方法)

RT の Favorite 数 gem を用いた場合に限った話ではなく API そのものの制限だとは思うのですが、念のためこのような標題にします。 結論 API でリツイートを取得した場合は、元のツイートの Fav 数は取得できない ということです(正確には 0 が返ってくる…

Active Record でそれぞれのレコード(行)から特定のカラムの値を取得する方法

結論 attributesメソッドを用いる。

Twitter の gem を用いて、リツイートした人の一覧と、リツイートのツイートオブジェクトを取得する方法

前提 retweeters_idsメソッド、あるいはretweeters_ofメソッドを用いる場合は自分のツイートでなければ取得できません。 なのでこれらのメソッドは用いないで、最後に書くようにretweetsメソッドを用いるべきです。すなわち、この記事の途中の大半はスルーし…

mysql2 の gem で INSERT しようとしたらドハマリした

Ruby で MySQL への INSERT 原因の根幹はRuby限定ではないでしょうが、Rubyの書き方に起因するものとしてこのようなタイトルにしました。要はMySQLにINSERTできないというただそれだけのハマりです。2017年にこんなレガシーな方法で、とは思いますが、一つの…

Rails 製の ECサイト フレームワークである Solidus のインストール方法

Solidus これです。Spreeの後継ですね。 インストール方法 できるだけ最小限に、できるだけ全ての環境に当てはまるようにインストール方法を書いていきます。基本的には公式の説明のとおりですので、そちらを一緒に見ながら進めるとよいと思います。

Twitter の gem で 140 文字制限の拡張により正しくツイート情報が取得できない場合

正しいツイート情報が得られない Twitter の仕様変更により、gem で正しいツイート情報が得られないことがあります。

CSV.table では日本語のヘッダは表示されない

Ruby の CSV.table メソッド Ruby で CSV を扱う際に、CSV.table メソッドは便利です。 しかし…… しかしながら、一つだけ*1注意点があります。それは、「日本語のヘッダは表示されない*2」ということです*3。 *1:じゃないかもしれませんが *2:文字列を取得で…

Twitter の gem を利用して ユーザID でユーザを指定する方法

Twitter の gem を使う 標題のとおりなのですが、ドハマリです。 スクリーンネームを使って でユーザオブジェクトを得る方法 スクリーンネーム(@foobar でいう foobar の部分)を用いてユーザオブジェクトを用いるためには、ベタ書きで以下のようになります…

Twitter の gem を利用して ツイートID でツイートを指定する方法

Twitter の gem を使う 標題のとおりなのですが、またもやドハマリしました。 ツイートID でツイートオブジェクトを得る方法 いわゆるツイートIDでツイートオブジェクトを得るのは簡単です。https://twitter.com/foobarfoobar/status/123456789012345678の U…

Ruby で UTC(文字列)を JST にとにかくさっさと変換する方法

結論 in_time_zone('Tokyo')メソッド(引数)を用いる。 具体例 utc_datetime = '2017-06-16 05:20:35 UTC' jst_datetime = utc_datetime.in_time_zone('Tokyo') puts jst_datetime #=> '2017-06-16 14:20:35 +0900'

twitter gem を用いて鍵アカを判別する方法

結論(概略) 以下のページに全て書いてありますのでぜひご覧ください(大感謝)。

Rails を内蔵サーバの production モードで起動した際に public/ 配下のファイルが読み込まれないとき

結論 config/environments/production.rb内のconfig.public_file_server.enabledをtrueにする。

Rails で config/secrets.yml に書いた値(「キー」に対応する「値」)を呼び出す方法

結論 Rails.application.secrets.キーの名前

Powered by はてなブログ