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

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

【Rails】rake taskの使い方

## rake taskとは?
実行したい処理を記述しておき、`rake task`コマンドを利用して実行できます。
複雑な処理をタスク化しておくことで、簡潔なコマンドで実行できるため便利です。

## rake taskの作成方法

以下のコマンドを実行して、taskファイルを生成します。
“`terminal
$ rails g task
“`

“`ruby

namespace :test_task do
desc ‘テストタスク’ # 実行したいタスクの説明
task :nothing do
end
end

“`

DBにデータを登録するなどの場合は、`:environment`と記述します。

“`ruby
namespace :insert_user do
desc ‘ユーザー登録タスク’
task aaa :environment do
User.create(name: ‘花子’, age: 18)
end
“`

## 参考文献

https://guides.rubyonrails.org/

元記事を表示

データベースカラムのデータ型一覧

データベースにおけるカラムのデータ型の備忘録

## データ型一覧

| データ型 | 説明 |
| ———— | ———————————- |
| `string` | 短い文字列 |
| `text` | 長い文字列 |
| `integer` | 整数(例えば1や100など)   |
| `float` | 小数点を含む数字(例えば1.23) |
| `decimal` | 小数点を含む数字(小数点の桁数指定可能) |
| `datetime` | 日付と時間(例:2024-10-05 12:30:00) |
| `timestamp` | 特定の瞬間を表

元記事を表示

🐈画面上で猫が邪魔してくださる Rails gem を作ってみた(役に立ちません)

こんにちは、とまだです。

**猫ってかわいいですよね🐈**

私は猫を飼っています。

猫を飼っていると、目の前に猫が出てきて作業の邪魔をされることがありますが、それはそれでご褒美なのです。

ただ、猫アレルギーの人や、猫を飼うことができない環境にいる人にとっては、猫と触れ合う機会がなかなかありません。

そこで私は考えました。

> **誰もが猫に邪魔される幸せを味わえる世界を作りたい!**

この Gem は、そんな世界征服を目指す Ruby on Rails アプリ用の Gem です。

何を言っているか分からないかもしれませんが、**こういうこと**です👇

![画面収録-2024-10-04-19.45.20.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364501/3ea1765e-93f2-9c3c-a9ec-26572e9bc655.gif)

これであなたの作業も捗ること間違いなしですね!!!!

休日に暇すぎてこの gem をご存知 [RubyGems.org](https:/

元記事を表示

rails エラーメッセージの日本語化

# エラーメッセージの日本語化

### 日本語の言語設定
application.rbを編集して、言語設定を変更
:jaは日本語設定にするという意味

~~~config/application.rb
# 中略
module Pictweet
class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 7.0 # 日本語の言語設定 config.i18n.default_locale = :ja # 省略 end end ~~~ ### Gemfileを編集 日本語に対応する"rails-i18n"というGemを導入 rails-i18n このGemの導入によって、下記サイトに記述してある日本語を使えるようになるみたいです。 [rails-i18nに登録されている日本語](https://github.com

元記事を表示

【Raills】閲覧数のカウント

### 要件
1. **各投稿(Book)が表示された回数(閲覧数)をカウントする**
2. **閲覧数を一覧ページ(indexページ)に表示する**

### 実装の全体的な流れ

1. **Bookモデルに閲覧数を保存するカラムを追加**
2. **`show` ページが表示されるたびに閲覧数をカウントする処理を追加**
3. **`index` ページで各Bookの閲覧数を表示**

### 1. **Bookモデルに閲覧数を保存するカラムを追加**

まず、各投稿の閲覧数を保存するために、`Book` モデルに **`view_count`** という新しいカラムを追加します。このカラムに、各投稿が表示された回数を保存していきます。

#### マイグレーションの作成

新しいカラムを追加するために、「マイグレーション」というデータベースの変更を反映するスクリプトを作成します。

ターミナルで以下のコマンドを実行します。

“`bash
rails generate migration AddViewCountToBooks view_count:int

元記事を表示

【Rails】DM機能の実装※自己学習用

### 要件

1. **ユーザー同士が1対1のチャットルームでDM(ダイレクトメッセージ)を送れるようにする**
2. **相互フォローしているユーザーのみチャットルームにアクセス可能にする**
3. **相互フォローしていないユーザーにはチャットルームのリンクを表示しない**

### 実装の全体的な流れ

1. **チャットルームとダイレクトメッセージのモデルを作成**
2. **チャットルームの作成時に、重複しないように処理を追加**
3. **相互フォローしていない場合、チャットルームのリンクを表示しない**
4. **チャットルーム内でメッセージを送る処理を追加**
5. **エラー修正と要件変更の対応**

### 1. **チャットルームとダイレクトメッセージのモデルを作成**

まず、チャットルームとダイレクトメッセージを管理するためのモデルを作成します。モデルとは、データベースのテーブルとプログラムの橋渡しをする部分です。

#### モデルの作成

以下のコマンドを実行して、チャットルームとメッセージのモデルを作成します。

“`bash

元記事を表示

【Rails】いいね数順に投稿を表示する機能の実装※自己学習

### 1. **Favorite(いいね)の数によって表示順を変更する実装手順**

### 実装の全体的な流れ
1. **過去1週間での「いいね」数を数える仕組みを作る**
2. **「いいね」数が多い順に投稿を並び替える**
3. **並び替えた投稿を画面に表示する**

### 1. **過去1週間の「いいね」数を数える**

まず、投稿が「いいね」された数を数える必要があります。そのために、`Book` モデルに「この投稿に何回「いいね」がされたか?」を調べるメソッドを追加します。

#### `Book` モデルにスコープを追加

`Book` モデルとは、投稿に関する情報を管理する部分です。ここに「過去1週間のいいねの数を数える」ための仕組み(スコープ)を追加します。

“`ruby
class Book < ApplicationRecord has_many :favorites # 各Bookに対する「いいね」を管理する関連 # 過去1週間の「いいね」数が多い順にBookを並び替えるメソッド scope :popular_in_last

元記事を表示

gemを使う?自分で書く?Starを確認しよう

# 今回はgem導入時に自分が注意すべきだと思う点について話したいと思います。
それはズバリ
### Starの数
です

# gemって何?

:::note info
gemとは、RailsやRubyのアプリケーションに追加の機能を提供するために使用されます。例えば、認証システム、ファイルアップロード、テストフレームワーク、データベース接続などの機能を提供するものがあります。
:::

# 具体例

例えば、画像についてバリデーション処理を行いたい場合、
active_strage_validationを利用してもいいですが、このgemのstarを見ると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878564/5755fbfb-707d-2fe6-3de1-c46668bee443.png)
1kしかstarがついていないことがわかります。

なので、このgemを入れるよりは、
“`
class Article < ApplicationRecord has_one_a

元記事を表示

RSpecでHTTP通信を記録するVCRの簡単な設定を考える

## はじめに

[VCR]という gem を使うと、[RSpec]のテスト実行中に API を直接叩かず、代わりに過去のリクエスト・レスポンスの記録(カセットと呼ばれるYAMLファイル)を繰り返し使用することができます。

[VCR]には色んな設定項目がありますが、個人的には結局はシンプルな使い方しかしないことが多いので、[VCR]の基本機能を簡単に使える設定を考えてみました。

[VCR]の細かい機能については[公式ドキュメント][VCR]やネット上のブログ記事をご参照ください。

https://benoittgt.github.io/vcr

https://www.rubydoc.info/github/vcr/vcr

[RSpec]: https://rspec.info/
[RSpec – Hooks]: https://rspec.info/documentation/3.13/rspec-core/RSpec/Core/Hooks.html
[RSpec – Metadata]: https://rspec.info/documentation/3.13/rspec

元記事を表示

Dockerを使用したRubyOnRailsとNext.jsの開発環境構築ガイド

# はじめに

Webアプリケーションの開発環境を構築する際に、Dockerを使用することは効果的な方法の1つです。特に、Rails APIモードとNext.jsを組み合わせて開発する場合、Dockerを利用することで環境の構築と管理を簡素化できます。この記事では、Dockerを使用してRails APIモードとNext.jsの開発環境を構築する手順を紹介します。

# 技術スタックの概要

### Rails APIモード
RailsのAPIモードは、フロントエンドとバックエンドを分離して開発する場合に便利な機能です。APIモードを使用することで、データの提供と処理を行うバックエンドのみを構築できます

### Next.js
Next.jsは、Reactアプリケーションの開発をサポートするフレームワークです。サーバーサイドレンダリングや静的サイト生成などの機能を提供し、パフォーマンスの向上やSEO対策に役立ちます

### Docker
Dockerは、コンテナ仮想化技術を使用してアプリケーションを環境に依存せずに実行することができるツールです。開発、テスト、本番環境など、異なる環

元記事を表示

【Rails】Cloud9でRailsアプリケーションを作成・設定する手順

# 開発環境
Rails version: 6.1.7.8
Ruby version: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]​

# 概要

– Railsアプリケーションの作成手順と基本構造
– 主要ディレクトリ(app, bin, config, db, public, test)の役割
– Gemとは何か、Gemfileの役割について説明
– 画面表示に必要なファイル(routes.rb, controllers, views)の機能
– アプリケーション作成からサーバー起動までの手順を詳細
– エラー対処法(プラグイン追加、ホスト設定)について

# ① アプリケーションの作成手順
以下のコマンドでRailsアプリケーションを作成します。
“`ruby:ターミナル
rails new 任意のアプリケーション名
“`
`※environment下で行うこと`
ターミナル上に**create**という文字がたくさん表示されれば、正常にアプリケーションが作成されています。

もし以下

元記事を表示

userモデル単体テストとdeviseによるバリデーション

# Userのモデル単体テストの実装

~~~app/models/user.rbuser.rb
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :tweets has_many :comments validates :nickname, presence: true, length: { maximum: 6 } end ~~~ バリデーションは「属性の値がDBに保存されてもよいかチェックを行う条件」を設定するものです。 presenceは、指定した属性の値の有無をチェックし

元記事を表示

【備忘録】Apple M1のRailsをインストールしてもrailsコマンドが使えない問題への対処法

## はじめに
私は、RailsをApple M1で動かすためにインストールしようとしましたが、いくつかのエラーに遭遇しました。その解決方法を備忘録として残します。

## 環境
– Apple M1
– macOS Venture: 13.2.1
– Homebrew: 4.0.19
– vi: version 9.0.981

## どんな症状??
私は、rbenvにてRubyのバージョン管理をしたいと考えました。
“`zsh
$ gem install rails
Successfully installed rails-7.0.5
Parsing documentation for rails-7.0.5
Done installing documentation for rails after 0 seconds
1 gem installed
“`
“`zsh
$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

元記事を表示

【Rails】非同期通信化※復習用

## 1. **いいね機能の非同期通信化の手順**

### ステップ1: **コントローラの設定**
`FavoritesController`に非同期通信をサポートするための`create`と`destroy`アクションを設定します。

“`ruby
class FavoritesController < ApplicationController before_action :authenticate_user! def create @book = Book.find(params[:book_id]) current_user.favorites.create(book_id: @book.id) respond_to do |format| format.js # create.js.erbを呼び出す end end def destroy @book = Book.find(params[:book_id]) current_user.favorites.find_by(b

元記事を表示

raisのパラメーターについて

## paramsについて
コントローラー内でリクエストから送信されたパラメータを扱うためのメソッドです。これを使うことで、フォームから送信されたデータやURLのクエリパラメータを簡単に取得できます。
### 基本的な使い方

1. **フォームデータの取得**:
フォームから送信されたデータは`params`を使って取得できます。例えば、以下のようなフォームがあります。

~~~html




~~~
このフォームが送信されると、コントローラーでは以下のようにデータを取得できます。

~~~ruby
defcreate
@question = Question.new(params[:question])
if @question.save

元記事を表示

【Rails】検索機能の実装※自己振り返り用

### ステップ 1: `searches` コントローラの作成

まず、検索専用のコントローラを作成し、ユーザーや投稿(Book)の検索ロジックを実装します。

“`bash
rails g controller searches
“`

– `rails g controller searches`: 検索機能用のコントローラを作成します。このコントローラで検索処理を行います。

#### コントローラの中身 (`app/controllers/searches_controller.rb`)

“`ruby
class SearchesController < ApplicationController before_action :authenticate_user! # ログインしているユーザーのみが検索可能にする def search @model = params[:model] # 検索対象("user" か "book")を取得するための変数 @search_method = params[:search_method] # 検

元記事を表示

Railsプロジェクトのライセンスを調査した

「Railsプロジェクトで使用しているOSSライセンスを出力したい」という要件があったので、OSSライセンスを [pivotal/LicenseFinder](https://github.com/pivotal/LicenseFinder) を使用して調べてみました。

https://qiita.com/mtsuge/items/9e08ff2570effcf6d47c

この記事を参考にしましたが、時間が経ってオプションが変わっていました。

## `pivotal/LicenseFinder` を使う

### インストール

無駄な依存関係が増えてしまうため、あまり好ましくないけど `Gemfile` に以下を追加して `bundle install` を実行します。

“`ruby
gem ‘license_finder’, :group => :development
“`

`Gemfile` より直接インストールするこちらのほうが良いみたいです。

“`bash
$ gem install license_finder
“`

とりあえずライセンスの情報を出力

元記事を表示

RailsでのTailwindの画像path

##### 今回私は、わからずに苦戦していたのでメモ✍️をします。
画像ファイルは、 ***app/assets/images/test.jpg*** においています。

**tailwind.config.js**
“`
module.exports = {
theme: {
extend: {},
backgroundImage: {
“top-bg”: “url(‘./app/assets/images/test.jpg’)”
},
},
};
“`
**app/views/home/index.html.erb**
“`

“`
backgroundImageに画像ファイルがある ***url(‘./app/assets/images/test.jpg’)*** にしたら
localサーバーで確認しても画像が表示されませんでした。

#### 出来なかった理由
###### Railsのアセットパイプライン
R

元記事を表示

【Ruby on Rails】caxlsx_railsを使用して簡単にExcel出力!

# はじめに

こんにちは、未経験エンジニア3年目の嶋田です。

今回は、RailsアプリケーションでExcelファイル(`.xlsx`形式)を生成するためのGem
**caxlsx_rails**についてご紹介します。

Webサービスの管理画面によくある「ダウンロード」機能ですが、
皆さんも見たことあるのではないでしょうか??

![csvダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524119/71ddf3b8-dd50-1c9f-a211-a03fe0edf160.png)

CSVでの実装が多かったのですが、
初めてExcel形式での出力を実装する機会がありました。

調べてみると…
> 昨今ではダウンロード機能を廃止するサイトが増加傾向にある

そうです。([参考](https://pig-data.jp/blog_news/blog/scraping-crawling/csv/))

そのため、今回はExcel出力をするGemである**caxlsx_rails**を利

元記事を表示

Deviseを利用した会員機能の実装手順

初めまして、これから自分が学習した内容をまとめていこうと思い、投稿を始めました。
まず最初は、Deviseを利用した会員機能の実装です。

# 1.deviseをインストールする
Gemfileに`devise`を追加し、インストールします。
“`:Gemfile
gem ‘devise’
“`
次に以下のコマンドで `bundle install`を実行します。
“`ruby:bash
bundle install
“`
# 2.deviseのセットアップ
`devise`をrailsアプリにセットアップします。
“`:bash
rails g devise:install
“`
*g はgenerateのg です。
このコマンドは、deviseの設定ファイルを作成し、初期設定を行います。
# 3.Flashメッセージの設定
`devise`では、フラッシュメッセージがログインやサインアップの成功/失敗時に表示されます。以下をの記述をapplication.html.erbに追加します。
“`erb:app/views/layout/application.html.e

元記事を表示

OTHERカテゴリの最新記事