Rails
こんちには。opiyoです。 railsでデータをsaveしたりupdateしたりするとupdated_atが更新されるけど、親データのupdated_atを更新したり、更新しないようにするにはどうすればいいの!? こんな悩みを解決していきたいと思います。 結論から言ってしまうと …
こんにちは。opiyoです。 今回はRailsを使った時分秒を操り方をの紹介です。 ある一定の時間内のデータを取得したい! 時分秒だけじゃなくて年月日はできるの? 「1ヶ月」 = 「月初 ~ 月末」ってのはよく使うから知っているのですが、「時間」 = 「12時00分0…
こんにちは。opiyoです。 今回はJSONデータを作る際に便利な「gem jbuilder」についてです。 RailsはAPIに徹する事が世の中的に多くなってきてると思うので、JSONに接する機会は多いと思います。 そんな時に便利なjbuilderの使い方について、実際のプログラ…
Dockerを使ってRuby on Railsの開発環境を作成する方法の紹介です。 こちら公式の手順になるのですが、Rubyのバージョンが2.5だったので今回2.6でチャレンジしてみます。 docs.docker.com 基本は公式通りで問題ないですが、2.6でrails newするとRails6系がイ…
Ruby on Rails + Vue.jsで最初の画面「Hello Vue!」が表示されるまでの方法を紹介します。 実行環境 Ruby: 2.6.3 Rails: 6.0.0 yarn: 1.19.1 vue: 3.12.0 rails newまで 先ずはrails単体で「Hello World」が表示されるまでです。 $ mkdir vue-app $ cd vue-a…
Ruby on RailsでEnum = 列挙型を使う時に色々と便利なGemenumerizeの紹介です。 enumは例えば、ユーザーの性別とか、ステータスとか複数の項目を持つデータを扱う際に使います。 Railsだけでもenumを扱うことは出来るのですが、enumerizeを使うと簡単に日本…
Ruby on Railsで開発中に送ったメールを確認する Gem letter_opener_webの紹介です。 環境設定 Gemfileにletter_opener_webを追加する。 # Gemfile group :development do gem 'letter_opener_web' end 開発環境モードの設定ファイルにメール送信の設定をし…
Ruby on RailsのStrong Parametersについての紹介です。 ユーザー登録やお問い合わせなど、ユーザーがフォームに入力したデータのみ登録・更新できるようにするための機能です。 webの場合は開発者ツールなどを使って存在しないformを自由に作ったり出来てし…
Ruby on Railsで「パンくずリスト」を簡単に実現してくれるGembreadcrumbs_on_railsを使って「構造化データ」を実現する方法を紹介します。 構造化データとは!? 構造化データとはGoogle公式の情報の記載を引用します。 Google 検索では、ページのコンテン…
Ruby on Railsで「パンくずリスト」を生成するGembreadcrumbs_on_railsの紹介です。 導入方法 Gemfileにbreadcrumbs_on_railsを追加してbundle installします。 # Gemfile gem 'breadcrumbs_on_rails' パンくずリストを登録する(Controller) パンくずリス…
Ruby on Railsでよく使われるPostgreSQLをローカル(Mac)環境にインストールする方法です。 PostgreSQLのインストール $ brew install postgresql PostgreSQLのバージョンチェック $ psql --version psql (PostgreSQL) 9.6.2 PostgreSQLサーバの起動 $ post…
Ruby on Railsで生のSQLを実行する方法です。 ちょっと複雑なデータを取得したい時に、Active Recordだと逆に面倒だったりして生のSQLを描きたい場合があります。 その場合はfind_by_sqlを使います。 基本的な使い方 使い方はシンプルでModel.find_by_sql(sq…
Ruby on Railsでデータベースを操作するのに使うActive Record。 今回は、saveやupdateを使って実現するオブジェクトの保存方法紹介します。 今回利用するテーブル情報はこちらです。 基本的な使い方 保存する役割を果たすメソッドは以下の通りいっぱいあり…
Ruby on Railsでデータベースを操作するのに使うActive Record。 今回は、destroyやdeleteを使って実現するオブジェクトの削除方法紹介します。 今回利用するテーブル情報はこちらです。 今回使うテーブルのER図 基本的なこと オブジェクトを削除するメソッ…
Ruby on Railsでデータベースを操作するのに使うActive Record。 今回は、newやbuildを使って実現するオブジェクトの作り方を紹介します。 基本的なこと newやbuildは基本的に出来ることは一緒です。 厳密には違うのかもしれませんが、「new build 違い」で…
Ruby on Railsではデータベースとの様々なやりとりをActice Recordという仕組みを使って行いますが、よく使われる方法をざっとご紹介です。 今回利用するテーブル情報はこちらです。 Table "public.hoges" Column | Type | Collation | Nullable | Default -…
Ruby on Railsで保存や変更した時の値を取得したり、値が変更されたのかどうかをチェックする方法を紹介します。 変更のチェック(changed?) モデル全体で変更があるかどうかをチェックするにはchanged?を使います。 > hoge = Hoge.last Hoge Load (0.3ms) …
Ruby on Railsで英語を簡単に日本語表示してくれるGem「i18n」の紹介です。 事前準備 Railsアプリ全体の言語設定を日本語に変更します。 # config/application.rb config.i18n.default_locale = :ja Gemfileにrails-i18nを設定してbundle installします。 # …
Ruby on Railsで登録機能や更新機能を作る際に必要なform。 このformの作成を簡単に作成することが出来る便利なライブラリ「simple_form gem」のご紹介。 simple_formで作った問い合わせform画面のイメージ インストール手順 Gemfileに追加して、bundle inst…
データを登録する際に利用するフォームですが、条件に応じて必須だったり制限したりする仕組みを「バリデーション」といいます。 Ruby on Railsでは以下のような感じで設定することができます。 class Hoge < ApplicationRecord validates :name, presence: …
調整さんのようなカレンダーを作ると表示する内容が固定されていればtableタグなどで出来るが、 DBに保存された内容だとどうhtmlを組めば分からない。 調整さんってご存知ですか? 調整さん - 簡単スケジュール調整、出欠管理ツール ちょっとした打合せとか…
オブジェクトをnewしたけど、条件に応じて内容が空になることがわかった。 この状態でsaveしちゃうとvalidationに引っかかるしオブジェクトを削除したい。 が、DB保存前なのでActiveRecordで削除する感じでdeleteはできないしどうすれば... そんな疑問に今日…
今日やりたかったのは、新規作成時と編集時で同一カラムなんだけどセレクトタグに表示する内容を変えたいってのがあった。 編集の場合は色々な条件があって変更されると困るってのがあったので、悩んでたんだけど結構簡単に出来たのでその方法を紹介します。…
回答期限に応じて何かを処理するって時に営業日を考慮したい時があり色々調べているとスンバラシイですね。 business_timeっていうgemがあったので簡単な使い方を紹介します! 導入方法 使い方 日付の操作 営業日チェック 注意点 Timezoneはきちんと設定しま…
Ruby on Railsでデータベースにデータが存在するかどうかチェックしたい場合があると思います。 そもそもデータがあるかどうか知りたい時 ログインしたユーザーが管理者ユーザーがどうかをチェックしたい そんな時はModel.exists?()を使いましょうって話です…
あるデータベースのカラムを追加したくと色々やっていたら、今どんな状況なのか良く分からなくなったので整理する。 migration実行状況確認 $ rake db:migrate:status Running via Spring preloader in process 1796 database: hogehoge Status Migration ID…
何が起こってるのか herokuではどうやら、 sqlite3は使えないそうなので本番とローカル環境でDBを切り分けるようGemfileを更新しました。 # Gemfile source 'https://rubygems.org' gem 'rails', '~> 5.0.0', '>= 5.0.0.1' gem 'pg' gem 'puma', '~> 3.0' ge…
Railsアプリを作る時、SNSのシェアボタンを設置するにはどうすれば良いのでしょうか? Rails social-share-button gemのイメージ画像 今回たまたまsocial-share-buttonというgemを見つけたので、それを使ってみました。 https://github.com/huacnlee/social-…
cssに設定する値を動的に変更するとかできないのか?なんて思ったことないでしょうか? 例えば、 ユーザー毎にボタンの色や背景色などを変更したい! 条件に応じてbackgroundに画像を入れたり、差し替えたりしたい! 結論から言うとできます! ただcssでは出…
Ruby on Railsを使って非同期で処理する方法 ActiveJobについてです。 ざっくり手順 generateでjobファイルを作成する jobをキューに登録する jobを実行する generateでjobファイルを作成する コマンドで $ bundle exec rails g job hoge_job 手作業で jobs/…