- 1. NEW
- 1.0.1. gemを使う?自分で書く?Starを確認しよう
- 1.0.2. RSpecでHTTP通信を記録するVCRの簡単な設定を考える
- 1.0.3. 【Rails】Cloud9でRailsアプリケーションを作成・設定する手順
- 1.0.4. install rbenv/ruby systemwide on RockyLinux 8.8
- 1.0.5. 【備忘録】Apple M1のRailsをインストールしてもrailsコマンドが使えない問題への対処法
- 1.0.6. コマンドの中でRubyを実行する
- 1.0.7. Railsプロジェクトのライセンスを調査した
- 1.0.8. Deviseを利用した会員機能の実装手順
- 1.0.9. Railsバージョンアップで `URI.encode` と `URI.escape` が使えなくなった問題とその解決策
- 1.0.10. Railsのバージョンアップで `add_template_helper(ApplicationHelper)` エラー発生! `helper ApplicationHelper` に変更する理由と対処法
- 1.0.11. 【Rails】ルーティングの”collection”と”member”の違い
- 1.0.12. Raspberry Pi で Gem sqlite3 をインストールしようとするとエラーになる
- 1.0.13. 【個人開発】Railsで経営・起業につかえるフレームワーク分析アプリを作成!
- 1.0.14. [備忘録][Ruby]each_sliceメソッドによる分割件数について
- 1.0.15. 質問アプリの作成 #1
【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/
【Ruby】array.map(&:method)の記法の仕組みメモ
## 概要
`array.map { |a| a.method }` を `array.map(&:method)` と略記できるやつの仕組みを何度調べても忘れるのでメモ。
これに関する記事は他にも多くありますが、自分の中で咀嚼したつもりのものを書き残します。## 本文
### 前提
`to_proc` を持つオブジェクトの頭に `&` をつけてメソッドの引数として渡すと、 `to_proc` が実行されProcオブジェクトとなり、メソッドにブロックとして渡される。https://docs.ruby-lang.org/ja/latest/doc/spec=2fcall.html#block
また、Symbolクラスのインスタンスメソッド `to_proc` は、シンボルと同名のメソッドを呼び出し、第1引数をそのメソッドのレシーバとする。
https://docs.ruby-lang.org/ja/latest/class/Symbol.html#I_TO_PROC
### つまり
“`ruby
# これの &:upcase 部分は
[‘hoge’, ‘fuga’].m
🐈画面上で猫が邪魔してくださる 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:/
【Ruby】後置ifは便利だけど計画的に使おう
# はじめに
本日は後置ifについての記事を書きたいと思います。
後置ifとは簡潔で読みやすいコードを書くための構文で、条件分岐を一行で書けるようにします。
主に、シンプルな条件を確認して動作を行いたいときや、コードの可読性を高めたいときに使用します。
後置ifの基本構文は`処理 if 条件`になります## 後置ifのメリット
例えばこれは普通の`if`文です
“`ruby:if.rb
if is_holiday
puts “Enjoy your day!”
end
“`
一方後置ifを使用すると
“`ruby:back_if.rb
puts “Enjoy your day!” if is_holiday
“`とこんな感じで1行で済ませることができるのです。
メリットをまとめると
* コードが簡潔になる
* 可読性の向上
* 無駄なインデントを減らす
* 軽量な条件処理に向いている## 後置ifのデメリット
上記を見る限りだとメリットのほうが多いからこれからは後置ifを多用しようと思いますよね。
しかし後置ifを使うことで可読性が逆に落ちてしまう例もあるのです
質問アプリの作成 #2
# ビューを作る
ターミナルでrails s を入力。
ポートからURLで飛びrails起動されたのを確認したら、
さらにroutesで設定した questions/new をURLに付け足す。試しにviews > questions > new.html.erbを新規ファイルで作り、
H1タグでNEWを記述。
サーバーを再度確認、「NEW」の記述が確認できたら次のステップへQuestionsControllerを開き空のquestionモデルのインスタンスを使うため
準備する。ここでは、newメソッドが呼ばれます。
“`
#質問の作成
def new
@question = Question.new
end“`
Question.newでQuestionのインスタンスを新規に作成し変数@questionに入れます。
次にView側を編集
(ホームビルダーと呼ばれるrails機能を利用します)“`
NEW
<%= form_with model:@question do |form| %>
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
【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**という文字がたくさん表示されれば、正常にアプリケーションが作成されています。
もし以下
install rbenv/ruby systemwide on RockyLinux 8.8
# TL;DR
* require libyaml-devel
# requirement
“`
dnf install –enablerepo=powertools libyaml-devel
dnf install git
“`https://tklife.exblog.jp/30483319/
RHEL 9系では別のリポジトリらしい
https://www.hsbt.org/diary/20230126.html
# rbenv
“`
git clone https://github.com/rbenv/rbenv.git ~/.rbenvecho ‘eval “$(~/.rbenv/bin/rbenv init – bash)”‘ >> ~/.bashrc
exec -l $SHELL
“`## check
“`
rbenv -v
rbenv 1.3.0-4-gc335ab8
“`# ruby-build
“`
git clone https://github.com/rbenv/ruby-build.git “$(rbenv
【備忘録】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:
コマンドの中でRubyを実行する
## 環境
Ruby2.6## 内容
Rubyでちょっとした処理を実行したい場合、テキストファイルにRubyのコードを記述して、コマンドから呼び出して実行することになります。
因みに次のコードは1から20までに出てくる素数を出力するコードです。
“`hoge.rb
def hoge
require ‘prime’
puts Integer.each_prime(20).to_a
end
hoge
“`
コマンドからファイルを呼び出して実行します。“`
$ruby ./hoge.rb
“`Rubyのコードを別ファイルに作成するのではなく、Rubyコマンドの中にコードを直接埋め込んで実行することができます。
やり方その1
“`
$ruby -e ‘require “prime”; puts Integer.each_prime(20).to_a’
“`やり方その2
“`
$ruby -rprime -e ‘puts Integer.each_prime(20).to_a’
“`
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
“`とりあえずライセンスの情報を出力
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
Railsバージョンアップで `URI.encode` と `URI.escape` が使えなくなった問題とその解決策
Railsアプリをバージョンアップした際に、`URI.encode` や `URI.escape` が非推奨・廃止されるため、エンコードの方法を変更する必要が出てきます。この問題とその解決策について、コード例を交えて解説します。
—
## 問題の発生
Railsをバージョンアップした後、次のようなコードで問題が発生することがあります。
“`ruby
address = “#{params[:address_line1]}#{params[:city]}#{params[:address_line2]}”
target_uri = URI.escape(“https://api.example.com/location?address=#{address}&key=#{API_KEY}”)
“`このコードは `URI.escape` の廃止によりエラーが発生します。
—
## 解決策: `URI.encode_www_form_component` を使用
すべてのURLをエンコードするのではなく、パラメータ部分のみをエンコードします。
### 変更
Railsのバージョンアップで `add_template_helper(ApplicationHelper)` エラー発生! `helper ApplicationHelper` に変更する理由と対処法
Railsアプリをバージョンアップした際に、`add_template_helper(ApplicationHelper)` を使用しているとエラーが発生することがあります。このエラーを解消するために、 `helper ApplicationHelper` へ変更する方法について解説します。
—
## エラーの概要
Railsのバージョンをアップデートした後、コントローラやビューでヘルパーを使おうとしたときに、以下のようなエラーが発生する場合があります。
“`
NoMethodError: undefined method `add_template_helper’ for ApplicationController:Class
“`このエラーは、Railsのバージョン変更に伴い、`add_template_helper` の使用方法が非推奨、または変更されたことが原因です。特に、`ApplicationHelper` をコントローラで使いたいときにこのエラーが見られます。
—
## 解決策: `helper ApplicationHelper` を使う
【Rails】ルーティングの”collection”と”member”の違い
こんにちは!
初Railsの記事です:thumbsup_tone1:今回は、ルーティングの member と collection の違いについて書きます!
![banner.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524120/83de7afc-66c8-8880-ad67-fd6231afad24.png)
# 違い
* member を使った場合は id が付与される
* collection を使った場合は id が付与されない# 前提
例として UsersController があり、hoge というメソッドを実行します。# member
“`
resources :users do
member do
get ‘hoge’
end
end
“`
上記のように member を使用すると以下のルーティングが設定されます。
“`
/users/:id/hoge
“`# collection
“`
resources :users do
Raspberry Pi で Gem sqlite3 をインストールしようとするとエラーになる
## 問題
Raspberry Pi で [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) を bundle install し、いざ使用しようとすると以下のエラーが発生する。
“`
cannot load such file — sqlite3/sqlite3_native (LoadError)
“`## 解決方法
コンパイル済みのものをインストールするのではなく、自分でコンパイルするようにする。
“`shell-session
$ bundle config set force_ruby_platform true
“`## バージョン情報
“`shell-session
$ cat /proc/cpuinfo | sed -n -e ‘s/Model\s*:\s*\(\w\+\)/\1/p’
Raspberry Pi 3 Model B Rev 1.2$ cat /etc/debian_version
10.13$ ruby -v
ruby 3.3.4 (2024-07-09
【個人開発】Railsで経営・起業につかえるフレームワーク分析アプリを作成!
この度、実は前から考えていた、フレームワークアプリを作りました!
以前、↓Nolaというサービスを見かけたときに、小説→経営や起業に置き換えたエディターツールって便利なのでは?と思ったのがきっかけです。https://nola-novel.com/
## アプリ紹介
そこで今回、経営・起業フレームワーク分析ができるアプリ、Compassbookを作成しました。
PEST分析、3C分析、STP分析、4P分析、ビジネスモデルキャンバスの記入が可能です。サイトはこちら
URL:https://compassbook.onrender.com/閲覧用アカウント
ID:test@test.co.jp
Pass:111111※自由に書き込みや登録いただいて大丈夫です。その際はご自身でアカウントを作成ください。
※ポートフォリオの役割があるため、場合によっては投稿を削除する可能性がございます。予めご了承ください。Githubはこちら
https://github.com/yusukesugahara/compassbook## サービス概要
経営や起業のためのフレームワー
[備忘録][Ruby]each_sliceメソッドによる分割件数について
:::note
`each_slice`メソッドを使用して大量のデータを扱う時の、分割件数について学びがあったのでメモ
:::|| メリット | デメリット |
|:———–|:————|:————|
| 分割件数を増やす | 1度に処理するデータ量が減るので、DB負荷が軽減|処理時間が遅くなる|
| 分割件数を減らす |クエリの回数が減り、効率的にデータを取得し処理時間の短縮が期待できる|あまりに件数が多いと、メモリ負荷が高まる|https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/each_slice.html
質問アプリの作成 #1
# 質問アプリの作成!
デザインは考慮しないものとする。## できること
・質問の投稿
・質問の編集
・質問の更新
・質問の削除## 開発環境
・クラウドサービス(codespaces)
・Rudy 3.0.2
・rails7アプリ新規作成
“`
rails new qanda_7.0.0
“`作成したフォルダに移動
“`
cd qanda_7.0.0
“`
questionsコントローラーの作成
“`
rails g controller questions
“`先にアクションの定義を記述
“`
class QuestionsController < ApplicationController #質問一覧表示 def index end #質問詳細ページ表示 def show end #質問の作成 def new end #質問の登録 def create end #質問の編集 def edit end #質問の