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

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

Facebook 広告アカウントを購入する USA

Facebook 広告アカウントを購入する
一部の企業は、広告にもっとお金をかけるために Facebook 広告アカウントを購入します。Facebook では、1 つのアカウントで使える金額に制限があります。Facebook 広告アカウントを購入すれば、より多くの広告を掲載でき、
おそらく売上も増えるでしょう。Facebook 広告アカウントを購入すると、良い履歴を持つアカウントも手に入るかもしれません。これにより、広告の成果が向上する可能性があります。
Facebook は、長い間存在し、ルールを守っているアカウントを好みます。複数のアカウントを持つことは、1 つのアカウントに問題がある場合にも役立ちます。
Facebook 広告アカウントを購入すれば、1 つのアカウントが機能しなくなっても、すべての広告を失うことはありません。ですから、Facebook 広告アカウントを購入しましょう。

当社のサービス品質

• 100% 満足保証
• 超高速配信
• 米国アカウント (必要な場合) (米国 IP 付き)
• すべての国に対応
• Facebook 広告マネージャー アカウント

元記事を表示

何重にも条件分岐する話

条件は3つ。
1,未ログインユーザーは編集、更新、削除ページに入るとログインページにリダイレクトされて
2,編集、更新、削除ページにいくとトップページに遷移されて
3,ログイン済みであっても商品出品者(@item.user)ではない場合はトップページにリダイレクトされる

“`
Class ItemsController < ApplicationController before_action :authenticate_user!, only: [:edit, :update, :destroy] # 未ログインユーザーはログインページにリダイレクト before_action :move_to_index, only: {:edit :update, :destroy] 3アクションはmove_to_index実行 中略 def move_to_index return unless current_user == @item.user # ログイン済みでも出品者でない場合はトップページにリダイレクト redirect_to root_path e

元記事を表示

RUBYのアクセサメソッドについて

![スクリーンショット 2024-11-01 231941.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921010/9f5ba6e3-9c20-c475-b868-e60cb35ee14a.png)
RUBYではsetterメソッドとgetterメソッドを上記のように書くことができる。
![スクリーンショット 2024-11-01 232517.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921010/ebdd5b2b-11e7-10e9-4146-97ba6b045efb.png)
上記のようにattr_accessorメソッドを使うことによりsetterメソッドとgetterメソッドを使うと長くなってしまうコードを同じ意味で上記のようなスマートなコードで書くことができます。
![スクリーンショット 2024-11-01 233120.png](https://qiita-image-store.s3.ap-

元記事を表示

最新のRubyをインストールする

## はじめに

長年、Ruby2.6を使っていたが、最新版のRubyをインストールする必要性がでてきました。ついでにrbenvも最新版にしました。

## 環境

Ubuntu20.4

## rbenvのバージョンアップ

現状のrbenvのバージョンを確認します。

“`
$rbenv -v
rbenv 1.2.0-87-ge8b7a27
“`

rbenvが入っているディレクトリ(ルート)を調べます。

“`
$rbenv root
“`

rbenvのルートが分かったら、そこに移動してGitから最新版を取得します。

“`
$cd “$(rbenv root)”
$git pull
“`

rbenvのバージョンが最新になったことを確認します。

“`
$rbenv -v
rbenv 1.2.0-91-gc3ba994
“`

ついでに、ruby-buildのルートに移動して、ruby-buildも最新版を取得します。

“`
$cd “$(rbenv root)”/plugins/ruby-build
$git pull
“`

ruby-buildが最

元記事を表示

【超初心者ミス】ハッシュを設定してる際に『no implicit conversion of Symbol into Integer』がでてしまった

## 状況
hashを設定している際に上記のエラーが出てしまった。
`no implicit conversion of Symbol into Integer` を調べても原因がでてくるが解決法がピンとこない(試したが上手く行かない)

## 解決策
`return`で返り値設定しているか確認
下記の場合はhash値を指定しているメソッドの最後に **`hash`** をつけたら解決した
~~~ruby
def edit_hash
hash = {}

#メソッド内容

hash # ここの宣言が必要 ”return hash”を省略した記述
end
~~~

## 何故だったのか
Rubyの返り値には`最後に評価された値が返る`という暗黙のルールがある。
そのため返り値を”return”で指定しているのだが、上のコードのように省略して書かれているので初学者は忘れやすい。(忘れた)

~~~ ruby
# retrunを設定していない
def edit_hash
hash = {}
hash[:name] = ‘鈴木’
hash[:age] = 24
h

元記事を表示

Rubyの記述ルール(個人メモ)

## はじめに
これまでの個人アプリ開発ではJavaScript、TypeScript、Pythonなどを使ってきました。今回初めてRubyを使うため学習を始めました。
Ruby開発者としての一歩として、Ruby独自の記述ルールやクラスの定義の仕方を理解しようと思い、個人メモを作成することにしました。もし誤り等がありましたら、ご指摘いただけると幸いです。

## null値
Rubyではnull値の場合、「nil」(ニル)と表示されます。

## ハッシュ
JavaScriptでいうところのオブジェクトと同じで、キーとバリューのペアで格納し、キーを指定してバリューを取得するデータ構造です。
また、キーは文字列で指定する方法とシンボルで指定する方法があります。

### 構文
“`ruby
ハッシュ名 = {“key” => value, … }
# または
ハッシュ名 = {:key => value, … }
“`

【**キーの指定方法**】
– **文字列** “key名”(ダブルクオーテーション)
– **シンボル** :key名(コロン)

### 具体例

元記事を表示

Railsでパンくずリストを作成する方法 – Gretelを使った実装

# はじめに

こんにちは!
記事をご覧いただきありがとうございます。

本記事では、Railsでパンくずリストを作成する方法についてまとめます。

# 目次
1. [パンくずリストについて](#パンくずリストについて)
1. [手順](#手順)
1. [書き方](#書き方)
4. [最後に](#最後に)

# パンくずリストについて
パンくずリストとは、Webサイトの現在のページの位置を示すナビゲーションリンクのことです。ユーザーがどのページにいるかを視覚的に把握できるため、サイトのユーザビリティが向上します。今回は、Rails用のGretelというGemを使って、パンくずリストを簡単に実装する方法を以下にまとめています。

# 手順
#### Gretelをインストールする

まず、GretelをGemfileに追加し、インストールします。
“`ruby
# Gemfile
gem ‘gretel’
“`
インストールコマンドを実行します。
“`
bash
$ bundle install
“`
#### 設定ファイルを作成する
次に、以下のコマンドを実行して、conf

元記事を表示

Kaigi on Rails 2024 に参加してきた

[Kaigi on Rails 2024](https://kaigionrails.org/2024/) 参加してきました!
Qiita からは自分を含め3人が現地参加してきました。

https://x.com/nemunemu3desu/status/1849979399145390397

## 聞いたセッション (の一部) の紹介

めちゃくちゃ面白いものが多かったので、全部は書ききれないですが、たくさん書いてます。
2日目ガス欠気味だったので、1日目が多めです。

### 基調講演: Rails Way, or the highway

https://evilmartians.com/events/keynote-rails-way-or-the-highway-kaigi-on-rails-2024

Rails は 「Rails scales from HELLO WORLD to IPO」と呼ばれるが、その長い期間

元記事を表示

Rails ActiveRecordのクエリガイド

## テーブル構造

まず、以下のようなテーブル構造を例に説明します:

### usersテーブル
“`sql
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255),
age INTEGER,
premium BOOLEAN,
created_at TIMESTAMP
);
“`

### postsテーブル
“`sql
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
title VARCHAR(255),
content TEXT,
likes_count INTEGER DEFAULT 0,
created_at TIMESTAMP
);
“`

### commentsテーブル
“`sql
CREATE TABLE comments (
id SERIAL PRIMARY KEY,
post

元記事を表示

【個人メモ】Ruby on Rails チュートリアル 第7章

Ruby on Railsチュートリアルで学んだ内容を個人的なメモとして簡単にまとめたものです

# 個人メモ
– debugメソッドとparams変数を用いてページにデバッグ情報を表示できる
– Railsの3つの環境
test環境、debelopment環境、production環境がある
– resources :users
REST機能を実装するために必要な一文
名前付きルーティングとUsersリソースで必要になる全てのアクションを有効にすることができる
– params[:id]でidに対応したデータを取得することができる
– debuggerメソッド
ターミナルにrdbg(Ruby debugger)プロンプトが表示される
バグが発生した際、怪しい箇所に差し込めばシステムの状態を調査できる
– Gravatarでユーザー画像とメールアドレスを関連づけることができる
– form_withメソッドを用いることでユーザー登録フォームが作成できる
– Srtong Parameters
必須パラメータと許可済みパラメータを指定すること
これにより許可していない属性をparamsハ

元記事を表示

Rubyの基本(変数/型/条件分岐/メソッド/クラス等)

# Ruby

サイトではなく、Webアプリケーションを作るための言語として、日本人によって作られた「楽しさ」を重視した言語

– `puts` など、命令を出すものを **メソッド(関数)** といい、複数の処理を1つにまとめたもの
– メソッドに渡す値を **引数** という

## 変数と定数

### 変数
– 変数:値を変えることが可能(代入できるもの)
– 変数名の1文字目は、小文字のアルファベットか `_`(アンダースコア)のみが使用可能
– 数字で始まる変数名はNG

### 定数
– 定数:値を変えることができないもの
– 定数の始まりは大文字で、 `_` で区切る(スネークケース)

## 型変換

文字列や数値をそれぞれの方に変換し、組み合わせることができる
| 型変換方法 | 説明 |
| — | — |
| `.to_s` | 整数→文字列 |
| `.to_i` | 文字列→整数 |

上記の方法を使うと煩わしい場合があるため、**変数展開**や**文字列展開**(”#{word}”)が便利
**ダブルクォーテーションで囲った場

元記事を表示

MySQL client is not connected がターミナルに表示されたら

`MySQL client is not connected`がターミナルに表示されたら速度系の問題!

私は単体テストコードをしていた時、異常系テストでうまくいったりいかなかったりの現象が起きていました。
例えば以下のコード
“`spec/models/xxx_spec.rb
item = FactoryBot.create(:item, user: user)
“`
このコードの中には画像が含まれている為処理に時間が掛かり、その処理の前に下のコードを読んでしまいエラーが出ていました。

これを解決するコード
“`config/environments/test.rb
config.active_job.queue_adapter = :inline #最終行endの上に追記
“`
この**active_job**は途中で重い処理があったら、それが終わってから次のコードを読んでね、という命令を出してくれる。

このせいで丸2日止まっていました。
やっと次に進める!!!!
ありがとうございます!!

元記事を表示

【Ruby】スコープについて

# はじめに
こんにちは、現在アメリカの大学で語学を学びながらソフトウェアエンジニアになるために独学で勉強しているものです。
今回は、Rubyのスコープについて整理した内容を共有します。
スコープは少し苦手意識があって避けていたのですが、しっかり向き合い、記事にまとめてみました。
もし内容に誤りがあればご指摘いただけると幸いです。

# スコープとは?
プログラム内の変数やメソッドには、それぞれアクセス可能な範囲が決まっています。
この範囲のことをスコープと呼び、変数の種類によって異なるスコープが適用されます。
この記事では、Rubyの代表的な変数のスコープについて、それぞれの用途やアクセス範囲を解説します。

## ローカル変数
ローカル変数は、メソッドやブロック内で定義され、その内部でのみ使用できます。
他の部分からアクセスや変更ができないため、安全に使えるのが特徴です。
“`ruby:local1.rb
def greet
message = “Hello, World!”
puts message
end

greet # => “Hello, World!”
pu

元記事を表示

Railsで`ckeditor`の`Sprockets::FileNotFound`エラーを解決する方法

## 問題の背景

Railsアプリケーションにおいて、`ckeditor`を利用する際に`Sprockets::FileNotFound`エラーが発生する場合があります。具体的には、次のようなエラーメッセージが表示されます。

Sprockets::FileNotFound at /admin/users/sign_in
couldn’t find file ‘ckeditor/init’ with type ‘application/javascript’
Checked in these paths: …

このエラーは、アセットパイプラインで`ckeditor/init`ファイルが見つからないために発生します。`ckeditor`のバージョンとSprocketsの互換性の問題が原因であることが多く、公式リポジトリでも議論されています([Issue #881](https://github.com/galetahub/ckeditor/issues/881))。

## 解決方法

この問題を解決するには、いくつかのアプローチがありますが、互換性のあ

元記事を表示

[Tips]pdf-readerでパスワード付きファイルからデータを抽出する

pdfの中身を抽出する方法は各言語様々な方法があると思いますが、rubyでやる方法の一つとして[pdf-reader](https://github.com/yob/pdf-reader)を利用する方法があります。
gemのインストール後、以下のようなコードで簡単にページのテキストやメタデータを見ることができます。

“`ruby
require ‘pdf-reader’

reader = PDF::Reader.new(“sample.pdf”)

puts reader.pdf_version
puts reader.info
puts reader.metadata
puts reader.page_count
reader.pages.each do |page|
puts page.text
puts page.fonts
end
“`

ただ今回扱うファイルがパスワード付きだったので、どうするのかReadmeを見たところ特に言及はありませんでした。
どうしたものかと思っていましたが、gemのテストを見たところ答えがありました。

https://github.

元記事を表示

【個人メモ】Ruby on Rails チュートリアル 第6章

Ruby on Railsチュートリアルで学んだ内容を個人的なメモとして簡単にまとめたものです
# 個人メモ
– Model
データモデルとして扱うデフォルトのデータ構造のこと
– Active Record
データベースとやり取りするRailsのライブラリ
Active Recordは、データオブジェクトの作成/保存/検索のためのメソッドをもつ
– マイグレーションコマンド
rails generate model モデル名 属性
マイグレーションファイルを変更すると後からデータベースの構造を変更することが可能
– マイグレーションの適用
rails db:migrate
– モデルに関するテスト
rails test:models
– 有効性(Validity)の検証
valid?メソッドでオブジェクトが有効かどうか確認できる
– 存在性の検証
validatesメソッドでpresence: trueを追加することで存在性を検証した
– フォーマットの検証
formatオプションを用いて、有効なメールアドレスにのみマッチする正規表現を組み立てることで検証した
– 一意性の検証

元記事を表示

【2023年版】Rubyリポジトリのコミット動向、主要言語との比較

2023年のRubyリポジトリのコミット数を Author ごとの時系列グラフにしてみました。

## Rubyリポジトリのコミット動向

2023年のRubyリポジトリの総コミット数は6767回でした。この数は、主要なプログラミング言語の中だと Java より大きくて Kotlin より小さいです。

Author の合計人数は307名です。上位5名で合計3254コミット、全体の48%を占めています。

![ruby-commits-2023.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/f52550af-72db-5cc2-dfbf-54e35c5eb273.gif)

– 集計したリポジトリは [ruby/ruby – GitHub](https://github.com/ruby/ruby) の master ブランチです
– グラフデータには `git log -n 10000000 –date short –pretty=format:”%ad%x09%h%x09%an”`

元記事を表示

【個人メモ】Ruby on Rails チュートリアル 第5章

Ruby on Railsチュートリアルで学んだ内容を個人的なメモとして簡単にまとめたものです
# 個人メモ
– モックアップ(ワイヤーフレーム)
ユーザーインターフェイスの概要を示したもの
– Bootstrap
– Bootstrapは bootstrap-sass gemを使ってRailsアプリケーションに導入できる
– Bootstrapにてnavberやnav、navbar-nav、navbar-rightクラスには特別な意味がある
– パーシャル(partial)
Webサイトのレイアウトにページごとの内容を挿入する
ex) <%= render 'layouts/header' %>
– renderと呼ばれるRailsヘルパーを用いてヘッダーの情報を置き換えている
– _header.html.erbというファイルを探してその内容を評価し、結果をviewに挿入している
– アセットパイプライン
SassとAsset Pipelineは、開発効率のために切り分けられたCSSの冗長な部分を圧縮し、本番環境に最適化した結果を出力する
– 名前付きルーティング

元記事を表示

【Ruby】インスタンスメソッドとクラスメソッドの使いわけ

# はじめに
こんにちは、絶賛Ruby勉強中のものです。
本日はRubyのインスタンスメソッドとクラスメソッドの使い分けについて説明していきたいと思います
Rubyの経験がまだ浅い私は、クラスメソッドの使い時をあまり理解しておらずインスタンスメソッドで代用できるのでは?と考えておりました。
そこで本日はインスタンスメソッドとクラスメソッドの使い分けについて記事を書いていこうと思います。
なお、インスタンスメソッドとクラスメソッドの説明については、記事を書いたので詳しく見たい方は確認していただければ幸いです。

https://qiita.com/Taira0222/items/aca062a0cfb879fded31

# インスタンスメソッド
まずは、フルネームと年齢を取得する`User`クラスと`user1`,`user2`インスタンスについてみていきましょう。
“`ruby:instance.rb
class User
attr_accessor :first_name, :last_name, :age

def initialize(first_name, la

元記事を表示

Railsでの joins と includes の違いと使い分け

## 目次
– [joinsとは?](#1-joinsとは)
– [includesとは](#2-includesとは)
– [joinsとincludesの使い分け](#3-joinsとincludesの使い分け)
– [N+1問題とは?](#4-n1問題とは)
– [ベストプラクティス](#5-ベストプラクティス)
– [組み合わせて使用する例](#6-組み合わせて使用する例)

## はじめに

Railsのアプリケーション開発では、モデル間の関連性を活用してデータを取得することが多く、その際に利用するのが `joins` と `includes` です。この記事では、データベースから必要な情報を取得する際に使用する`joins`と`includes`について、具体的な使い分けとその効果を解説します。

## 1. `joins`とは?

`joins`は、内部結合 (INNER JOIN) を使用して、関連するテーブルからデータを取得するためのメソッドです。RailsのActiveRecordで`joins`を使用すると、関連付けされた複数のテーブルを結合してクエリを発行できま

元記事を表示

OTHERカテゴリの最新記事