エンジニアリングを通して事業を作りたい

React ・Railsの発信が多いです

MENU

テキストエリアにカーソル位置で文字を挿入する

やりたいこと

テキストエリアにカーソル位置で文字を挿入する

実装に関しては参考記事とてもわかり易いので参考にしてください

ポイント

下記の2つのメソッドの使い方を理解する必要がある - selectionStartメソッド - substrメソッド

selectionStartメソッド

選択した要素の開始位置を教えてくれるらしい

syncer.jp

substrメソッド

指定した位置で文字を切り出してくれる

const str = 'Mozilla';

## 開始位置から終了位置を指定すると文字列を返却してくれる
console.log(str.substr(1, 2));
// expected output: "oz"

## 指定した位置以降の文字列を返却してくれる
console.log(str.substr(2));
// expected output: "zilla"

developer.mozilla.org

まとめ

selectionStartメソッドで、入力位置を取得して、 substrメソッドで、カーソルの開始位置を渡してあげれば、任意の場所で文字を分割できるので簡単に文字を挿入できる

参考記事

blog.ver001.com

Ruby 時間の扱い方

Rails 時間の扱いについて

対象の読者

時間を扱うときに、毎回時間に時間に関して調べてしまう人向け

要点

下記の2点だけ理解しておけば今後は迷わなくなる

  1. 時間に関するデータ型は2つ、datetime(年日時間) date型(年日)

月日はDateクラスだけ 年月日時は DateTime Timeだけ

年のありなしは利用用途に応じて選択すれば良い

  1. タイムゾーン

これは、世界の標準の時間(協定世界時)があって、日本はどれくらいの時間差があるのか、 を知って置く必要がみたい 日本は+9時間。

rubyの場合

## JSTはJapan Standard Timeの略らしい
[11] pry(main)> Time.zone.now
=> Sun, 19 Dec 2021 22:28:04 JST +09:00

## zoneをつけない
[12] pry(main)> Time.now
=> 2021-12-19 22:29:43 +0900

zoneをつけると下記の time_zoneのをUTC協定世界時)に変える

    config.time_zone = 'UTC'
    config.active_record.default_timezone = :local


## + 9時間されていない
[1] pry(main)> Time.zone.now
=> Sun, 19 Dec 2021 13:33:21 UTC +00:00 ## 日本時間 22:34

form_forなどの予測変換の仕組み

form_forのパスの予測変換

仕組み

form_for model の modelが、persisted?かどうかで patchにするか postにするかを判定している様子

挙動を確認

formタグmethod="post" の箇所がputなどになるのかと思ったら、 <input type="hidden" name="_method" value="patch"> のhiddenフィールドが入っていた。

f:id:everydayProguramming:20211114225627p:plain

Ruby 時間

時間表示を確認する

zoneをつけると、現地の現在時刻を表示する

## 8時間ずれる
[27] pry(main)> Time.now.to_s
=> "2021-03-22 02:26:49 +0000"


## 現在時刻

[28] pry(main)> Time.zone.now.to_s
=> "2021-03-22 11:26:53 +0900"