約束の地

キャロ組

プログラミング -> 言語 -> Ruby

Capistrano で ndenv を使う

結論 gem があります*1。 *1:感謝しかない

Capistrano で Exception while executing ...... Permission denied (SSHKit::Runner::ExecuteError) でハマった話

背景 かなり特殊な経緯です。 以前はデプロイ先のユーザは root でデプロイしていた それを一般ユーザに変えようとした そうすると表題のエラーが出た SSHのログインは問題ない

Sidekiq で Redis の namespace が切れなくてエラーになる場合

状況 こんなエラーが出たときです。 cannot load such file -- redis/namespace 結論 redis-namespace を入れる(gem)。 解答 公式ドキュメントにしっかりと書いてあります。 あとこの Issue にも。

Ruby で名前付きキャプチャを用いる際には正規表現オブジェクトを使わない

結論 大丈夫な例 /(?<foobar>[a-z]+)/ =~ 'abcdefg' puts foobar #=> abcdefg だめな例 regexp = /(?<foobar>[a-z]+)/ regexp =~ 'abcdefg' puts foobar #=> undefined local variable or method `foobar' for main:Object (NameError) 感想 そりゃそうなのかな、という感想</foobar></foobar>…

Sidekiq でジョブの並列実行数を制限する

結論 sidekiq-limit_fetch を使う。

「TLで集めた顔文字とか」を収録した Google 日本語入力 の辞書ファイルを作りました

はじめに 以下の記事の分家です。

Google 日本語入力 の辞書で同じ「よみ」に200語以上の単語を登録しても変換できない

結論 表題のままです。具体例を見てもらったほうが早いかと思います。

Failed to open TCP connection to https://www.example.com:80 (getaddrinfo: Name or service not known) (SocketError) のようなエラーが出たとき

Ruby です。 一つの解決法 誤っている例 MyApplication::Client.new( host: 'https://www.example.com', port: 80, username: 'MY_USERNAME', password: 'MY_PASSWORD', use_ssl: true, ) 一見誤りはないように見えます(見えました)。結構ハマりました*1。…

Twitter の gem でツイートに埋め込まれた URL を t.co 形式で取得する

結論 Tweetオブジェクトの uris メソッドを用いた戻り値*1の要素に対してさらに url メソッドを用いる。 具体例 以下のツイートを例とします。 【イベントレポート】Intel、最大5GHz達成のCore i7-8086Kを6月8日から発売... (71 users) https://t.co/PUbnmOl…

Rails で ES6 のコンパイルが失敗する場合

エラーメッセージ Uglifier::Error: Unexpected token: name (foobar_foobar). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true). 結論 config/environments/production.rb を以下のように書き換えましょう*1。 変更前…

Rails で複数のデータベースを扱う

結論 ツラミがある。 答えはほぼこれかと [Rails]複数のデータベースに接続する 上記からのリンク記事 Rails で複数 DB の migration をする方法の調査と考察 Railsで複数DBとうまく付合おう

Slim で link_to の中に iタグ を埋め込む

結論 安直にこれで。 = link_to 'リンクです!<i class="material-icons">link</i>'.html_safe, 'https://example.com' 備考 ブロックを使うとごちゃごちゃしちゃうので、html_safe メソッドを使っていることを認識した上でこれで良いかと思います。 参考

Rails を起動したら Cannot load `Rails.application.database_configuration`: (NoMethodError) が出てハマった

結論(の一つ) database.yml の中の記述で、コメントの中に erb の書式で記述しているものがあり、さらにその返り値が例外になるものがあるとき標題のエラーが出る。

Rails での <video> タグの書き方

結論 video_tag を使う 具体例 your_video_name.mp4 という動画ファイルを app/assets/videos/your_video_name.mp4 に置いた場合です autoplay と loop をオプションで指定してます <%= video_tag 'your_video_name.mp4', autoplay: true, loop: true %> オ…

RSpecでマイグレーションをスキップさせる方法

結論 spec/rails_helper.rb の ActiveRecord::Migration.maintain_test_schema! をコメントアウトする # ActiveRecord::Migration.maintain_test_schema! 背景 既存のデータベースを読み出し専用で扱う場合にこうしました*1。 *1:レアケースでしょう

RSpec で response.body に JSON が入っていて欲しいけど空っぽで返ってくる場合

結論 render_views を実行する。 例 describe Api::UsersController do render_views describe... 背景 Jbuilder を使って遭遇しました*1。 参考 *1:異論はあると思いますが……

Capistrano で Rails をデプロイする際に db:migrate をしない方法

結論 /Capfile(の一部)を以下のように記述する。 # require 'capistrano/rails' require 'capistrano/bundler' require 'capistrano/rails/assets' # require 'capistrano/rails/migrations'

Rails の production 環境 で unicorn に直アクセスした際に画像が表示されない場合

結論 config/environments/production.rb 内の以下の記述を書き換える。 config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? 上記の記述を以下のようにする。 config.public_file_server.enabled = true

Rails 5.2 の production 環境を Capistrano でデプロイしようとして Missing `secret_key_base`... などと怒られたとき

結論 config/master.key をデプロイする必要がある*1。 解決方法(の一つ) set :linked_files, 'config/master.key' という行をデプロイ設定のファイルに追加して、master.key ファイルを shared/config/master.key の場所に置けばよいです。 備考 環境変数…

Rails 5.2 の credentials.yml.enc に登録してあるデータを呼び出す方法

前提 $ rails credentials:edit で編集した内容が以下のとおりであったとします。 # Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies. secret_key_base: 1234567890 my_api_key: abcdefg foo: bar: hogeh…

Ruby で Timeクラス の日時を UTC で取得する

結論 Timeオブジェクトの utcメソッド を用いる。 実例 Time.now #=> 2018-05-16 17:40:28 +0900 Time.now.utc #=> 2018-05-16 08:41:02 UTC

annotate (gem) を最速で使う

前提 Model はすでに作ってあるものとします 手順 1. Gemfile に書く (省略) gem 'annotate' (省略) 2. bundle install $ bundle install 3. bundle exec annotate $ bundle exec annotate Annotated (3): app/models/user.rb, test/models/user_test.rb…

better_errors が動作しない(表示されない)とき

前提 「localhostからのアクセスのみで動作する問題」ではないです。 結論 ルーティングのエラーでは better_errors は動作しない ルーティングのエラー コントローラのエラー まとめ こんなんでプチハマりをして悲しい。

rbenv コマンドで rbenv: cannot rehash: /home/foobar/.rbenv/shims/.rbenv-shim exists と出たとき

結論 ゴミファイルが残ってしまっているのですっぱり削除しましょう。 $ rm /home/foobar/.rbenv/shims/.rbenv-shim

Rack をバックグランド(daemon)で起動する方法

結論 $ rackup -D

続・Ruby で UTF-8 の文字を Shift JIS の文字に変換する

以前に書いた記事の別解です。

Python における Bundler のような管理ツールである Pipenv について(Bundler との比較)

Pipenv Python でのパッケージ管理には pip が用いられますが、pip の内容や依存性を管理してくれるツールに Pipenv というものがあります。 Pipenv の使い方 Pipenv の使い方については公式ドキュメントが詳しいです(日本語です)。 Pipenv: 人間のためのP…

Ruby で CSV を扱う際に便利な gem である SmarterCSV

SmarterCSV Ruby で CSV を扱う際には標準ライブラリが便利です。 Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について ただ、このライブラリでは面倒な操作を行う際には SmarterCSV という gem もとても便利です。

unicorn を最小限で起動するだけの方法

結論 1. rack と unicorn の gem を入れる $ gem insatll rack $ gem install unicorn 2. Rack の設定ファイル(config.ru)を書く run Rack::Directory.new '.' 3. unicorn を実行する $ unicorn 4. 8080 ポートにアクセスして、実行ディレクトリ一覧が表示…

truncate メソッドは Active Record のメソッドである

結論 $ gem install activerecord して require 'active_record' すればよいです。 ハマりどころ Active Support ではないです*1。 *1:プチハマった

Powered by はてなブログ