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

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

【Ruby on Rails】Missing :controller key on routes definition, please check your routes. (ArgumentError)というエラーを解決した話

#結論

* routes.rbを書き直す

#現状

rails sを実行すると見たことないエラーが

![スクリーンショット 2021-08-17 16.23.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/203ddfc6-cf54-2c03-3984-0c71cb6f0cd8.png)

#解決策

###1.原因

訳すと
「routesのコントローラーキーが見つからないから、routes見てくれ」という感じ。

###2.対策

素直にroutes.rbを見てみたら確かにコントローラーキーがおかしかった

“`routes.rb
get “articles/new” => “articles#new”
““

と変更すればOK!

####投稿者コメント
見たことないエラーだったので記事にまとめてみました。
ちゃんとエラー文を読むこと大事ですね!

####My Profile
プログラミング学習歴3ヶ月目のアカウントです!
プログラミングスクールで学んだ

元記事を表示

bcrypt-rubyのmodule BCryptのソースコードを日本語訳する

Railsチュートリアル9章に出てきたBCrypt::Password.new(remember_digest).is_password?(remember_token)が初見では理解できなかったので、このコードの大元であるmodule BCryptを日本語訳します。

“`ruby
module BCrypt
# A password management class which allows you to safely store users’ passwords and compare them.
#ユーザーのパスワードを安全に保管し、比較することができるパスワード管理クラスです。
#
# Example usage: 使用例:
#
# include BCrypt
#
# # hash a user’s password ユーザーのパスワードのハッシュ化
# @password = Password.create(“my grand secret”)
# @password #=> “$2a$12$C5.FIvVDS9

元記事を表示

RSpec の入門とその一歩先へ ~RubyGem 同時作成版~

# はじめに

有名な初心者向けの RSpec 入門記事として、和田卓人さん(@t_wada)の「[RSpec の入門とその一歩先へ](https://t-wada.hatenadiary.jp/entry/20100228/p1)」という記事があります。そして、これの改良版として、[Junichi Ito](https://qiita.com/jnchito) さん(@jnchito)の「[RSpecの入門とその一歩先へ ~RSpec 3バージョン~](https://qiita.com/jnchito/items/624f6d5023c279046a1c)」という記事があります。

この記事では、お二人の記事を RubyGem 同時作成版に書き直してみようと思います。なお、 source code を別途用意しませんので、記事のみを参考にして下さい。

## 各段階 (RubyGem 同時作成版) について

| 1 | 2 | 3 | 4 |
|:-:|:-:|:-:|:-:|
|和田さん版|[第1イテレーション](https://t-wada.hatenadiary.jp/en

元記事を表示

【Rails】定義されているRailsコマンドを確認する。

## 定義されているRailsコマンドを確認する
“`
$ rails -vT
“`
このコマンドを打つと以下のように、定義されているコマンドとその説明が表示される。

“`
rails about # List versions of all Rails frameworks and the environment
rails action_mailbox:ingress:exim # Relay an inbound email from Exim to Action Mailbox (URL and INGRESS_PASSWORD required)
rails action_mailbox:ingress:postfix # Relay an inbound email from Postfix to Action Mailbox (URL and INGRESS_PASSWORD required)
rails action_mailbox:ingress:qmail # Re

元記事を表示

Couldn’t find User with ‘id’=を解決する

# はじめに
本記事では、
`ActiveRecord::RecordNotFound~`の
`Couldn’t find User with ‘id’=`というエラーを解決しましたので、
アウトプットします。

![画像とユーザーのidがリンクしてしまったエラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1768158/2de74b8d-25c0-561b-0100-64cd3340124f.png)

# エラーが出ていたコード
編集(edit)→updateの実装をできるようにしておりましたところエラーが出てしまいました。
無事に編集できれば、マイページに遷移できるようにしようとしています。

先にコードを載せます。

“`users_controller.rb
class UsersController < ApplicationController def show user = User.find(params[:id]) @nickname = user.n

元記事を表示

[Ruby] compactメソッド

##はじめに
オリジナルアプリの改修をしてまして、アルゴリズムを組んでいたら、とても便利なメソッドを見つけましたので記事にしておきます。

##compactメソッド
compactメソッドは配列に含まれるnilを取り除いてくれるものです。

“`ruby
array = [1, 2, 3, 4, 5, nil, 6]
except_nil = array.compact

=> [1, 2, 3, 4, 5, 6]

“`

私の場合each文でデータベースから値を探して、配列に放り込んでいたときにnilが入ってきたのでcompactを使用しました。

!をつければ破壊的な使い方もできるようです。

“`Ruby
array = [1, 2, 3, 4, 5, nil, 6]
array.compact!

=> [1, 2, 3, 4, 5, 6]
“`

arrayの中身そのものを書き換えちゃうのですね。

元記事を表示

1周目 railsチュートリアル第5章

#目次
[1.はじめに](#1-はじめに)
[2.大まかな流れ](#2-大まかな流れ)
[3.用語のまとめ](#3-用語のまとめ)
[4.感想](#4-感想)
[5.おわりに](#5-おわりに)

#1. はじめに
第5章 レイアウトを作成する
参照元が有料のため、かい摘んだ記述となる。

#2. 大まかな流れ
1. 構造を追加する
1. ナビゲーション
1. BootstrapとカスタムCSS
1. partial

#3. 用語のまとめ

ナビゲーション
Bootstrap:CSSに最小限のフレームワーク、
      レスポンシブデザインに対応したフロントエンドフレームワーク
HTML5shim:HTML5サポート外のブラウザでも読み込ませるJavaScriptのコード

“`ruby
<%= link_to "sample app", '#', id: "logo" %>
“`

埋め込みRubyコード:<%=や<%で囲まれているもの。 Railsヘルパー:link_to link_toより 第1引数:リンクテキスト 第2引数:名前

元記事を表示

#8 Rails × Vue.jsで動的なページをSPA化させる(いいね機能)

[https://qiita.com/divclass123/items/fe54635b8434e9d82e08](前回)の続き。
前回は、動かすのに必要なコードを書いていったので、
理論上動くはずですが、実際に動くかどうか確かめたいと思います。

いいねボタンを押してみると。

“`

ActionController::RoutingError (No route matches [POST] “/drinks/api/likes/10”):

“`

なるほど。。。

“`likeButton.vue
const response = await axios.post(‘api/likes/’ + drink.id)
“`

“`route.rb

namespace :api, { format: ‘json’ } do
resources :likes, only: [:index,:like,:unlike]
end
“`

んー、なんで “/drinks/api/likes/10”
この処理が走ってるのか

“`

元記事を表示

【PostgreSQL】起動と停止

###1.背景
Ruby on Railsを主に学習しています。
PostgreSQLはアプリを作成して`-d` でデータベース指定しておく、という認識でした。
(自動で作成してもらえるので仕組みを理解できていなかったです…)

“`ruby
cd XX # 作成したいフォルダに移動
rails new sample_app -d postgresql # データベースを指定
rails db:create  # データベースを作成
“`
現在Rubyでアプリ作成をしており、PostgreSQLについて学習しているので備忘録としてまとめます。

###2.環境
– mac.os バージョン10.15.6
– Ruby 2.7.3
– Rails 6.1.3.1
– psql (PostgreSQL) 12.6

###3.手順
####①導入

“`
brew install postgresql
brew services start postgresql
“`

####②起動と停止
#####その1

“`sql
hogehoge@hogenoMacBook-Air

元記事を表示

ActiveRecordのhook(after_create / after_create_commit)とtransaction

## 気になったこと
ActiveRecordのhookはかなり便利で、レコードのCRUDに合わせてさまざまな処理を入れることができます。
hookした処理内でエラーが発生した時のレコード操作はrollbackされるのかちょっと気になったので確認しました。

## 結論
after_create
=> hook内でエラーが発生した時にはレコード操作がrollbackされる

after_create_commit
=> hook内でエラーが発生してもレコード操作はcommitされている(それはそうですよね)

## 前提
ActiveRecordをテストするので何もないテーブルを作成。

“`rb
create_table :tests do |t|
t.string :hoge
end
“`

## after_create

“`rb
class Test < ActiveRecord::Base after_create :raise_error def raise_error raise 'after create error' end end

元記事を表示

MacOS でのRubyの環境構築【初心者向け】

https://qiita.com/nishina555/items/63ebd4a508a09c481150

これがわかりやすかったのだが、

`rbenvにパスを通すため、シェルの設定ファイル(.bashrcや.zshrc)に以下を追加します。
`
という説明だけわかりづらかった。
ここを理解するためには、以下の前提知識が必要だ。

前提知識
✅ シェルが何かわかる
✅ bashとzshの違いがわかる
✅ 自分の使用しているシェルが何かわかっている
✅ 以下の記事を理解する

https://qiita.com/okamos/items/c97970ab34ff55ff3167

ここまでわかって初めて`rbenvにパスを通すため、シェルの設定ファイル(.bashrcや.zshrc)に以下を追加します。`の意味がわかるはずだ。

そしてホームディレクトリ直下にある隠しファイルである、 .bashrc や .zshrc という名前のファイルを編集することができるはずだ。
チェックを4つクリアして

“`
vim ~/.zshrc
“`

このコマンドを叩こう。

元記事を表示

[Rails]searchアクションの定義方法について

# はじめに
本記事では、7つのアクション以外である
`searchアクション`について記述します。

本日オリジナルアプリで実装したためアウトプットいたします。

# 結論
いきなりですが、コードを載せます。
私のオリジナルアプリは食べ物に関係したものです。

foodsをsearchするという理解でお願いします。

記述の順番としては、
ルーティング→モデル→コントローラーが良いのかなと思っています。

“`routes.rb
Rails.application.routes.draw do

devise_for :users
root to: ‘foods#index’
resources :foods do
collection do #ここから下3行です!!
get :search
end
end
resources :users, only: :show

end
“`

“`food.rb
class Food < ApplicationRecord belongs_to :user has_one_a

元記事を表示

Ruby , Ruby on Rails学習 一日目(条件分岐と繰り返し表現)

お疲れさまです!takumiです!
一日目なのは変わりませんが引き続きRubyの勉強頑張っていきましょう!!!

#IF文

〇〇の場合は□□するという条件分岐。

基本の型

“`Ruby
if 条件 then
#条件
end
“`

具体例をみてみます。
基本的にはBoolean値(true or false)を判定して出力するか、しないかを判定しています。

“`Ruby
score = 78

if score < 90 then puts "#{score}は90より小さい" end if score <= 78 then puts "#{score}は78以下です" end if score >= 78 then
puts “#{score}は78以上です”
end

if score == 78 then
puts “#{score}はぴったりです”
end

if score != 77 then
puts “#{score}は77ではない”
end
“`

また、文字を入力したらそれだけでtrue判定することも覚えておくといいかも。

元記事を表示

Ruby each文の基本的な使い方

#繰り返し処理
同じ処理を何回も繰り返すことです。

#each文とは

eachは英語でそれぞれという意味です。
例えば a= [1,2,3]なら
配列の中身を先頭から順番に処理が繰り返される。
webアプリでよく使われる処理です。
例えばTwitterのつぶやきなどを取り出してきて
ブラウザの画面に表示するときに使える。

⚫︎each構文

“`rb
オブジェクト.each do |変数|
実行する処理1
実行する処理2
end

“`
 この記事を引用しました。
https://www.javadrive.jp/ruby/for/index5.html

#each文の使い方

“`rb
scores = [10,20,30,40,50,60]

scores.each do |score|
puts score
end
“`
*puts scoreの部分はsとかにしてもokです。

“`rb

scores.each do |s|
puts s
end
“`

*putsは1回しかない 。eachでscores

元記事を表示

Ruby技術者認定試験 Silverに合格した私の勉強方法

これまで勉強してきたRubyの力試しとして受験した「Ruby技術者認定試験 Silver」に合格したので勉強方法をまとめます。

#目次
– 前提条件
– 受験をしようと思った背景
– 勉強期間
– 勉強方法
– 試験結果と試験後の振り返り

##前提条件
– 非エンジニア・実務経験なし(当時は絶賛職探し中でした)
– プログラミングスクールで半年間、Rubyを学習
– スクールにてチーム開発、卒業後は個人開発の経験あり
– Ruby以外のバッグエンド言語は全く学習経験なし

##受験をしようと思った背景
プログラミングスクールでRubyの基礎を学び、学びのアウトプットの一つとしてRubyの資格をとることにしました。

職探しでは、主に資格より実際の個人アプリの作成などのアウトプットが重視されることはわかっていたので、この資格はどちらかというと「人に証明するため」というよりは「勉強フェーズの一区切り」として受験することにしました。

##勉強期間

申込日:2021年5月8日
↓ (50日)
受験日:2021年6月27日

申込した日から勉強を行ったので、勉強期間は約1ヵ月半です。

元記事を表示

Ruby から Google Custom Search API を叩く

# ゴール
– https://developers.google.com/custom-search/v1/overview を ruby から叩く

# まず REST API を呼ぶまで
– 事前準備
– https://webbigdata.jp/what-is-bigdata/google-custom-search-api
– プロジェクトの作成
– `https://console.cloud.google.com/home/dashboard?project=[プロジェクト名]`にアクセス出来れば OK
– 該当 API の有効化
– https://console.cloud.google.com/apis/library?project=oldnews-natural-language-api
– API キーの発行
– https://cloud.google.com/docs/authentication/api-keys?hl=ja

元記事を表示

インクリメンタルサーチ rails ajax

インクリメンタルサーチを実装する!

インクリメンタルサーチとは・・逐次検索です!

完成イメージ

あるワード「コロナ」を入れると、、そのワードがタイトル、コンテンツ内に含まれてる記事が出てきます。
さらに、「コロナ」から「コロナウイルス」にうち進めると…
さらに絞り込まれていきます。
ちなみに下に出てくる記事のタイトルは、リンクにしてるので
押したらそのまま、記事に飛べます。

これが、ベストなインクリメンタルサーチではないですが・・・
頑張って実装したのでまとめていきます:fist:

![スクリーンショット 2021-08-20 20.49.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/a6f5040a-bc90-691b-a797-488f0f4a7e47.png)
![スクリーンショット 2021-08-20 20.49.58.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

do…endと{}について

# do…endと{}について
JavaやC言語などは繰り返し処理の場合、for文を使うことが多いと思いますが、
Rubyの繰り返し処理は、eachメソッドを使うことが多いです。

## do…endの場合
配列の要素を加算する処理
eachメソッドで配列の要素を順番に取り出す作業を行い、その要素の処理はdoからendまでのブロックに記述します。

“`Ruby:do…end
numbers =「1,2,3,4」
sum = 0
numbers.each do |n|
sum += n
end 
sum #=> 10
“`

上記の場合、配列の中から要素1,2,3,4を順番に取り出して、sum += nで各要素を加算する。

##{}の場合
do…end以外に{}でもブロックを作ること出来ます。

“`Ruby:{}
numbers =「1,2,3,4」
sum = 0
numbers.each do { |n| sum += n }
sum #=> 10
“`

##まとめ
do…endと{}の使い分けは明確に決まっているわけではありません。
ただ

元記事を表示

【Java】【Ruby】配列内の偶数を数える

 とても簡単ですが、RubyとJavaで、配列内の偶数を数えるプログラムを作りました。「配列を引数として渡すにはどうしたら良いのだろう」という疑問からひとまず作ったものです。

## Ruby

“`ruby
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end

count_evens([2, 1, 7, 8, 2, 3, 4])
count_evens([2, 2, 6, 5, 0])
count_evens([1, 3, 11, 5])
“`

## Java

– メソッドを定義したクラス

“`java
package example;

public class CountNums {
void countEvens(int[] nums) {
int count = 0;
for(int num : nums) {
if (num % 2 == 0) {

元記事を表示

Ruby , Ruby on Rails学習 一日目(変数とメソッド)

#webアプリケーション開発、頑張るやで。

今日からデイトラで学んだことをどんどんアウトプットしていこうと思います。

フロントエンドエンジニアを目指していたのですが、正直バックエンドの知識も
ないとぶっちゃけ頭がこんがらがってわからなくなるときがあります。。。。
なので学んだことをどんどんQiitaにアップロードしていこうと思います!

#Rubyってなんぞや

今まで学習してきたHTML,CSS,JavaScriptと違ってRubyはサーバーサイド言語と
呼ばれるもの。
機能としては
・ロジックをつくるんだよー
・データを保存したり取り出したりできるんだよー

そしてこの言語は日本人よって作られたらしい。地味にすごすぎワロタ。
そしてこのRubyとRuby on Railsというものを使うと爆速でWebアプリケーションが作れるみたい。
フロントでいうところのVue.jsとかReactみたいなもんなんかね。

この便利なRailsですが、実務ベースで使用していくには生のRubyをちゃんと知らないと
だめだよということなのでしっかり基礎学習していこうと思います!!

#文字の表示

元記事を表示

OTHERカテゴリの最新記事