スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス5期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

【Rails】enum型でカラム名を定義すると、scopeが自動生成される

enum型でカラム名を定義すると、scopeが自動生成されます。 enumで定義したカラム名はそのまま、 モデル.enumで定義したカラム名 のようにする事ができます。 なので、 enumで定義したカラム名のscopeは自分で定義する必要はありませんし、 当然、whereを使…

【Rails】ファイルの作成日時順に、ファイルを並び替える File.mtime()

File.mtime() でファイルの作成日時が取れるので、それをsort_byで並び替える。

【Ruby】URL文字列から、相対パスを取得する手順

まず URI.parse でURI::Generic のサブクラスのインスタンスを生成します。 相対パスは、.path で取得出来ます。 自分はパスの頭の / が不要だったので、delete(‘/‘)で削除します。 これでURLから欲しい文字列を取り出す事ができました。

【Rails】viewでaタグを削除したい sanitize gem

sanitize gemを使います。 Sanitize.cleanメソッドに、オプションを渡します。 第二引数elementsの引数に、残したいタグを配列で指定することで、指定したタグ以外を削除出来ます。 # @hoge.textにはhtml文字列が入っているとします。 Sanitize.clean(@hoge.…

【Rails】配列でクエリパラメータを渡したい to_query

Railsで、 クエリパラメータを配列として渡したい場合は、 to_queryメソッドを使います。 `値.to_query(キー)` という風に使うと、 うまくクエリパラメータの形に整形してくれます。

【git revert】マージ済みのコミットを取り消ししたい

手順 1、 git logなどで、取り消ししたいコミットNoを特定する。 2、 revert実行。 $ git revert 対象のコミットNo 以下のエラーが返って来たら、 error: commit 16f46cdcdcf2c16136eb501d7d757f28eaeba60f is a merge but no -m option was given. fatal: r…

【safari】safariでclickイベントが動かないのは、非対応であるWebSpeechAPIのコードが残っていることが原因だった

音声合成を使うため、WebSpeechAPIを使っていました。 が、safariは非対応だった。 WebSpeechAPI Web Speech API - Web API | MDN そのため、safariの場合は Amazon Polly を使って音声合成を実現しようとしました。 Amazon Polly https://docs.aws.amazon.c…

【Rails】SymbolとStringの違いとenumについて

シンボル オブジェクトidが一意に振られる。一つのシンボルは常に同一のオブジェクト。なのでメモリの節約になる。 変更が加えられない(イミュータブル) class Symbol (Ruby 3.0.0 リファレンスマニュアル) ・文字列 オブジェクトidが毎回変わる。別のオブジ…

【Rails】audio_tagのsrc属性の値に + を含めるとエラーになる

調査していくと、srcの値に + が含まれているとエラーになることがわかった。 DateTimeにはタイムゾーンの +09:00 に +が含まれているのでエラーになる。 Dateには + が含まれていないので実行出来る。

【table】table要素のtdやth内テキストの周囲に、余白を持たせる方法

【table】table要素のtdやth内テキストの周囲に、余白を持たせる方法 【table】table要素のtdやth内テキストの周囲に、余白を持たせる方法 手順 手順 下記の記事を参考にしました。 文字の周りはある程度の余白(padding)をとる事です。 テキストの周りに余白…

【Git】GitHubのgui上での、複数ファイルのコンフリクト解消について

複数ファイルにコンフリクトが起きていると、gui上では全てのファイルのコンフリクトを解消しないと、その解消は保存されない。 1つのファイルだけ解消して、 Mark Resolvedボタン を押しても、1つのファイルのコンフリクト解消は保存されていない。 Commit …

【Railsチュートリアルでエラーが出た時のチェックリスト】

1. 文章を読み飛ばしていないか? 2. 応用問題を解いたままの状態で進めていないか? 3. サーバーを再起動 4. コマンド実行しているディレクトリ、gitのブランチは正しいか? 5. ifのend抜け、インデントの位置 6. その日は諦めて潔く寝る 7. こまめにコミット…

【Rails】htmlタグを削除する strip_tagsメソッド

ApplicationController.helpers.strip_tags(対象のhtml) を使えばOKです。

【Ruby】論理演算子 &&= について

【Ruby】論理演算子 &&= について 左辺がtrueと見なされる値なら、右辺を評価し、結果を左辺に代入するという挙動をします。

【Vue.js】computedとmoment.jsで日時をフォーマットする

手順 1、computedに、moment.jsでフォーマットする処理を記述 // component.vue computed: { // 開始日時 startParse: function() { return moment(this.task.start).format('YYYY-MM-DDThh:mm') }, // 終了日時 endParse: function() { return moment(this.…