Rails関連のことを調べてみた

Rails関連のことを調べてみた

JqueryでRedmineの「wikiページ」をもっと便利に(フィルタリング機能と移動機能)

## JqueryでRedmineの「wikiページ」をもっと便利に(フィルタリング機能と移動機能)

[Redmine Advent Calendar 2023](https://adventar.org/calendars/8974)の13日目の記事として作成しました。

[Redmine Advent Calendar 2023](https://adventar.org/calendars/8974)の11日目の記事として[JqueryでRedmineの「活動ページ」をもっと便利に②(フィルタリング機能と移動機能)](https://qiita.com/yam_asaki/items/2428610fd89bc73ce0ab)を作成しましたが、「活動ページ」だけではなく、「wikiページ」にも「フィルタリング機能と移動機能」を追加できそうな気がしてきましたので、試してみた結果を記事にまとめました。

* * *
### 既存のRedmineで不便なこと、改善したい点

Redmineのwikiページは、マークダウン形式でリッチなテキストを作成できる便利な機能です。ただし、か

元記事を表示

~memo~ Rspecでメソッドの呼び出し回数をテスト時に実際にメソッドも呼び出したい場合

メソッド呼び出し回数をテストしたいけど、モックにしてしまうのではなくて、実際にメソッドも呼び出してその結果も確認したいー!
ということがあり、色々調べたらブロックで呼び出しが出来ました!

“`ruby
before do
org_method = xxx_instance.method(:xxx_method)
allow(xxx_instance).to receive(:xxx_method) { |*args| org_method.call(*args) }
end

it “” do
subject
expect(xxx_instance).to have_received(:xxx_method).once
# expect ~
end
“`

ありがとうブロック

元記事を表示

Rails の状況について振り返り2023年

静岡でフリーランスでWeb開発をしているkazuomatzです。

[静岡 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/shizuoka)の2日目に[「Rails10年選手がGoの勉強会に参戦してきた」](https://qiita.com/kazuomatz/items/ce44c92d2e90a96e9380)というエントリーを投稿して、あれから4年が過ぎました。

Goやるといいいつつ、この4年間でGoの成果物は全くなく、あいかわらずRailsを使っていろいろなWebサービスを開発しています。

当時、Ruby/Railsの状況については、このように書いていました。

## 2019年当時のRuby / Railsの状況

– 2〜3年前に開発したWebサービスがサポート外のRailsで動いている
– とはいえ、Railsのバージョンアップする時間・費用がない
– 慣れ親しんだライブラリーが更新されず、最新のRails環境で使えない

2019年といえば、当時の安定バージョンはRails 5.2系で、R

元記事を表示

デジタルKJ法

## 背景
2022/10に作成したアプリケーションです。
AWSで稼働させていたのですが、維持費高いので現在停止中(2023/8 -)

## アピールポイント
実装例が載っていないドラッグ&ドロップで3層にネストしたカンバン方式を実現したこと(vue.js)
TDD形式で開発したこと

## サービス説明
・作成秘話

・サービスの使用方法

## ソースコード
https://github.com/motoya0118/kj_method

元記事を表示

【Ruby on Rails】アセットパイプラインとはなんぞや(初学者向け)

私は現在、未経験からのエンジニア転職に向けてプログラミングスクールで学習をしている、いしかわと申します。

今回Webアプリケーションの個人開発を進めている際、詰まってしまった**アセットパイプライン**について調べました。
どなたかの参考になれば幸いです。

:::note warn
プログラミング初学者なので、内容に誤り等ある可能性があります
誤りがありましたら教えてくださると幸いです
:::

## アセットパイプラインってなに?
アセットパイプラインは、アプリケーション開発において、JavaScript、CSS、画像などの静的ファイルを効率的に管理、最適化、提供するための仕組みです。主な目的は、ウェブページの読み込み速度を向上させ、ユーザーエクスペリエンスを向上させることです。アセットパイプラインはこれらのファイルを自動的に最小化、結合、キャッシュ管理し、ブラウザへの効率的な提供を補助します。これにより、ウェブアプリケーションのパフォーマンスを向上させることができます。

## 要するになに?
`アセット`:画像やCSSやJavaScriptファイルのリソースのこと
`パイプラ

元記事を表示

Rspecを実行するとin `‘: uninitialized constant NameErrorが発生する

# はじめに

すぐに解決できなかったのでまとめます

# 問題

Rspecを実行すると以下のエラーが出ました

“`
rspec

Bullet settings loaded.
=== Bullet settings loaded. ===
[ddtrace] Unable to patch Datadog::Tracing::Contrib::ActionMailer::Integration (Available?: true, Loaded? true, Compatible? false, Patchable? false)
/apps/spec/controllers/api/internal/v1/dmappings_controller_spec.rb:4:in `‘: uninitialized constant Api::Internal::V1::MappingsController (NameError)
from /usr/local/bundle/gems/rspec-core-2.11.1/lib/rspec/cor

元記事を表示

メール機能の実装 ( ruby on rails )

# まえがき
**[DMM WEBCAMP Advent Calendar 2023](https://qiita.com/advent-calendar/2023/infratop)** 13日目記事です。

DWCメンター・卒業生が記事を投稿しておりますので、是非他の記事もご確認ください!

# 初めに
ここでは,rubyのフレームワークである,ruby on railsを使用して,メールを送信する機能を実装します.

# 1. メイラーの作成
“`shell
$ rails g mailer GroupMailer
## 以下実行ログ
create app/mailers/group_mailer.rb # mailerのコントローラー
create app/mailers/application_mailer.rb # アプリケーションコントローラーと同じようなもの
invoke erb
create app/views/group_mailer # mailerのテンプレートのディレクトリ
create app

元記事を表示

SlackからRailsアプリケーションをAWS ECS Fargateへデプロイする手順

# はじめに

本記事では、Ruby on Railsで構築したアプリケーションをSlack経由でデプロイする方法について紹介します。

従来の方法では、AWSマネジメントコンソールから直接CodeDeployを実行したり、インスタンスにSSHで接続してコマンドを実行する必要がありました。
これは、新しく参加するメンバーやQAエンジニアにとっては複雑で手間のかかる手順でした。

そこで、より簡単かつ効率的にデプロイを行えるよう、Slackを利用したデプロイ方法に構成を変更しました。

はじめに、完成した構成の概要を以下に図示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031807/3110530b-ccdb-4f1e-83d8-e7b3d7b38907.png)

左側から順に、以下のフローが取られます。
1. Slackからチャット形式でデプロイコマンドを投稿
1. AWS Lambdaに適用したSlack boltがデプロイコマンドを処理
1. Fargateのタスク

元記事を表示

railsに合わせ、vscodeの設定の見直し

# はじめに
この記事は2023年度の振り返りです。

rails(API)で新規で構築したので、それに合わせてvscodeの設定も変更した備忘録です。

# rubyのインストール
zennの記事を元にasdfをインストール

https://zenn.dev/youfuku/articles/a8177d420db979

rubyインストールは以下のコマンド
“`
asdf plugin add ruby
asdf install ruby 3.2.2
asdf global ruby 3.2.2
gem update –system
ruby -v
“`

# vscodeの設定(お好みで)

“`bash:コマンド実行
mkdir .vscode
touch .vscode/extensions.json
touch .vscode/settings.json
“`

“`bash:extensions.json
{
“recommendations”: [
// ruby関係
“Shopify.ruby-extensions-pack”, /

元記事を表示

dockerでrails7(API)を構築

# はじめに
この記事は2023年度の振り返りです。

今回、electronアプリ構築に伴いのバックエンドをrails(API)で新規で構築したので、それを備忘録です。

# ディレクトリ構成
“`
compose.yml
api(ディレクトリ)
├ Dockerfile
├ Gemfile
└ Gemfile.lock
“`

# 準備
“`js:ファイル生成
touch compose.yml
mkdir api/
touch api/Dockerfile.dev
touch api/Gemfile
touch api/Gemfile.lock
“`

“`bash:compose.yml
services:
api:
build:
context: ./api
dockerfile: Dockerfile.dev
container_name: api
ports:
– 3000:3000
environment:
RAILS_ENV: development
DB_

元記事を表示

自社開発の実務6ヶ月で行ったタスクと感じたこと

## はじめに
半分未経験から自社開発(社員30人程度)に転職して、早くも6ヶ月が経ちました。
この間にどのようなタスクを担当し、何を感じたのかを共有したいと思います。
業務ではRails、React、Pythonを使用しています。

## タスク内容
環境構築を終えた後、すぐにエラー対応のタスクを任されました。

### エラー対応
初めは簡単なエラーから対応しました。これによって、コードに慣れ、会社のGitの流れを理解することができました。

特に記憶に残っているエラー対応のタスクは以下の2つです。

– 1つ目:RailsのJob周り

「Jobって何?」という感じで、Railsについてはかなり学んでいたものの、Jobは初めての経験でした。エラーが発生していたJobファイルはコードが長く、さらに外部APIの挙動を理解するのに時間がかかりました。

– 2つ目:ReactのDate周り

私たちのサービスは海外にも提供しており、表示時刻を各国のローカル時間に合わせる必要があります。この表示時刻に関するエラーでしたが、原因はライブラリの使い方の誤りでした。最初は軽微なエラーと思いま

元記事を表示

【Rails】文字リテラルの活用法について考えてみた

## はじめに
Ruby技術者認定試験Goldの対策時に存在を知ったものの、~~一体何に使うんだろうこれ~~中々活用法を見出だせずにいた文字リテラルに関して、何か使い道が無いか考えてみたという~~ネタ記事~~雑記となります

## 今回見出だした用途
以下のような挙動を示すために、pメソッド等を埋め込んでの軽い動作確認時などにもしかしたら若干便利かもしれません
~~~
[1] pry(main)> ?A*100
=> “AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”
~~~

“`ruby:pメソッドと組み合わせてみる
p ?🐌*10
“`

~~~text:ターミナル出力
“🐌🐌🐌🐌🐌🐌🐌🐌🐌🐌”
~~~

## 文字リテラルの大まかな挙動
?a → “a”、?あ→”あ”というように、?マークの直後に何か1文字を置くと、その文字を返すという挙動を示す。2文字以上置くと構文エラーとなります

~~~
Running via Sp

元記事を表示

【Rails】既存のRailsアプリをDocker化してみた【Docker + Ruby3.2.2 + Rails7.0.8 + importmap + Node.js 20.2.0 + Tailwind CSS + daisyUI + PostgreSQL】

# はじめに
お疲れさまです!
おおくまです!

今回は、既存の“Railsアプリ“を初めて“Docker化“してみました!
環境としては、
**Docker + Ruby3.2.2 + Rails7.0.8 + importmap + Node.js 20.2.0 + Tailwind CSS + daisyUI + PostgreSQL**
です!

データベースに関しては、ローカルでは“SQLite“、本番では“PostgreSQL“を使っていたので、どちらも“PostgreSQL“を使うように修正します!

また、サーバーを立ち上げる際は、“./bin/dev“のコマンドを使い、
**JSやCSSがビルドされ、なおかつJSやCSSを変更したときに自動的に再ビルドされる**ようにします!
備忘録として残したいと思います!

こちらが“Docker化“する前のリポジトリです!

https://github.com/kumaryoya/kuma_lab_before_docker

# 注意点
:::note warn
私はプログラミング学習中で、初学者

元記事を表示

【Rails】メソッド呼び出し時のバックトレースを確認したい

# はじめに
既存実装の調査にあたり、特定のメソッドがどう利用されているのかを実際に処理を動かしながら確認したかった

# 問題
対象のメソッドが複数箇所から複数回、多階層に渡ってなど想像以上に複雑な呼ばれ方をしており、単純にログから追う形では把握が難しかった
~~なんだか毎回調べている気がするため備忘として~~

# 解決方法
callerメソッドを利用することでバックトレースを確認することが出来る。
“`ruby:app/controllers/test_controller.rb
class TestController < ApplicationController def index test_method @tests = Test.all end private def test_method p '呼ばれたよ' # callerメソッドを利用してバックトレースを出力 puts caller end end ``` ```text:ターミナル出力 "呼ばれたよ" /app/cont

元記事を表示

【Rails7】ActiveStorageの使い方

この記事は [Happiness Chain Advent Calendar 2023](URL “https://adventar.org/calendars/9414”) の 12日目の記事です。
https://adventar.org/calendars/9414

## はじめに
ECサイトを制作する課題に取り組んでいる際にActiveStorageについて調べたのでまとめました。

## ActiveStorageとは
>Active Storageは、ストレージサービスへのファイルのアップロードや、ファイルをActive Recordオブジェクトにアタッチする機能を提供します。
[Active Storage の概要 – Railsガイド](URL “https://railsguides.jp/active_storage_overview.html#has-one-attached”)

## ActiveStorageでできること

#### アップロードされたファイルをアタッチする

アップロードされたファイル

元記事を表示

【Rails】アセットパイプラインについてまとめてみた

# はじめに
**※この記事は「RUNTEQ Advent Calendar 2023」の12日目に参加しています**
12月12日のアドベントカレンダーを担当します、さくちゃんと言います🐱
10月からRUNTEQに入学してはや2ヶ月が経ちました。
カリキュラムを進める中でCSS周りで詰まったので、自分の理解のためにもまとめてみました。
同じように詰まって困っている方がいらっしゃれば理解の助けになりますと幸いです。

:::note warn
注意
この記事は初心者が執筆したものであり、誤りが含まれている可能性があります。もし誤りがあれば、コメントなどでご指摘いただけると助かります🙏
:::

# 目次
[1.アセットパイプラインとは](#1-アセットパイプラインとは)
[2.アセットパイプラインの使い方](#2-アセットパイプラインの使い方)
[3.マニフェストファイルを増やしたい場合](#3-マニフェストファイルを増やしたい場合)

# 1. アセットパイプラインとは
Webサイトを閲覧するとき、ユーザーはWebサーバから取得したHTMLを閲覧しますが、それに付随して配信される

元記事を表示

【Rails・Next.js】devise-token-authによるログイン認証 Part1

# はじめに
`Rails7`・`Next.js13`環境での、`devise-token-auth`によるログイン認証について手順について説明します。
今回は**Part1**ということで、`devise-token-auth`の導入までをまとめてみました。

# 開発環境
– Ruby on Rails APIモード 7.0.8
– Next.js 13.4
– Docker
– MySQL

# devise-token-authとは

`Rails API`モードにおいて、認証機能を持ったモデルを実装できる`gem`です。

https://github.com/lynndylanhurley/devise_token_auth

# devise-token-authの初期設定

“`ruby:Gemfile
gem “devise”
gem “devise-i18n”
gem “devise_token_auth”
“`
`devise`をインストールします。

“`ruby
rails g devise:install
“`

`User`モデルを`devi

元記事を表示

Rails7.1.2でrails g sorcery:installが使えない問題の対処法

## 環境
Rails: 7.1.2
Sorcery: 0.16.5

## 現象
`rails g sorcery:install`を実行すると
`undefined method `timestamped_migrations’ for ActiveRecord::Base:Class (NoMethodError)`が起きてmigrationファイルが作成されない

### ログ
“`
root@0c0d3f43df2c:/app# bin/rails g sorcery:install
create config/initializers/sorcery.rb
generate model User –skip-migration
rails generate model User –skip-migration
invoke active_record
create app/models/user.rb
insert app/models/user.rb
unchanged a

元記事を表示

【Rails】Active Adminの管理画面にVueを導入する方法

:::note info
本記事では、管理画面のUI/UX向上を目的として、RailsのActive AdminにVueを導入する方法について紹介します。
:::

# 注意事項
Rails、およびVueプロジェクト立ち上げ方については本記事では触れません。また、今回はVueのビルドツールとしてViteを採用しています。Webpackでは動作しませんので、ご了承ください。

# 本題
管理画面にVueを適用するためには、最低限HTMLファイル上で以下2つの設定する必要があります。
– VueをマウントするためのHTML要素の用意
– バンドルされたJSファイルとCSSファイルのインポート

しかし、Active AdminはDSL(ドメイン固有言語)であり、通常直接HTMLファイルを編集することはありません。Rubyのコードを基にHTMLが自動生成されます。

ですが、抜け道として[カスタムページ](https://activeadmin.info/10-custom-pages.html)という機能が用意されており、任意のhtmlファイルを表示させることが出来るので、これを使用します

元記事を表示

検索フォームを用いての検索機能の実装

# はじめに
@rinrin_abc1818 です。
今回は自身のアプリケーションに検索機能を実装したのでそちらの保存用に投稿します。

:::note warn
筆者はプログラミング経験半年です。
至らない点があるかと思いますので、その際はご指摘いただけると幸いです。
:::

# 概要
現在Ruby on Railsを用いて投稿型のアプリケーション作成中です。
ユーザー管理機能、投稿機能と終えて、現在は検索機能に取り組んでいます。

今回検索機能として、一覧ページ下部の検索フォームと詳細検索ページの二つを実装したのですが、今回は検索フォームでの検索機能についてまとめました。

# 検索フォームでの検索機能の実装
1.検索フォームについて

検索フォーム自体はform_withを使用します。
“`ruby
<%= form_with(url: search_path, method: :get) do |form| %>
<%= form.text_field :query, placeholder: "キーワードを入力" %>
<%= form.su

元記事を表示

OTHERカテゴリの最新記事