taglib-rubyを使用してオーディオファイルの長さを取得する方法
Rubyでオーディオファイルを扱うGemはたくさんありますが、今回はmp3とwavの両方を扱う必要があったのでtaglib-rubyを使うことにしました。
ひとつのGemでmp3とwavの両方を使えるのは大変ありがたいです。
最後にHerokuにデプロイする方法とConoHa VPS (CentOS 7.7)に ...
「NoMethodError: undefined method `active_storage' for ...」の原因と対処
事象
RSpecでテストしようとしたところ、以下のエラーが発生。
$ rspec
An error occurred while loading ./spec/models/user_spec.rb.
Failure/Error: require File.expand_path('../config ...
SSL通信時にセッションを暗号化する方法
以前、「Let's Encryptを使用したWebサーバーのSSL化」という記事を書きました。
実はこの設定だけでは不十分だったので、今回はその続きを書きます。
セッションが保存されない
このポートフォリオサイトでは管理者のみがログインできる機能を持っています。
Railsチュートリアルを見ながら作った自前の ...
コンタクトフォームに確認チェックボックスを追加する方法
今回はコンタクトフォームに確認チェックボックスを追加する方法を記載します。
送信ボタンの上あたりにある「上記の内容で送信します。よろしければチェックを入れてください。」というやつです。
コンタクトフォームだけでなく、ユーザー登録画面の「規約に同意する。」といったチェックボックスにも使えます。
Model
cl ...
Active Storageの保存先にGCSを使う場合のstrorage.ymlとCredentialsの設定方法
GCSからダウンロードしたサービスアカウントキーをRailsのconfig/storage.ymlに設定します。
その際、最低限、private_key_idとprivate_keyはCredentialsに登録し呼び出すように設定する必要があるのですが、private_keyには改行(\n)が入っていて、普通 ...
applicatioin.jsにJavaScriptのコードを書くときの注意点
jQueryを使ってページにちょっとした動きをつけたいと思い、初めはindex.html.erbのようなビューに直接JavaScriptのコードを書いていました。
しかし、JavaScriptのコードが各ビューに散らばっているのはドライなコードとは言えません。特にまったく同じ処理を各ビューに書くのはメンテナンス ...
ローカルで行った変更がサーバーに反映されない事象の対処法【Capistrano+Unicorn】
変更が反映されない
ローカルでRailsアプリの変更を行った後、サーバーへ反映させるためデプロイを行いました。
$ bundle exec cap production deploy無事、エラーが出ることもなくデプロイが完了。
しかし、いざWebサイトにアクセスしてみても変更が反映されていませんでした。
Un ...
Railsアプリのデプロイまとめ【Capistrano+Unicorn+Nginx】
はじめに
当ポートフォリオサイトをVPSサーバーにデプロイしました。念願の独自ドメインも取得し、感無量という感じです。
Herokuにデプロイしていたときとは違い、様々なエラーが頻発してかなり大変な道のりではありましたが、一皮むけて成長できたと思っています。
手順は下記ページを参考にさせてもらいました。
...
RailsでのAjax処理
Ajax on jQuery
jQueryでAjax処理を書くと以下のような感じになります。
<input type="textbox" id="sample" />
<script>
$(function() {
$('#sample').on('change', function() ...
画像への直リンクを貼る方法【Rails】
小ネタですが備忘を兼ねて。
画像への直リンクを貼る方法
<%= link_to asset_url(画像のパス) do %>
<%= image_tag 画像のパス %>
<% end %>まずは結論から。以下、補足情報。
アセットパイプライン
そもそもRailsで普通に画像を貼る場合でも、通常はi ...
坂井 光太郎 / Sakai Kotaro
Ruby on Rails を中心とした Web アプリ開発全般に関する技術情報をまとめています。業務に関するご依頼・ご相談、当サイトに対するご感想やメッセージはコンタクトフォームからお気軽にお問い合わせください。