hamayuzinの日記

ITベンチャーに新卒入社し、エンジニアとかデータサイエンティスト、とかやってます。あの時 あれやってたな的な備忘録にできれば。

rails

【ansible/aws】ansibleで aws の ec2上に rails nginx 環境を作成する

リポジトリはこちら github.com やりたいこと railsを使っており awsのec2にdeployしている。 都度都度、サーバー立てて、構成を作るのがめんどくさいので、 ansibleで構築できるようにする。 chefは会社で使用しているが、一から自前で作ると ansibleより疲…

【Rails/sidekiq】Rails5でsidekiqを使ったとかの設定とか

環境:rails5.1.0 rails5.1でsidekiq使ったので、その時の設定とかメモ defaultのretry count設定 Sidekiq.configure_server do |config| config.redis = { url: "#{ENV['REDIS']}" } Sidekiq.default_worker_options['retry'] = 3 end delay methodを使える…

【rails/capistrano】railsでcapistrano deploy内で、secrets.yml or secrets.yml.encの値を使う方法

環境 rails5.1.3 railsでcapistrano deployする時に deploy.rb や、rake タスク内で、 railsのsecrets ファイルを参照したいことがよくある。 1週間くらい うまく使えないか調べてたが 方法があった 方法 deploy.rbの中で、下記を記述するだけ 今回は、ridge…

【rails/capistrano】Railsでcapistrano deployするときに、rake task内やdeploy.rb内でsecrets.yml が使えない問題

環境: rails 5.1 問題 railsでcapistranoでdeployするときに、 rakeタスク (lib/capistrano/tasks/hogehoge.rb とか) deploy.rb 内で、secrets.yml内の変数が使えない問題・・・・ 結論 今のところ dotenvで頑張るくらいしかない。。。 考察 そもそもrails…

【Rails/seed_fu】railsでcapistrano deploy時に、seed fuを毎回自動で走らせたい

環境: rails5.1 ruby 2.4.1 seed fu いいよね。便利で。 capistrano deploy時に、seed fuを毎回自動で走らせたい時があったので その方法をメモ 注意 今回はstaging環境で、初期開発時に、社内テスト触る環境を毎回作るのがまんどくさくて、自動化した あま…

【Rails/secrets】Railsのinitializesでsecrets.ymlにある値を使う方法

環境:Rails5.1 carrierwave 等の initializeで secrets.yml (rails5.1からは、secrets.yml.enc)を使いたい。 そんなときに、いろんな方法があるが、下記みたな方法もある。 今回は、carrierwave の initializeで secrets.ymlから awsの情報取ってくる。 env…

【SSL/Rails】ALBorELB + Nginx + Rails の時に、httpをhttpsにredirectさせるには

ALBorELB + Nginx + Rails 環境で、http で来たのを、httpsにredirectさせたい 2つ方法があるのだが、どちらがいいのやら・・・ ※通信に関しては、下記の場合です。 User -https-> ALB -http-> nginx -http> rails ちなみに下記がポイントとなるみたい HTTP…

【puma/rails/capistrano】pumactl stderr: bash: bundle: command not found とかで、deployできない

nginx puma rails 環境で capistranoでdeployしていると上記エラーでdeployできなかった エラー内容 Command: cd /data/hogehoge/current && ( export RBENV_ROOT="/usr/local/rbenv" RBENV_VERSION="2.4.1" RACK_ENV="staging" ; bundle exec pumactl -S /d…

【rails/puma/nginx/cap】rails5.1をnginx puma環境にcap deployするときの設定

railsをnginx puma環境にcap deployするときの設定を残しておく rubyはrbenvで管理する webpack secrets.yml.key ridgepoleを使用している nginx upstream hogehoge { server unix:/data/hogehoge/shared/tmp/sockets/puma.sock; } geo $allow_ip_flag { def…

【cap | rails】cap deployでtar: This does not look like a tar archiveのとき

rails で capistarnoでのdeployをしているときに DEBUG [b12800e2] fatal: Not a valid object name DEBUG [b12800e2] tar: This does not look like a tar archive DEBUG [b12800e2] tar: Exiting with failure status due to previous errors とかなったら…

【nginx】sitemapをpublic/sitemaps/下に作成して、google先生にクローリングしてもらう

諸々の事情で、sitemapをs3にあげていたんだけど ふと思うことがあって、public下に移した config/sitemap.rb SitemapGenerator::Sitemap.default_host = "https://hogehoge.jp" SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/' SitemapGenerator::S…

【Rails/mail開封率】Railsでメールを送って、開封されたかどうかを判定する

メールを送信して、そのメールが開封されたか見たい場合があると思います。 めっちゃ簡単です。 方法は単純で - メールの末尾に1ピクセルの画像を設置 - この画像が読み込まれたら、開封されたとみなす - 画像読み込み時に、サーバーにIDつきで送ることで、…

【Ruby/tmpfile】ruby で tmpfileで CSVを作成する

Ruby Railsで tmpfileを使ってCSVを使う方法 単純でありきたいだけどいつもわすれる。 今回は、SJISでencordingしつつ アーティスト名と曲名の一覧のCSVを作成する。 (また、所要でFTPに上げる) # tmpfile作成 tf = Tempfile.new(["hogehoge", '.csv'], en…

【Rails/Bootstrap/modal】rails bootstrapのmodalをajaxで操作する

とあるアーティストの曲を取得したい場合を考える 「曲の一覧」というリンクをクリックすると そのアーティストの一覧を取得して、曲の一覧をモーダルで出す。 index.haml:曲の一覧を表示する %a.open_modal{disable: true, id: @artist.id} 曲の一覧 - con…

【rails/heroku/sitemap】heroku環境下のrailsでsitemapを設定する

heroku環境下で動いているrailsは、sitemap_generator gemだけではうまく動かない (作成したファイルを置けないなんだよ。。。) github.com そこで、AWSのS3に置く方法を用いる sitemapの作成 sitemap_generator gemをインストールして rake sitemap:insta…

【Rails/iframe】Railsでiframeのheightを設定する方法

railsでiframeの高さを設定するのが以外とめんどくさかった cssで設定するとよろし レスポンシブにもなる test.css .iframe { width: 100%; height: 500px; } @media screen { .iframe-wrapper { position: relative; width: 100%; } .iframe { position: ab…

【rspec/rails】railsのrspecでhelperをテストする

rspecを使った、helperのテスト方法 基本は他のテストと同じ 記述方法 app/helpers/test_helper.rb module TestHelper def test_method 'テストだよ' end end spec/helpers/test_helper.rb require 'rails_helper' RSpec.describe TestHelper do include Tes…

【heroku/ridgepole】herokuでridgepole/mysqlを動かす

herokuにrailsプロダクトをアップロードするにあたり、 ridgepoleでつまづいた エラー1:[ERROR] No such file or directory @ rb_sysopen - /app/config/database.yml ridgpoleを実行する際、下記コードを実行するのだが heroku run 'bundle exec ridgepole…

【heroku/ridgepole】herokuでridgepole/mysqlを動かす

herokuにrailsプロダクトをアップロードするにあたり、 ridgepoleでつまづいた エラー1:[ERROR] No such file or directory @ rb_sysopen - /app/config/database.yml ridgpoleを実行する際、下記コードを実行するのだが heroku run 'bundle exec ridgepole…

【Rails/パンくず】Railsでパンくずリストを作る簡単な方法

Webサイト作っていると、パンくずリスト作りたくなる。 railsではいい感じにしてくれるgemがある。 github.com gemfileに上記gem追加して、bundle installする。 アーティスト>曲の場合 app/controllers/songs_controller.rb class SongsController < Appli…

【Rails/favicon】railsでロゴとfavicon作って設定する

デザインセンスが無い場合に、ロゴとfaviconをどう作成するのか。 そして、それをどう反映させるのか ロゴの作成 いい感じに素早く作るならここ http://emblemmatic.org/markmaker/#/ 入力してダウンロードするだけ faviconの作成 ここが、全てのタイプのfav…

【Rails/action_cable】action_cableをnginx+unicornで動かす

action cableを本番のnginx uninorn下で動かく設定のメモ 今回はAWSのEC2とLBを使う 前提 昔からあるLoad Balancer(現在はCLB)では動かないので 諦めて、Application Load Balancer(ALB)を使う また、AWS上でredisの設定もしておくこと nginx location /cabl…

ridgepoleでtable追加していく

ridgepoleとは rails g migration して。。。とかめんどくさい場合にとても使える github.com 準備 Gemfileに下記追加 gem 'ridgepole' bundle (install) Schemafileをapp下に作成(ちゃんと先頭は大文字にすること) 音楽系のテーブルの場合下記な感じで記…

rails5で新規プロジェクト作成手順

railsでrails 5で新しくプロジェクトを作成する プロジェクトの準備 mkdir フォルダ名 cd フォルダ名 rbenv local 2.4.0 bundle init vim Gemfile gem 'rails', '~> 5.0', '>= 5.0.2' を追記 bundle install --path vendor/bundle bundle exec rails new . …

bootstrapテンプレートをrailsに組み込んで表示設定

bootstrapテンプレートを購入 デザインが苦手なので、既存のイケてるやつを組み込む。 下記でking uiを購入。 wrapbootstrap.com bootstrapテンプレートをrailsに jsフォルダのファイルを、app/javascripts下に scssフォルダのファイルを、scss/stylesheets…