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

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

簡単にAWS Lambdaでrubyコードを実行できます

# 簡単にAWS Lambdaでrubyコードを実行できます
– ruby初心者
– AWS CLI使いたくない方 (AWS Consoleでやりたい)

# Aws Lambdaとは
– AWSサーバーレス(サーバーなしでコード実行できるもの) → プログラム集中できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318767/43cd8d52-f791-342e-8833-9c1eca7f3258.png)

# Aws Lambdaでできること
– バックエンドの処理
– マイクロサービス
– …

# コードをAWS Lambdaにデプロイする方法
– AWS CLIでデプロイする(コマンドで実行する方法)
– https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html
– AWS Consoleでデプ

元記事を表示

Webpacker::Manifest::MissingEntryError 解消法

rails sを実行したところ下記エラーが発生
Webpacker::Manifest::MissingEntryError in Blogs#index

その解決方法を記載していきます。

# 結論

結論から言うと、webpackerをコンパイルすれば直ります。
コンパイルするまでの過程を記載していきます。

①テキストエディタから、gemfileを探し、webpackerのバージョンを確認
②バージョンを5.0に更新
③コマンドを実行
④コンパイル
⑤rails s

順に詳しく説明していきます。

# webpackerのバージョンを確認

“rails s”を実行するためには、”webpacker”のバージョンを5.0にアップしなければならないようです。
バージョンアップする場合は”terminal”で実行するのではなく、”text editor”の中から”gemfile”を探し、バージョンを確認してください。

# バージョンを5.0に更新

webpackerのバージョンが5.0になっていない場合は、書き換えます。

“`gemfile.
変更前: gem ‘web

元記事を表示

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

## 今日は入力データを受け取る処理をしてみた!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/8686356c-4a07-20c9-a859-165dcec80c15.png)

## 今日の学び

### 繰り返し処理で番号をつける
* each文の処理で値を1増やして更新する繰り返し処理で番号をつける
* 例
* `foods = [“パン”,”ラーメン”,…]`
* `index = 0`
* `foods.each do |menu|`
* ` puts “#{index}. #{foods}”`
* ` index += 1`
* `end`

### 入力を受け取る
* `変数 = gets.chomp`とすることで、エンターキーを押されるまでに入力された値を変数に代入することができる
* `puts “メニューを入力してください”`

元記事を表示

【Solargraph】Solargraph用のコンテナを作成する【Docker】

## `Dockerfile`を作成
以下が`Dockerfile`の例です。
“`Dockerfile:Dockerfile
FROM ruby:3.1.2

WORKDIR /app
RUN gem install solargraph

EXPOSE 7658
“`

## `docker-compose.yml`を作成
`docker-compose.yml`を以下のように作成します。

“`docker-compose.yml
solargraph:
build: .
command: bundle exec solargraph socket –host=0.0.0.0 –port=7658
volumes:
– .:/app
ports:
– “7658:7658”
“`

`docker-compose.yml`を作成したらコンテナを起動します。

“`:ターミナル
$ docker-compose up -d solargraph
“`

## 拡張機能をインストール
VSCodeに以下の拡張機能

元記事を表示

RSpecのbefore

時間固定などbeforeを使う機会が多々あるのですが、引数を渡すことで実行タイミングを変更できると知らなかったのでメモです。

具体的に言うと、これまで以下のように書いていたのですが、
“`
before do
travel_to(Time.zone.local(2022, 7, 1, 0, 0, 0)) }
end
“`

以下の3パターンで変更ができます。 ※afterも同様です
1. before(:suite)
RSpecの実行時に呼び出される。
2. before(:all)
context/describeブロックの実行時に呼び出される。`before(:context)`とも書ける。
3. before(:each) ※デフォルト
itの直前に毎回呼び出される。冒頭に記載したように引数を指定しないとこのパターンになる。`before(:example)`とも書ける。

あくまでイメージですが、コードで見るとよりわかりやすいかと思います。
“`ruby
RSpec.describe Sample do
before(:all) do
puts ‘all

元記事を表示

Rails link_toで関数を渡す

# 背景
レシピ共有アプリ制作にて以下のような問題がありました

“`ruby:モデル
class User < ApplicationRecord has_many: recipes has_one: list end class Recipe < ApplicationRecord belongs_to: user has_many: ingredients end class Ingredient < ApplicationRecord belongs_to: recipe end #これは買い物リストのモデルで、追加したいレシピの材料をリストテーブルに保存します class List < ApplicationRecord belongs_to: user end ``` 買い物リストにレシピの材料を追加するときに、 パラメーターの中にレシピの情報を追加したかったのですが、 親子関係ではないのでルーティングのネストをせずに実現したい。。。 迷った末見つけた方法をここに残します ```ruby:ルーティング post '/lists', to: 'lists#c

元記事を表示

[Ruby]オプションの使い方・取得の仕方(OptionParser)

最近学んだOptionParserの使い方についてアウトプットします。

まず以下のような課題があるとします。
### Rubyでカレンダーを作る

`$ cal`で表示されるカレンダーを作ってみよう。

イメージ
“`
➜ ruby calendar.rb
2月 2022
日 月 火 水 木 金 土
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28
“`

### 必須要件
– macに入っているcalコマンドと同じ見た目になっていること
– Gemは使わないこと
– `-m`オプションで月を指定できるようにすること。今年が2022年なら `cal -m 6`で2022年6月のカレンダーになる。
– 引数を指定しない場合は、今月・今年のカレンダーが表示される

### 本題
この課題に対して、どのようにOptionPaserを駆使するか。。
まず、使い方の流れは以下の通りです。
1. OptionPaser オブジェクト opt を生

元記事を表示

【Rails】フラッシュメッセージの空白を消したい時

フラッシュメッセージの余白を消したい!

めちゃくちゃ邪魔↓
![スクリーンショット 2022-07-13 17.38.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602337/5db6b191-da85-6f9e-b4a3-3a7c3b156ae4.png)
“`erb:application.html
<% if notice %>

<%= notice %>

<% end %>
<% if alert %>

<%= alert %>

<% end %>
“`

if文でサクッと消しちゃいます。

元記事を表示

RailsでDM機能を実装してみました

# RailsでDM機能を実装
ポートフォリオでRailsでアプリケーションを作成し、1対1でDMを送ることができる機能を実装しました。

## 実装後の挙動
[![Image from Gyazo](https://i.gyazo.com/1c7046ceab98fba31db588dd244b9a5f.gif)](https://gyazo.com/1c7046ceab98fba31db588dd244b9a5f)

## 使用技術
Ruby 2.6.5
Ruby on Rails 6.0.5

## テーブル設計

まずはテーブル設計です。

![9b3e78d84a15a03decc6f6cc9a06e02c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727797/968e6019-39af-8247-906a-4bfbf884d19d.png)

usersテーブル ユーザーを管理するテーブル

roomsテーブル メッセージをする部屋

entriesテーブル usersテーブルと

元記事を表示

【rails6】超簡単なソート切り替え備忘録

管理画面等で役立つ、超簡単なデータの並び替えについて備忘録として残しておきます。

主に使うものは
– link_to(view)
– 条件分岐(controller)
– scope(model)

です。

前提として、articleモデルにある適当なデータを一覧にして、それを並び替えます。
**データ一覧ページへのパス:** articles_path
**ビュー:** index.html.erb
**コントローラー:** articles_controller.rb
**モデル:** article.rb

## ソート切り替え用のリンクを設置
まず、並び替えをしたい画面でそのトリガーとなるリンクを設置します。
viewファイルに以下のように記述します

“`erb

# ソート切り替え用リンク
<%= link_to '新しい順', articles_path(latest_created_at: true) %>
<%= link_to '古い順', articles_path(old_created_at: true) %>

<

元記事を表示

【Ruby on Rails】【Pokemon API】カントー地方151匹をすべて表示させてみよう

Railsで[ポケモンいえるかな](http://hoget.web.fc2.com/pokesay.html)を開発したくて、まず初段階としてポケモンをすべて表示させてみようと思いました。そのための備忘録です。

::: note
前提としてPokemonコントローラー(indexアクションのみ)とモデル(name:string)を作成している状態です。
:::

まずは`faraday`というHTTP通信させたいときに使うgemをGemfileに追記して`bundle install`します。
“`Gemfile:Gemfile
gem ‘faraday’
“`

“`terminal:terminal
$ bundle install
“`

新しくAPI通信を行えるように`pokemon_api.rb`を新規作成します。
“`terminal:terminal
$ touch app/models/pokemon_api.rb
“`
`pokemon_api.rb`を下記のように編集します
“`rb:app/models/pokemon_api.rb
cla

元記事を表示

ZoomAPI(Server-to-server OAuth)でミーティング設定更新の自動化(Update a meeting)してみた!

[バヅクリ](https://buzzkuri.com)CTOの合原です。
[前回](https://qiita.com/kieaiaarh/items/c604541b08ef19135025)投稿では、zoomAPIを使って、Zoomミーティングを作成するアプリケーションを作ってみました。

いいタイミングでこちらのキャンペーンも開催しているので、今回ももちろん、相乗りさせていただきました :sweat_smile:
https://qiita.com/official-campaigns/engineer-festa/2022

上記作成したところ、すぐさま、
「新規作成&既にできているZoomミーティングのレコーディング設定を自動化したい」、
という要望が挙がり、それならば!と、
前回作成したアプリケーションに、今回は、[Zoom Meeting update API](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingUpdate) を利用して、機能拡張してみま

元記事を表示

Before Rails Tutorial 2章 ポケモン図鑑を作ろう 課題

::: note
本記事は[ポケモン図鑑を作ろう](https://qiita.com/earth660/items/6773e8b59cc24c772244)で作成したアプリケーションに課題として機能を追加していきます。様々なヒントややり方を載せていますので参考にしてみてチャレンジしてください
:::

# 課題

## 1. ポケモン情報編集機能
ポケモンの情報を編集する機能を追加しましょう。

### 機能を追加する流れ
#### ①-1 routes・controllers・view の3点に、編集ページを新規作成する

まずはconfig/routes.rbを編集します
“`rb:config/routes.rb
get ‘pokemons/index’
get ‘pokemons/show/:id’, to:’pokemons#show’, as: ‘pokemon’
get ‘pokemon/new’, to: ‘pokemons#new’
post ‘pokemons’, to: ‘pokemons#create’

# 下の2行を追記する

元記事を表示

【Rails初心者】 XXX_idsのhidden_fieldを使ったパラメータの渡し方で躓いた件

# はじめに
Railsアプリケーションを作成していてタスク管理アプリにラベルを紐づける実装を行う際に、`confirm`から`label_ids`パラメータをどのように渡せばいいのか迷い調べた結果を備忘録として記入します。
間違いなどがありましたらご指摘願います。

# 開発環境
Rails 6.0.3
Ruby 3.0.1

# 状況
タスク新規投稿時に事前に用意したタグを複数登録できる実装を行います。新規作成時には`confirm`の確認画面を経由し、登録完了する流れです。
下記のように`confirm`からパラメータを送るため`hidden_field`を使用してみましたが、登録後にタスクの詳細表示をすると結果はタグが保存されていませんでした。
“`ruby:views/tasks/confirm.html.erb

以下の内容で、登録します

<%= form_with(model: @task, local: true, url:tasks_path ) do |form| %>
<%= form.hidden_field :title %>
<%

元記事を表示

【Rails】任意のErrorをthrowする。

メモとして残します。

# ■やり方

`raise “エラーメッセージ”`

“`ruby
begin
raise “エラーメッセージ” unless hoge.present?
rescue StandardError => e
#エラーの処理
end

“`

以上

元記事を表示

Ruby 練習問題4 ~特定条件のみに呼応するプログラムの作成~

こんにちは、プログラミング初学者”fujitacoma”です!

今回は、Ruby練習問題シリーズの4回目です。
Dateクラスを使用し、曜日を呼び出すプログラム問題です!

それでは早速始めます!

# 問題
今日の曜日を表示するコードをDateクラスを使用して記述してください。

ただし、金曜日だった場合だけ以下のように表示の内容を変えてください。

(出力内容)
「今日は月曜日」
「今日は金曜日だ !!!」

## ヒント
### Dateクラス
DateクラスとはRubyの標準ライブラリの機能です。Dateクラスを使うには以下一文を記述します。
“`ruby
require “date”
“`
次に、Dateクラスを用いて「今日の曜日」を取得する場合は以下のように記述します。
“`ruby
Date.today.wday
“`
`wday`は曜日を0(日曜日)から6(土曜日)の整数で取得することができる
Dateクラスに用意されているメソッドです。

たとえば、以下のように使うことができます。
“`ruby
require “date”

day = Date.tod

元記事を表示

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

## 今日はファイル分割とインスタンスの配列を学んでみた!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/a82970ad-091d-d0ab-1280-68ae1ef5fba4.png)

## 今日の学び
### ファイルを分割する
* 一部のコードを別のファイルに分割して処理することができる
* 最初に`require “./ファイル名”`とすることで、ファイル名.rbのコードを読み込める

### インスタンスの配列
+ インスタンスも配列の要素にすることができる
* 例
* `menu1 = Menu.new(name:”パン”,price:500)`
* `menu2 = Menu.new(name:”そば”,price:700)`
* :
* :
* `menus = [menu1,menu2,…]`→配列の要素にする
* `menus.each

元記事を表示

【VSCode】Solargraphの導入【Ruby】

## 拡張機能をインストールする
solargaphの拡張機能をVSCodeにインストールします。

https://marketplace.visualstudio.com/items?itemName=castwide.solargraph

## gemをインストールする
solargraphをグローバルインストールする場合には以下のとおりインストールします。

“`:ターミナル
$ gem install solargraph

# グローバルなgemのdocumentを生成。
$ yard gems
“`
`bundle exec`しないように`settings.json`に以下のように記述します。

“`settings.json
“solargraph.useBundler”: false
“`

bundlerでinstallする場合には以下のとおりインストールします。

“`:Gemfile
group :development do
gem “solargraph”
end
“`

“`bash
$ bundle install

# プロジェクト

元記事を表示

【Ruby on Rails】トップに戻るボタンの作成

# 目標

よくWebページで見るトップへ戻るボタン(画像右下)を作成します。

![Pagetop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730324/caaf94d0-a965-823b-b2ff-bfb22e672df9.png)

# 開発環境
Rails 6.1.4
ruby 2.6.3

# 目次
– Viewページの作成
– CSSファイルの作成
– jQueryの定義(jsファイルの作成)

## Viewページの作成

まずトップへ戻るボタンとして使用したい画像を用意します。
今回は下記の画像使用。

![arrow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730324/773d73b8-46c9-4b3e-0167-94bd61858604.png)

下記のように記述します。

“`html:index.html

元記事を表示

Ruby On Rails7.0.3でscssファイル適用時の’cannot load such file — sassc’エラー

rails7.0.3でアプリケーション作成中に、’cannot load such file — sassc’のエラーメッセージが…

調べてみると以前のversionはデフォルトでinstallされていた`gem “sassc-rails”`が、rails7からデフォルトでコメントアウトされているとのこと。

Gemfileを確認してみると46行目あたりに
“`ruby:Gemfile
45 # Use Sass to process CSS
46 #gem “sassc-rails”
“`
との記載が、これを以下のように修正

“`ruby:Gemfile
45 # Use Sass to process CSS
46 gem “sassc-rails”
“`
`bundle install`します。
その後サーバーを再起動すると、無事解決しました!

元記事を表示

OTHERカテゴリの最新記事