Ruby関連のことを調べてみた2022年04月22日

Ruby関連のことを調べてみた2022年04月22日

Uncaught ReferenceError: $ is not defined Rails6

Rails6で非同期処理がうまくいかなかったので備忘録。

:::note alert
Uncaught ReferenceError: $ is not defined
:::

##### 原因としては
・jQueryがうまく読み込めていなかった。
・Rails6でのjQuery導入ができていなかった

:writing_hand:参考にした記事

Introducing jQuery in Rails 6 Using Webpacker

#### 導入方法

“`
$ yarn add jquery
““

config/webpack/environment.js
javascript/packs/application.js
に下記を追加

“`environment.js
const { environment } = require(‘@rails/webpacker’)

//追加部分
const webpack = require(‘webpack’)
enviro

元記事を表示

絶対はずさないお店を検索できるwebアプリケーションをリリースするまで②

実装したいこと
jsonデータ形式にすること

修正前
~~~
def index
@cooks = Cook.all
render json:@cooks
end

~~~
結果、jsonデータ形式をしたい場所が、indexではないため、変化なし

修正後
~~~
def show
@cook = Cook.find(params[:id])
render json:@cook
end
~~~
結果、json形式できた

元記事を表示

Rubyの配列の要素を変更するメソッド

# 配列の要素を変更するメソッド
配列の要素を変更するメソッド3つ紹介する
“`
[]=
fill
replace
“`

## `[]=`メソッド
指定したインデックスの値を書き換える。インデックスが配列の範囲を越える時には、配列の長さが自動的に伸長され、伸長された領域は nil で初期化される。
インデックスに Range オブジェクトを指定すると、その範囲にある要素を置換する。
また `[start, length] =` と指定すると、インデックス start から length 個の要素を書き換える。

“`ruby
ary = [1, 2, 3, 4, 5]
ary[0] = “a”
p ary # => [“a”, 2, 3, 4, 5]

ary[9] = 10
p ary # => [“a”, 2, 3, 4, 5, nil, nil, nil, nil, 10]

ary[1..3] = [“b”, “c”, “d”]
p ary # => [“a”, “b”, “c”, “d”, 5, nil, nil, nil, nil, 10]

ary[5, 4] =

元記事を表示

Ruby on Rails 投稿フォームでの改行を反映

この記事は学習中に実装した内容をアウトプットし、更に理解を深めるための記録用投稿になります。
投稿している内容と同じ箇所で躓いている方に少しでもお力添えできれば幸いです。


## 解決したい内容
入力フォームで入力した内容を表示させるときに改行が反映されずに空白が入り表示されるのを解決し、入力した時のレイアウトのまま表示したい。

### 実装前

![スクリーンショット 2022-04-21 19.45.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2608572/31a7846c-4c82-d5a2-d8a0-c4fe0a6b8e3c.png)

### 実装後
—-
![スクリーンショット 2022-04-21 19.44.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2608572/3689604c-c010-1127-7065-479162063a3f.png)

元記事を表示

【初心者】Ruby on Railsでメモ帳アプリを作成する

# 概要 :beers:

脱初心者に向けて、メモ帳アプリをつくっていく!
おなかすいた、絵文字使う練習を兼ねて….
かわいい :japanese_goblin:

# まずは新規アプリの作成から:beers:

“`shell
ubuntu@ubuntuv:~/デスクトップ/projectX$ rails new memo
ubuntu@ubuntuv:~/デスクトップ/projectX$ cd memo/
ubuntu@ubuntuv:~/デスクトップ/projectX/diary_app$ bundle install && bundle update
ubuntu@ubuntuv:~/デスクトップ/projectX/diary$ rails g controller memo index
“`

# 最初のページを作成する:beers:

トップページを作成する:pick:

“`html:app/views/memo/index.html.erb

Memo app

“`

設定ファイルでアプリにアクセスしてきたら、トップページに飛ぶ :air

元記事を表示

Ruby標準入力あれこれまとめ

## 環境
Ruby `3.1.1`
Windows10
VScode

# 1. 1行で1個入力
## 文字列
##### 入力例
hello!
##### コード例
“`ruby
x = gets.chomp
p x # => “hello!”
“`
##### 解説
標準入力から`gets`でデータを受け取り、`chomp`で改行コードを削除

## 整数
##### 入力例
52
##### コード例
“`ruby
x = gets.to_i
p x # => 52
“`
##### 解説
`gets`は文字力として入力する。`to_i`メソッドで整数に変換

## 小数
##### 入力例
2.17
##### コード例
“`ruby
x = gets.to_f
p x # => 2.17
“`
##### 解説
`gets`は文字力として入力する。`to_f`メソッドで小数(浮動小数点数)に変換

# 2. 1行で複数個入力(スペース区切り)
## 文字列
##### 入力例
cat dog rabbit
##### コード例
“`ruby
x = ge

元記事を表示

ruby-build で openssl がインストールされちゃう話

## ruby-build で openssl がインストールされてしまうので調査した

自分でインストールした lib に強制可能か知りたかった

### 向き先を強制するなら RUBY_CONFIGURE_OPTS が良さそう

– ruby-build は定義に share ディレクトリを使ってそう

“`shell
$ ls /usr/local/Cellar/ruby-build/20211109/share/ruby-build | head
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
1.8.6-p36
1.8.6-p110
1.8.6-p111
1.8.6-p114
$ cat /usr/local/Cellar/ruby-build/20211109/share/ruby-build/3.0.2
install_package “openssl-1.1.1l” “https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c3

元記事を表示

デジタルツールを使って仕事の課題を解決したい

便利なデジタルツールが、手軽に手に入るようになりました。
私は、小売業のネット販売の運営を仕事としておりますが、デジタルツールを使って解決できそうな仕事の課題と解決策を挙げ、身近なデジタルの有効活用方法を考えようと思います。

**1. 社内のお問い合わせ自動回答(実現性 50%)**

課題:システム使用方法、お客さまのお問い合わせなど対応方法が分からず、電話やメールで社内の人に問い合わせしたときに、確認を取った相手が取り込み中だと、対応が遅れてしまう。

改善:よくお問い合わせのあるものをLINEbotで入力すると答えが返ってくる。
技術的には可能だと思う。
実施には構想をつくり、ノウハウもつ各部署のメンバーから情報集約し、データベース化するかがポイントであり、この点が難しい。

**2.パソコン、スマートフォンがしゃべって教えてくれるアラーム機能(実現性 90%)**

課題:小売業の現場では、作業に忙殺され、打ち合わせの時間、冷蔵庫の温度チェックなどの固定されている業務開始時間を忘れてしまうことがある。

改善:時間が来たらパソコン、スマートフォンがしゃべって教えてくれると、忘

元記事を表示

whereやorderをモデルのscopeで書く方法

先日レビューで先輩エンジニアに教えてもらったことが勉強になったので備忘兼ねて投稿します。
whereやorderなどを使うときはモデルのscopeとして書くとスッキリするのと、使い回しもできて良いみたいです。

## controllerに書く方法

今回は商品(products)テーブルで開発日(development_date)降順で並べるとします。

“`ruby:products_controller.rb
def index
@products = Product.order(development_date: :desc)
end
“`

## modelのスコープとして書く方法

まずモデルに以下のようにscopeを定義します。

“`ruby:product.rb
scope: :development_order, -> { order(development_date: :desc) }
“`

コントローラで呼び出します。

“`ruby:products_controller.rb
def index
@products = Product.d

元記事を表示

rbenvでRubyのインストールにコケた話

## Ruby

自分はXcode開発においてパッケージマネージャとしてSPMばかり利用しているのでRubyを必要とする機会はあまり多くないのですが、今回たまたまGemfileを利用しているコードがあり、その対応のためにRubyをインストールしようとしてコケた話と解決方法を載せておきます。

## 環境構築

まずはhomebrewをインストールします。

“`zsh
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

その後、ruby-buildとrbenvをインストールします。

“`zsh
brew install ruby-build, rbenv
“`

で、ここまでは問題ありません。

### エラー内容

rbenvでRubyをインストールしようとすると以下のエラーが出てコケる人が対象です。

“`zsh
$ rbenv install 2.7.6
Downloading openssl-1.1.1n.tar.gz.

元記事を表示

Ruby Hashオブジェクト ハッシュの基礎知識

# ハッシュとは
Key(キー)とValue(バリュー)の組み合わせで関連付けを行うことができるオブジェクトです。

“`ruby
user1 = {id: 1, name: ‘Tom’} => { :id => 1, :name => “Tom” }
user2 = {id: 1, name: ‘Bob’} => { :id => 1, :name => “Bob” }

user1[:name] => “Tom”
user2[:name] => “Bob”
“`

`Key`をシンボル`:`で定義した場合・・・`変数 = { key: value, key: value, … }`

“`ruby
user1 = {id: 1, name: ‘Tom’} => { :id => 1, :name => “Tom” }
# シンボルで定義した Key を String で指定した場合、値を参照することはできない。
user1[‘name’] => nil

user3 = { ‘id’ => 3, ‘name’ => ‘Jon’ } => {“id”=>3, “name”=

元記事を表示

Ruby Arrayオブジェクト 配列の基礎知識

# `push`, `<<` 配列に要素を追加することができる。 ```ruby arr = [] arr.push('りんご') => [“りんご”]
arr << 'みかん' => [“りんご”, “みかん”]
“`
# %記法(パーセント記法)
`’`や`”`を別の文字に置き換えて書くことができます。

“`ruby
arr = %w[りんご みかん] => [“りんご”, “みかん”]
arr2 = %w! りんご みかん! => [“りんご”, “みかん”]
arr3 = %w(りんご みかん) => [“りんご”, “みかん”]
“`
`%w`の場合、シングルクォート`”`で囲ったのと同じ動作になります。

“`ruby
a = ‘んご’ => “んご”
b = ‘かん’ => “かん”
arr = %W[り#{a} み#{b}] => [“りんご”, “みかん”]
“`
`%W`の場合、ダブルクォート`””`で囲ったのと同じ動作になるため、式展開やバックスラッシュ記法を使用することができます。

# 繰り返し処理

## `eachメソッド`
配列の要素の

元記事を表示

crystal の AtCoder における Deque の使用による速度改善

# はじめに
AtCoder さん、いつもお世話になっております。

私は、下記のトランスパイラを夢見ている者ですが、`Deque`の使用により実行時間の改善が見られましたので、ここに投稿いたします。

https://github.com/superrino130/crystal-on-paiza.cloud
# 003 – Longest Circular Road(★4)
https://atcoder.jp/contests/typical90/tasks/typical90_c

“`diff_crystal
n = read_line.to_i
– ab = Array.new(n + 1){ [] of Int32 }
+ ab = Deque.new(n + 1){ [] of Int32 }
– f = Array.new(n + 1, 0)
+ f = Deque.new(n + 1, 0)
(n – 1).times do
a, b = read_line.split.map(&.to_i)
ab[a] << b ab[b] << a end - q

元記事を表示

プロジェクトへテストコードを導入する(計画編)

## 今回話すこと
– [導入の経緯](https://qiita.com/iyore_eng/items/fdf57b817589383db661#導入の経緯)
– [Webアプリケーションにおけるテストとは](https://qiita.com/iyore_eng/items/fdf57b817589383db661#webアプリケーションにおけるテストとは)
– [何のためにテストをするか](https://qiita.com/iyore_eng/items/fdf57b817589383db661#何のためにテストをするか)
– [どういったものをテストするか?](ttps://qiita.com/iyore_eng/items/fdf57b817589383db661#どういったものをテストするか)
– [デメリットについて考える](https://qiita.com/iyore_eng/items/fdf57b817589383db661#デメリットについて考える)
– [使用する技術](https://qiita.com/iyore_eng/items/fdf57b817

元記事を表示

Rubyの配列に要素を追加するメソッド比較

# 配列に要素を追加するメソッド
配列に要素を追加するメソッドは主にこんな感じ(もっと色々あるかもしれない、またあれば追記する)
“`
<< push concat insert unshift + ``` ## `<<`メソッド, `push`メソッド 引数のオブジェクトを自分の末尾に追加する。 ```ruby ary = [1, 2, 3] # => [1, 2, 3]
ary << 4 # => [1, 2, 3, 4]
ary.push(5)
# => [1, 2, 3, 4, 5]
“`

## `concat`メソッド
引数の配列を自分の末尾に追加する。破壊的メソッド。
“`ruby
ary = [1,2,3]
# => [1, 2, 3]
ary.concat([4, 5])
# => [1, 2, 3, 4, 5]
ary
# => [1, 2, 3, 4, 5]
“`

## `insert`メソッド
第一引数で指定された位置に、第二引数以降のオブジェクトを挿入する。破壊的メソッド。
“`ruby
ary = [1, 2, 3]
# => [1, 2, 3]

元記事を表示

Rubyでソースコードの文字コードを設定する

# マジックコメントについて
Ruby2.0以降ならデフォルトでUTF-8が入っているので、マジックコメントで文字コードを特に指定する必要はない。

# 書き方
大文字・小文字を区別しない、`coding: エンコーディング名` が正しければ、その前後には任意の文字列を並べることができる。

“`
# encoding: 文字コード名
“`
もしくは
“`
# coding: 文字コード名
“`

## 具体的な指定例
US-ASCIIを指定する場合
“`
# coding: us-ascii
# encoding: us-ascii
# CODING: US-ASCII

“`

元記事を表示

FactoryBotでcreate(:client)時にActiveRecord::RecordNotUniqueが発生する

## コード

– spec/models/client_spec.rb
“`ruby
require ‘rails_helper’

RSpec.describe Client, type: :model do
it “is valid with default” do
client = FactoryBot.create(:client)
expect(client).to be_valid
end
end
“`

– spec/models/client_spec.rb
“`ruby
FactoryBot.define do
factory :client do
sequence(:id) { |n| n } # シーケンスを使う
sequence(:name) { |n| “クライアント#{n}” }
created_at { Time.current }
updated_at { Time.current }
end
end
“`

## 概要
タイトルの通りだが、上記のコードでrspecを実行すると以下

元記事を表示

Bootstrap,CSSを使った一覧表示

この記事は学習中に実装した内容をアウトプットし、更に理解を深めるための記録用投稿になります。
投稿している内容と同じ箇所で躓いている方に少しでもお力添えできれば幸いです。

## 実装した内容
ユーザーの詳細画面でユーザーの詳細内容、投稿した記事の一覧を4つ表示して折り返す内容になります。

## 今までの考え
・今までHtml,Css,Ruby,Ruby on Railsの順番で学習を進めてきて、直近で学習していた課題ではCssを使わずにレイアウトをBootstrapだけを行い実装してきました。
そのこともあり、今回もBootstrapだけで行こうと進めていましたが思ったようなレイアウトにならず色々調べているとCssも並行して使えることを書いてある記事を見つけました。(今更何を言っているんだと思う方もいるかもしれませんが、初心者の脳内なのでどうかお許しください、、。)
そのことを踏まえて読んでいただけると嬉しいです。

## 前提条件
・Bootstrap導入済み。(今回はBootstrap4です。)
## 参考ページ
自分のページを曝け出すのは恥ずかしくて大変恐れ多いですが

元記事を表示

100日後くらいに個人開発するぞ!day001

# まずはこれをやってみる!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/280cff78-08ee-40f8-c0c2-f8e062e7eca1.png)

https://prog-8.com/paths/rails

# 今日はHTMLに触れてみた!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/e1c53435-3698-911c-7fd2-3f8eff89c0d6.png)

“`

* 開始タグと終了タグ
* 開始タグ
*
終了タグ
* 見出しをつける
* 見出し
* hはheadingの頭文字
*

,

,

,,,

,,,と数字が大きくなるについれて見出しは小さくなる
* 段落をつける
*

タイトル

元記事を表示

Enumが定義されたインスタンス変数を更新する

仕事のコードを読んでいたところ次の記述に遭遇しました。

“`ruby:sample.rb
(~)? (モデル).accept! : (モデル).refuse!
“`
(~)が真ならば(モデル).accept!、偽ならば(モデル).refuse!を実行するという記述です。

「ほう、`accept!`なんてメソッドがあるのか」と思い調べましたが、何も出てきません。
そこでコードに戻ったところ次の記述がありました。
“`ruby:models/sample.rb
enum status: { refuse: 0, accept: 1 }
“`
「`enum`は属性に対応する値をDBに保存するんだったよな…」

Railsガイドには次の記述がありました。

https://railsguides.jp/active_record_querying.html#enum

> 以下の!付きインスタンスメソッドは自動で作成されます。最初にstatusの値を更新し、次にstatusがその値に設定されたかどうかをtrue/falseで返します。
“`ruby:railsguide.rb

元記事を表示

OTHERカテゴリの最新記事