- 1. 満経過月数を計算するロジック(Ruby)
- 2. has_one型のデータを表示させたくて
- 3. RubyでPayPayのAPIを呼んでみる
- 4. 【Ruby on Rails】Time.currentメソッドを使って簡単に時間表示をする方法
- 5. [Rails]redirect_toとrenderの違いについて
- 6. ◤画像アップロード◢ CarrierWaveとMiniMagickで画像アップロード機能を実装(具体例付き)
- 7. 【小ネタ】Ruby で new するたびにクラスインスタンス変数をインクリメントして、インスタンス変数にぶち込む
- 8. [シリーズ] Ruby Elasticsearch 7.x client の使用例
- 9. [030] ドキュメントを全件(11万件超)取得する by Ruby elasticsearch 7.14
- 10. [017] ドキュメントの検索結果と該当件数の表示をする by Ruby elasticsearch 7.14
- 11. 【個人開発】家の中にときどき出る不快な虫を検索するサービス「むしめがね」をリリースしました。
- 12. [016] ドキュメントの複数フィールドを使った AND による絞り込み検索 by Ruby elasticsearch 7.14
- 13. [015] ドキュメントの AND による絞り込み検索 by Ruby elasticsearch 7.14
- 14. [014] ドキュメントの検索 by Ruby elasticsearch 7.14
- 15. [010] ドキュメントを 10件だけ取得する by Ruby elasticsearch 7.14
- 16. [004] マッピングの取得 by Ruby elasticsearch 7.14
- 17. [001] クラスタ状態の取得 by Ruby elasticsearch 7.14
- 18. [000] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編
- 19. [備忘録] Docker上の Ubuntu 18.04 に rbenv を導入する
- 20. [シリーズ 全2回] docker-composeを活用して即座に Ruby 3.0 slim-buster を立てる
満経過月数を計算するロジック(Ruby)
経過月数(満月)を計算するロジックについて解説します。(あまり記事がなかった)
具体的に言うと以下のようなロジック。start:2021年01月15日
end:2021年02月14日
→経過月数0を返すstart:2021年01月15日
end:2021年02月15日
→経過月数1を返すstart:2021年01月15日
end:2022年03月15日
→経過月数14を返す## コード
IN:開始日(start),終了日(end) :data型
OUT:満経過月数“`ruby
def calculation_diff_months(start,end)
(end.year – start.year) * 12 + end.month – start.month – (end.day >= start.day ? 0 : 1)
end
“`## コードの解説
■年の計算
(end.year – start.year) * 12
→ 年の差分を求めて月変換■月の計算
end.month – start.month
→ そのまま月の差分を求める
ここ
has_one型のデータを表示させたくて
こんにちは!!
ユーザー登録が完了したら、ライブ情報を
投稿できるアプリを作成中です。
今回はhas_one型のデータの表示方法について
自分のメモ用としてアウトプットしていきたいです。# アソシエーション
作成中のアプリには3つのエンティティが存在します。
deviseを使って実装したユーザー登録をするadmin_usersテーブル、
ユーザーの詳細なプロフィールを保存するadmin_profilesテーブル、
ライブ情報を投稿できるeventsテーブルが存在します。3つのテーブルのアソシエーションは以下の通りです。
Admin_user has_one admin_profiles.
Admin_user has_many events.
Admin_profile belongs_to admin_user.
Event belongs_to admin_user.ユーザー登録はウィザード形式で保存する為、
AdminProfileモデルに“`rb
belongs_to :admin_user, optional: true
has_one_attached
RubyでPayPayのAPIを呼んでみる
# 目的
PayPayのAPIをRubyで使いたいです。しかし公式のSDKはPython, Node, PHP, JavaしかないのでREST APIを叩くことにします。リファレンスは[こちら](https://www.paypay.ne.jp/opa/doc/jp/v1.0/webcashier)です。APIキーの取得などは[Developerサイト](https://developer.paypay.ne.jp/)で確認してください。# プログラム
プログラムはNodeのSDKのコードを参考に作りました。リファレンスもかなり詳細に書いてあるので助かります。APIはQRコードの作成だけ実装してあります。“`ruby:Gemfile
# frozen_string_literal: truesource “https://rubygems.org”
git_source(:github) {|repo_name| “https://github.com/#{repo_name}” }
gem ‘httpclient’
“`“`ruby:paypay.rb
re
【Ruby on Rails】Time.currentメソッドを使って簡単に時間表示をする方法
#対象者
* 時間の表示方法を知りたい方
#目的
* Time.currentメソッドを使って時間を表示する
#実際の手順と実例
###1.結論**Time.current**メソッドを使えば簡単に時間が表示できます。
rails cで確認すると““
$ rails c
Running via Spring preloader in process 6425
Loading development environment (Rails 5.2.6)
[1] pry(main)> Time.current
=> Sat, 14 Aug 2021 23:20:51 UTC +00:00
[2] pry(main)>
““上記のように今日の時間が取得できます。
###2.応用編
“`
Time.current.all_month #今月
Time.current.all_week #今週
Time.current.all_day #今日
“`#参照
>[時刻や日付を扱うメソッドの基本情報まとめ【Ruby】【Rails】](https:
[Rails]redirect_toとrenderの違いについて
# はじめに
本記事では、redirectとrenderの違いについて記述しています。
私自身何気なく、コントローラーなどに記述しておりましたが、
改めて振り返りアウトプットしたいと思います。# redirectとrenderの違い
“`
redirect_to
↓
ルーティング
↓
コントローラー
↓
ビュー“`
“`
render
↓
ビュー
“`随分あっさり書きましたが、このような違いです。
### redirect_to
redirect_toは新しくリクエストが送られてきた時と同じ流れになります。
そのため、同様に`ルーティング→コントローラー→ビュー`の流れになります。### render
renderは、特にリクエストをされることがなく、そのまま直接ビューにいきます。`redirect_toはコントローラーへ!` `renderはビューへ!`ということですね。
## 例え
“`ruby
class MessagesController < ApplicationController . . 省略 . . def creat
◤画像アップロード◢ CarrierWaveとMiniMagickで画像アップロード機能を実装(具体例付き)
![スクリーンショット 2021-08-12 9.38.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89868/fc499218-4bbe-4499-62eb-4c0be00062c2.png)
# 0. はじめに
Railsで画像アップロードといえば`CarrierWave`と`MiniMagick`が鉄板ですね。
数年前、プログラミングスクールに通っていた際にはあまり理解していなかった画像アップロード機能。
超久々に触ったので備忘録として残します?`ActiveStorage`という選択肢もありますが、あまり優位性がなさそうだったので採用を見送りました。
*参考: [ActiveStorage vs CarrierWave](https://qiita.com/w5966qzh/items/510d4c2a3829524b2e64)*# 1. 作業環境
“`yaml
OS: macOS Big Sur 11.5.1
Ruby: 3.0.2
Rails: 6.1.4
【小ネタ】Ruby で new するたびにクラスインスタンス変数をインクリメントして、インスタンス変数にぶち込む
“`Ruby
class BankAccount
@current_account_number = 0class << self attr_reader :current_account_number end def self.new(name) super(name, @current_account_number += 1) end attr_accessor :name attr_reader :account_number def initialize(name, account_number) @account_number = account_number @name = name end end ```
[シリーズ] Ruby Elasticsearch 7.x client の使用例
# はじめに
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.調査状況に応じて都度更新する予定です
|コンテンツ|掲載時期|
|:–|:–|
|[[000] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編](https://qiita.com/robozushi10/items/8bd936fe6fbab080149e)|2021/08|
|[[001] クラスタ状態の取得 by Ruby elasticsearch 7.14](https://qiita.com/robozushi10/items/c8ae660cb6ae47317c59)|2021/08|
|[[004] マッピングの取得 by Ruby elasticsearch 7.14](https://qiita.com/robozush
[030] ドキュメントを全件(11万件超)取得する by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」から「全件(11万件超)」を取得する.
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana (7.14)
を使用した[[00] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編](https://qiita.com/robozushi10/items/8bd936fe6fbab080149e)
# 参考にした情報
|URL|
|:–|
|https://zen
[017] ドキュメントの検索結果と該当件数の表示をする by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# [017] ドキュメントの検索結果と該当件数の表示をする by Ruby elasticsearch 7.14
# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」から次の「**ドキュメントの検索**」と「**件数表示**」をする.
以下2つを全て満たすドキュメントを抽出し、件数を表示させる.
“`
・フィルード「text_entry」の値に「ACT」という単語を含む
・フィルード「text_entry」の値に「V」という単語を含む
“`ただし、ここでも Elasticsearch デフォルト挙動の 10件しか取り出さないものとする.
# 検証環境
下記の要領で検証用データ「Sha
【個人開発】家の中にときどき出る不快な虫を検索するサービス「むしめがね」をリリースしました。
### はじめに
はじめまして。森と申します。この度、個人サービス「むしめがね」をリリースしました!
サービスに関して記事にしましたので、ぜひご一読いただけたら嬉しいです!アプリのURL:[https://mushimegane.fun/](https://mushimegane.fun/)
※記事内でゴキブリの画像がでてきます。
### サービス概要
「むしめがね」は、家の中にときどき出て来る不快な虫を検索できるサービスです。全体を通してシンプルなデザインにしています。
トップページには興味をそそる一文を入れました。[![Image from Gyazo](https://i.gyazo.com/c26f6f97c70920898bc80fa758839c93.png)](https://gyazo.com/c26f6f97c70920898bc80fa758839c93)
検索するにはワード検索と画像検索があります。
ヘッダーのドロップダウンから「画像検索」ボタンをクリックするとモーダルがでてきます。
そして検索したい虫の画像を入れて検索します。
[![
[016] ドキュメントの複数フィールドを使った AND による絞り込み検索 by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」から次の「**ドキュメントの検索**」を行う.
以下3つを全て満たすドキュメントを抽出する.
“`
・フィルード「text_entry」の値に「ACT」という単語を含む
・フィルード「text_entry」の値に「V」という単語を含む
・フィルード「play_name」の値に「Cymbeline」という単語を含む
“`ただし、ここでも Elasticsearch デフォルト挙動の 10件しか取り出さないものとする.
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana
[015] ドキュメントの AND による絞り込み検索 by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」から次の「**ドキュメントの検索**」を行う.
・**フィルード「text_entry」の値に「ACT」かつ「V」という “単語” を含むドキュメントを取り出す.**ただし、ここでも Elasticsearch デフォルト挙動の 10件しか取り出さないものとする.
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana (7.14)
を使用した[[00] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作し
[014] ドキュメントの検索 by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」から次の「**ドキュメントの検索**」を行う.
・**フィルード「text_entry」の値に「ACT」という文字を含むドキュメントを取り出す.**ただし、ここでも Elasticsearch デフォルト挙動の 10件しか取り出さないものとする.
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana (7.14)
を使用した[[00] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる …
[010] ドキュメントを 10件だけ取得する by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」から「**ドキュメント10件のみの取得**」を行う.[^1]
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana (7.14)
を使用した[[00] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編](https://qiita.com/robozushi10/items/8bd936fe6fbab080149e)
# 参考にした情報
|URL|
|:–|
|h
[004] マッピングの取得 by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回はインデックス「shakespeare」に対する「**マッピングの取得**」を行う.
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana (7.14)
を使用した[[000] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編](https://qiita.com/robozushi10/items/8bd936fe6fbab080149e)
# 参考にした情報
|URL|
|:–|
|https://
[001] クラスタ状態の取得 by Ruby elasticsearch 7.14
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
また、比較のために、Kibana DevTool でのクエリも合せて記しておく.今回は「クラスタ状態の取得」を行う.
# 検証環境
下記の要領で検証用データ「Shakespeare」が登録された
・Elasticsearch + Kibana (7.14)
を使用した[[00] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編](https://qiita.com/robozushi10/items/8bd936fe6fbab080149e)
# 参考にした情報
|URL|
|:–|
|https://www.elastic.co/guide/en/ela
[000] Ruby の elasticsearch client パッケージを使って Elasticsearch 7.14 を操作してみる … 検証環境構築編
|シリーズトップページ|
|:–|
|https://qiita.com/robozushi10/items/2c8b6951ee342b013974|# 概要
Ruby の Elasticsearch Client を使って Elasticsearch 7.14 で REST API の操作する.
# 検証環境の構築手順
## 1. docker-compose を使ってローカルマシン上に Elasticsearch を立ち上げる
Elasticsearch と Kibana のポート番号がやや特殊である.
“`bash
$ git clone -b Qiita-02 git@github.com:robozushi10/qiita-efk.git
$ cd qiita-efk
$ docker-compose build –no-cache
$ docker-compose up -d
“`引用元:
[[02] EFK (Elasticsearch + Fluentd + Kibana) の構築 … Dockerコンテナの立ち上げ(説明なし)](ht
[備忘録] Docker上の Ubuntu 18.04 に rbenv を導入する
# はじめに
2021年6月だったと思うが、
突然 rbenv でエラーが発生して動かないという問題があり調査をした.[^1]このとき物理ホストを汚すわけにはいかないので、
Docker 上の Ubuntu 18.04 に rbenv を導入してデバッグをした.通常、**Docker 上に rbenv をインストールするような面倒なことはしないはず** [^2]
なので、参考記録として書き出しておく.今回は rbenv を使って「2.7.3」「3.0.1」の 2つを導入する.
なお、Dockerfile での「rbenv install バージョン」に導入したいバージョンを書けば
異なるバージョンも導入できるはずである.# 参考サイト
|URL|
|:–|
|https://ccbaxy.xyz/blog/2020/02/06/docker3/|
|https://github.com/rbenv/ruby-build/wiki|
|https://takatoshiono.hatenablog.com/entry/2015/01/09/012040|
|h
[シリーズ 全2回] docker-composeを活用して即座に Ruby 3.0 slim-buster を立てる
次の記録である.
限られた物理PC の中で、複数の Ruby バージョンをインストールして
プログラムを作成することになった.
ただし、物理PC を汚染させるわけにもいかないので Docker を活用した.
(操作しやすいように docker-compose を導入した)|コンテンツ|掲載時期|
|:–|:–|
|[[01] docker-composeを活用して即座に Ruby 3.0 slim-buster を立てる (簡易手順のみ)](https://qiita.com/robozushi10/items/6bcbc01ecb792f2ddb06)|2021/08|
|[[02] docker-composeを活用して即座に Ruby 3.0 slim-buster を立てる (説明あり)](https://qiita.com/robozushi10/items/2cb56482f9c8ff604746)|2021/08|