Ruby関連のことを調べてみた2020年10月07日

Ruby関連のことを調べてみた2020年10月07日

Couldn’t find the element to insert the template. Make sure your `data-association-insertion-*` on `link_to_add_association` is correct.

railsでcocoonを使って複数のフィールド追加を試みていたところタイトルのエラーが発生

“`
.nested-items
“`

を追加しておらず、どこにフォームを入れて良いかjs側が理解していないことが問題でした

### 参考記事
なし

元記事を表示

閏年を含めた月ごとの日数を求めるプログラム

【概要】
—————————————-
1.結論

2.どのようにプログラミングするのか

3.開発環境

1.結論
—————————————-
2月だけ4,100,400の剰余(%)で条件式に当てはめたメソッドを作り、年月の入力と年月日を出力する!

2.どのようにプログラミングするのか
—————————————-

“`ruby
def get_days_leap_year(year, month)
each_month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] #—❶
if month == 2
if year % 4 == 0
if year % 100 == 0 && year % 400 != 0 #—❷
days = 28

元記事を表示

【初学者向け】Rails mergeメソッド

## 記事の目的
初学者の為、間違っているところはご指摘頂けると幸いです。
備忘録・アウトプット目的で投稿です。

##mergeメソッドとは?
ストロングパラメータの設定の最後にでてくる`merge`。

“`ruby
def review_params
params.require(:review).permit(
:memo,
:image)
.merge(user_id:current_user.id) # ←これです
end
“`

##mergeメソッドについて(チェリー本より引用)
これはなんだ?とRailsの参考書等(Railsチュートリアル、現場Rails)等でメソッドの記載部分を探すもない。
チェリー本をみてみると、メソッドについて説明がなされている。

“`ruby
h = { us: ‘dollar’, india: ‘rupee’ }

{ japan: ‘yen’ }.merge(h) #=> {:japan=>”yen”, :us=>”dollar”, :india=>”rupee”}
“`

`merge

元記事を表示

Rails 並び替え機能の実装(likeの数順に表示)

#前提条件
・railsを用いたアプリケーション
・Recipeモデルはhas_many で Likeモデルと紐づいている。

“`recipe.rb
has_many :passive_likes, class_name: “Like”,
foreign_key: “liked_id”,
dependent: :destroy
“`

“`like.rb
class Like < ApplicationRecord belongs_to :liker, class_name: "User" belongs_to :liked, class_name: "Recipe" validates :liker_id, presence: true validates :liked_id, presence: true end ``` #したいこと ・Recipeモデルに紐づくLikeモデルのliked_idの数(count)に順じて降順で表示  される様に並び替えしたい。 #1. Recipeの

元記事を表示

class継承とその身近な例について

#class継承とその身近な例について#

おはようございます。Qiita初投稿です。

本日は、rubyのclass継承と、その身近な例についてお話しできたらと思います!
ちょうど最近、なるほどなあと思ったので、共有したいと思います。
もしかしたら、あたりまえすぎるかもしれません。

ただ、もし読んでいただいた方にとって、何かプラスになれば幸いです!

###1、クラス継承とは###
クラス継承とは、あるクラスを元に他のクラスを作成することです。
元になったクラスを親クラス、新しいクラスを子クラスといいます。
親から子に引き継ぐことで、引継ぎ前のクラスも使えつつ、新しいクラスを作成できます。
なんて感動的な親子関係。

###2、書き方###

小クラスの横に<をつかって親クラスを書くだけ ```example.rb class Child < Parent #ParentクラスをChildクラスに継承 ``` クラスのなので、頭文字は大文字です。 こうすることで、親クラスを使えます。 ###3、親クラスの何が使えるの?### 主に二つです。 ・親クラスのインスタンス変数 ・

元記事を表示

【ruby】each文の中にeach文を入れると??

#1、最初に#

現在、プログラミング学習を初めて2ヶ月の者です。
今回は、rubyにてeach文の中にeach文を入れるとどうなるのか、ということについて記載しようと思います。

具体的には、以下の通りです。
①each文の中にeach文を入れると、どんな動きをしているのか
②動きを確認した方法

なお、each文の中にeach文とは、以下を想定しています。

“`ruby:sample1.rb
#簡略に記載してます。
array.each do |i|
array.each do |num|
end
end
“`

私と同じ学習をはじめたばかりの方にとって、何かプラスになれば幸いです!
※初心者投稿の記事になります。もっとこうした方がいいよ!といったことがあれば教えていただきたいです!

#2、どんな動きをしているのか#

今回はわかりやすくするために、先のコードに少し記述を加えた
以下のコードを使用します。

“`ruby:sample2.rb
array = [1,2,3]

array.each do |i|
puts i
array.each do

元記事を表示

はじめてのRspecでぶち当たった壁たち

# はじめに
 いよいよRspecに手を出すことにした。これを使ったらいろんなテストができるらしい。すごい。でも、ちょっと手強そうだったのでオンライン教材を使用することにした。こちらのTake off Railsというものだ。

https://freelance.cat-algorithm.com/lp/take-off-rails

 最近は時間が足りないので、いろんな物事を効率化する必要があった。時間をお金で買う形だが、これが非常によかった。情報が集約されているし、分からなかったら質問した。

 それでも結構詰まったことがあったので、ここに書いておく。

# rails g model user -s ができない
 今回は既存のuser modelに対して`spec/models/user_spec.rb`や`spec/factories/users.rb`を作成するため、

“`terminal
$ rails g model user -s
“`

 を実行しようとした。しかし、エラーが生じた。

“`
$ rails g model user -s
Running v

元記事を表示

rails console よく使う操作

#はじめに
railsの学習を始めてrails consoleを使うことが多くなったため、ここにまとめます。

#操作

##起動

“`
rails c
“`

##終了

“`
quit
“`

##全てのデータを取得
例としてモデル名は`User`にします。

“`
User.all
“`

##idで検索する

“`
users = User.all
users.find(1)
“`
##idと指定して検索する

“`
users = User.all
users.find_by(id:1)  # users.find(1)と同じ意味
“`
ユーザー名で検索する場合
例としてカラム名は`username`にします。

“`
users.find_by(username:’なおき’)
“`

##保存する

“`
user.save
“`
具体例:名前の書き換え

“`
user = User.find(1)
user.username = ‘ばいきんまん’
user.save
“`

##削除

“`
user.destroy
“`
具体

元記事を表示

Ruby on rails学習記録 -2020.10.06

お店紹介サイトを作る

お店リストの自動生成
“`$ rails generate scaffold shop category_id:integer name:string address:string
$ rails db:migrate’“`

カテゴリストとお店リストのモデルの関連付け

“`app/model/category.rb
class Category < ApplicationRecord has_many :shops end ``` ```app/models/shop.rb class Shop < ApplicationRecord belongs_to :category end ``` 登録・修正フォームで、カテゴリを選択できるようにする ```app/views/shops/_form.html.erb

<%= f.label :category_id %>
<%= f.select :category_id, Category.all.map{|o| [o.name

元記事を表示

[rails] サーバーが動かなくなった事件

#事件内容

突然サーバーが動かなくなり
control Cを押してもサーバーダウンできなくなってしまった。

#解決方法

ターミナルで以下のコマンドをうつ
これは開いてるファイルを一覧表示してくれます

“`
lsof -i
“`

0000のところは PIDの番号を打ってください
ruby のPIDの番号を打ってください

“`
kill -9 0000
“`

###私はこれで解決しました!

サーバー止まったりしたら焦りますよねw
何がエラーなのかも出てこなくて汗だくでした
( railsのサーバーはバグる?ことが多いとどこかの偉い人が
いってたな…知らんけど…)

元記事を表示

アプリケーションのオリジナルロゴを簡単に作る方法(スマホで簡単)

#個人アプリのロゴを簡単に作成しよう!(Rubyの記述あり)
##必要なもの
* 「Pics art」
![20b59e6a2f37c51db0f66b2a3a0f7fff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/9e0be83f-5cd4-440e-6909-acc8feace7a0.png)

* 「背景透明化」
![0d3dfded9fc57049f6e37e3058a0d374.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/b31931c3-2e71-5114-1949-85effa82a1ee.png)
(それぞれapp storeで無料で取得できます)

#好きなように書く!
Pics art
![IMG_1429.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/725167/60399ebc-

元記事を表示

ruby でタブ区切りで並び替えしたい

タブ区切りのテキストから並び替えをして見やすくしたと備忘録

###まず、もととなるタブ区切りのテキスト

profile.txt #LR utf-8
john m 19
micheal m 28
abbie f 31
dabid m 17
claire f 26

左から”名前、性別、歳”がタブ区切りで載っています。
名前順にして並び替えたいと思います。

まず、テキスト自体どういう風に出力されるか確認します。

File.open(“meibo.txt”) do |text|
text.each_line do |line|
p line
end
end

でファイルを展開すると

$ ruby example.rb
“john\tm\t19\n”
“micheal\tm\t28\n”
“abbie\tf\t31\n”
“dabid\tm\t17\n”
“claire\tf\t26\n”

と表されるので、タブスペー

元記事を表示

“Uniqueness validator will no longer enforce case sensitive comparison in Rails 6.1.”の対処法

## 内容に関して
– チェリー本で有名な伊藤さんがとても分かり易い記事を書かれているのでそちらを見てください。
– https://qiita.com/jnchito/items/e23b1facc72bd86234b6

## 解決策
– Railsの場合、クエリの実行やMySQLの設定を変更しなくても大丈夫!以下のように書き換えるだけです!
– rails db:resetで行った場合変更が反映されないので注意!
– rails db:dropとrails db:createを実施すること
– おそらくrails db:migrate:resetでもいける。

“` config/database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
charset: utf8mb4 #追記
collation: utf8mb4_bin #追記
reconnect: false
“`

元記事を表示

ActiveStorageを使って、画像投稿機能実装までの流れ

#はじめに
 よくSNSで画像をあげるような機能があるが、それをRailsで実装するときに使うGemを紹介する。長くなるため、今回は実装の準備段階に絞って投稿する。
全2回の予定。

##Active Storageとは
 現在はGemとしてインストールしなくても、Railsに搭載されている。画像などのファイルのアップロードを簡単に行えるメソッドが使えるようになる、画像を保存するテーブルの作成も簡単に行える。

##画像アップロード機能の実装までの流れ
1. ImageMagickのインストール
2. 2つのGemのインストール
3. ローカルサーバーの再起動
4. Active Strageのインストール
5. テーブルの生成

###1.ImageMagickのインストール
 そもそもImageMagickとは、画像加工ツールであり、Gemではなく、ソフトウェアの部類になる。Homebrewからインストールを行う場合は、

“`bash

brew install imagemagick
“`

 ImageMagickだけでは、Rubyで扱えないので、次の2つのGemをインス

元記事を表示

本日の『railsチュートリアル』で詰まったところ(2020/10/06)

#詰まったところ
##1.3.4 Hello, world!
・事象:`$ git push heroku master`実行後、URLを開くと`Method Not Allowed`と表示される。
・解決方法: 開くURLが間違っていた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764452/edb6ee09-b7cf-53b8-6815-80c74516360d.png)

・留意点
Heroku導入は難しくて理解を飛ばしたため、振り返る必要あり。

#感想
・1章読了!
・pushとcommitを頭の中でイメージできるようになってきた。
・もしかしてQiitaの使い方間違ってる?日付毎に新しい記事を量産するのではなく、1記事に追記していく形がいいのかもしれない。Qiitaルール要確認。
・Qiitaのマークダウン記法は読んだので多少記事が見やすくなったはず。

元記事を表示

ヘッダーやフッターを一度作って別のページでも流用する方法

#フッターやヘッダーを作ったら他のページにも使いたい!
ポートフォリを制作中
フッターやヘッダーをページが変わるたびに一から作り直すのかなり面倒だなと感じ調べたらすぐに出てきたので共有させてください!

#結論

![スクリーンショット 2020-10-06 22.08.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694122/080aaddd-c07d-cabd-997e-dfb367f07478.png)

このapp > layouts >application.html.erb
の中にある

“`application.html.erb
#開くとすでに記述してあります



PhotoRoke
<%= csrf_meta_tags %>
<%= csp_meta_tag %>

<%= stylesheet_link_tag 'application', media:

元記事を表示

【No.008】ActionView::Componentを導入して、ナビバーを全画面に適応させる

[github/view_component](https://github.com/github/view_component)
[[Rails 6.1] ActionView::Component について](https://qiita.com/natsuokawai/items/9670927dee5c24de1805)”
[ActionView::Componentの導入](https://qiita.com/sakusakupg/items/9317a63120222743b54d)

[Issue](https://github.com/fukadashigeru/import_agent_app/issues/14)
[PR](https://github.com/fukadashigeru/import_agent_app/pull/27)

[Tailwind](https://tailwindui.com/components)

# 概要
ActionView::Componentを導入して、ナビバーを全画面に適応させる

# ToDo詳細
– ActionVi

元記事を表示

Ruby 3.0 で x ** 2 が速くなった件

# x ** 2 は遅い

変数 `x` に Integer とか Float とかの数値が入っているとする。
`x` の 2 乗の計算は,

“`rb
x ** 2
“`

と書けるが,もしできるだけ高速に計算させたいなら

“`rb
x * x
“`

と書いたほうがいい。
後者のほうが断然速い。
というか前者はめちゃんこ遅い。

## ベンチマークテスト

まず

“`shell
gem install benchmark_driver
“`

して [benchmark_driver](https://github.com/benchmark-driver/benchmark-driver) をインストールしておき,

“`yaml:square.yaml
prelude: |
x = 3.0
benchmark:
– “x ** 2”
– “x * x”
“`

という YAML ファイルを用意して,

“`shell
benchmark-driver square.yaml
“`

とやると比較できる。

`ruby 2.7.1p83 (20

元記事を表示

ActionView::Componentの導入

[github/view_component](https://github.com/github/view_component)
[[Rails 6.1] ActionView::Component について](https://qiita.com/natsuokawai/items/9670927dee5c24de1805)
[PR](https://github.com/fukadashigeru/view_component_app/pull/1)

# 準備

“`Terminal:Terminal
rails new view_component_app -d postgresql
“`

## 環境

“`Gemfile:Gemfile
ruby ‘2.7.1’

# Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’
gem ‘rails’, ‘~> 6.0.3’, ‘>= 6.0.3.3’
# Use postgresql as the database for Active Record
g

元記事を表示

Ruby 2.7.2 がリリースされ、今後は非推奨な警告はデフォルトでは出なくなる

[ブログ記事](https://secret-garden.hatenablog.com/entry/2020/10/06/162055)からの転載です。

先日 Ruby 2.7.2 がリリースされました。

* [Ruby 2.7.2 リリース](https://www.ruby-lang.org/ja/news/2020/10/02/ruby-2-7-2-released/)

このリリースで[先日お伝えした『非推奨な警告がデフォルトでは出なくなる』](https://secret-garden.hatenablog.com/entry/2020/09/27/192210)ようになりました。
なので、今後は非推奨な機能が削除されるといきなりアプリケーションが動作しなくなる可能性があります。
このような問題を回避するために今後は以下のようにして『明示的に非推奨な警告が出力されるようする』ことで安全に開発する事ができます。

* `-w` や `-W:deprecated` を付けて Ruby を実行す
* コード上に `Warning[:deprecated] = true` を追

元記事を表示

OTHERカテゴリの最新記事