rails
gemfileにwebpackerとreact追加 webpacker4系だと動かないので、3系にしておく gem 'webpacker', '~> 3.5.5' gem 'webpacker-react' bundle install webpacker install bundle exec rails webpacker:install webpacker reatct install bundle exec bin/rails…
railsでreactを使っていると、2つhelper methodがあることに気づく <%= javascript_pack_tag ‘hello_react’ %> <%= react_component("HelloWorld", { greeting: "Hello" }) %> それぞれの違いがよくわかってなかったけど、変数渡せるかなのかな?? javascr…
とりあえずrailsの場合 uniq制約のあるカラムの値を入れ替えたい 例えば下記の場合 - seqがuniq制約ついている。 accounts テーブル id name seq 1 hoge1 1 2 hoge2 2 3 hoge3 3 id = 1とid = 3のseqを入れ替えたいとき どうしよう Account.find(1).update(s…
rails5環境で、deviseで認証を行っているプロダクトで どうしてもemailとusernameの両方でloginできるようにする必要が出た その時のメモ 公式 devise gem のwikiにまとまっているものがある(なぜか2つ How To: Allow users to sign in using their userna…
Rails5のアプリケーションで、rspecテストを動かしている。 よくある話で、circle ci上で30分も時間がかかっていた。 時間がもったいないので、早くできないか調べた話。 やったことは、そもそも基本なことが多く 今回は、並列実行はしていない。 それでも、…
rails環境でproduction, staging, localでpumaを使っている場合に、capistranoでdeployすると 設定ファイルが勝手に、puma.rbをsharedに作ってくれる。 puma worker killerの設定をしたくて、自前のpuma.rbを 各サーバーに起きたくなった フォルダ切っちゃえ…
auto scale関係で、サーバーのログがすぐ消えてしまう環境で、ログをどこかに置いておきたい場合がある。 今回は、nginxのaccess_logを、fluentdでS3にアップロードし aws athenaで分析できるようにする 環境は、aws ec2のamazon linux上。 【目次】 ec2にfl…
auto scale関係で、サーバーのログがすぐ消えてしまう環境で、ログをどこかに置いておきたい場合がある。 今回は、nginxのaccess_logを、fluentdでS3にアップロードし aws athenaで分析できるようにする 環境は、aws ec2のamazon linux上。 【目次】 ec2にfl…
よく忘れるのでメモ railsのバージョン上げる gem 'rails', '~> 5.1', '>= 5.1.4' railsだけupdate bundle update rails railsのupdate bin/rails app:update
何度かrailsアプリケーションで、secretsからencrypted secretsに移行したので、メモ やること - .env等使わず、encrypted secretsだけで運用する - database.ymlの情報も secretsから読み込むようにする - 諸事の事情で、ENVに入れるようにする encrypted s…
rails の helperの使い所について まとめると view helperにビジネスロジックを入れちゃだめだよね helperは関数みたいな感じ 名字と名前を持つUserモデルがあったときに class User < ApplicationRecord end create_table "users" do |t| t.integer "first_…
リポジトリはこちら github.com やりたいこと railsを使っており awsのec2にdeployしている。 都度都度、サーバー立てて、構成を作るのがめんどくさいので、 ansibleで構築できるようにする。 chefは会社で使用しているが、一から自前で作ると ansibleより疲…
環境: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を使える…
環境 rails5.1.3 railsでcapistrano deployする時に deploy.rb や、rake タスク内で、 railsのsecrets ファイルを参照したいことがよくある。 1週間くらい うまく使えないか調べてたが 方法があった 方法 deploy.rbの中で、下記を記述するだけ 今回は、ridge…
環境: rails 5.1 問題 railsでcapistranoでdeployするときに、 rakeタスク (lib/capistrano/tasks/hogehoge.rb とか) deploy.rb 内で、secrets.yml内の変数が使えない問題・・・・ 結論 今のところ dotenvで頑張るくらいしかない。。。 考察 そもそもrails…
環境: rails5.1 ruby 2.4.1 seed fu いいよね。便利で。 capistrano deploy時に、seed fuを毎回自動で走らせたい時があったので その方法をメモ 注意 今回はstaging環境で、初期開発時に、社内テスト触る環境を毎回作るのがまんどくさくて、自動化した あま…
環境:Rails5.1 carrierwave 等の initializeで secrets.yml (rails5.1からは、secrets.yml.enc)を使いたい。 そんなときに、いろんな方法があるが、下記みたな方法もある。 今回は、carrierwave の initializeで secrets.ymlから awsの情報取ってくる。 env…
ALBorELB + Nginx + Rails 環境で、http で来たのを、httpsにredirectさせたい 2つ方法があるのだが、どちらがいいのやら・・・ ※通信に関しては、下記の場合です。 User -https-> ALB -http-> nginx -http> rails ちなみに下記がポイントとなるみたい HTTP…
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を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…
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 とかなったら…
諸々の事情で、sitemapをs3にあげていたんだけど ふと思うことがあって、public下に移した config/sitemap.rb SitemapGenerator::Sitemap.default_host = "https://hogehoge.jp" SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/' SitemapGenerator::S…
メールを送信して、そのメールが開封されたか見たい場合があると思います。 めっちゃ簡単です。 方法は単純で - メールの末尾に1ピクセルの画像を設置 - この画像が読み込まれたら、開封されたとみなす - 画像読み込み時に、サーバーにIDつきで送ることで、…
Ruby Railsで tmpfileを使ってCSVを使う方法 単純でありきたいだけどいつもわすれる。 今回は、SJISでencordingしつつ アーティスト名と曲名の一覧のCSVを作成する。 (また、所要でFTPに上げる) # tmpfile作成 tf = Tempfile.new(["hogehoge", '.csv'], en…
とあるアーティストの曲を取得したい場合を考える 「曲の一覧」というリンクをクリックすると そのアーティストの一覧を取得して、曲の一覧をモーダルで出す。 index.haml:曲の一覧を表示する %a.open_modal{disable: true, id: @artist.id} 曲の一覧 - con…
heroku環境下で動いているrailsは、sitemap_generator gemだけではうまく動かない (作成したファイルを置けないなんだよ。。。) github.com そこで、AWSのS3に置く方法を用いる sitemapの作成 sitemap_generator gemをインストールして rake sitemap:insta…
railsでiframeの高さを設定するのが以外とめんどくさかった cssで設定するとよろし レスポンシブにもなる test.css .iframe { width: 100%; height: 500px; } @media screen { .iframe-wrapper { position: relative; width: 100%; } .iframe { position: ab…
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にrailsプロダクトをアップロードするにあたり、 ridgepoleでつまづいた エラー1:[ERROR] No such file or directory @ rb_sysopen - /app/config/database.yml ridgpoleを実行する際、下記コードを実行するのだが heroku run 'bundle exec ridgepole…
herokuにrailsプロダクトをアップロードするにあたり、 ridgepoleでつまづいた エラー1:[ERROR] No such file or directory @ rb_sysopen - /app/config/database.yml ridgpoleを実行する際、下記コードを実行するのだが heroku run 'bundle exec ridgepole…