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

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

fastlaneのdeliverからAppStoreのメタデータ送信する際の留意点

## 概要
2021/08現在における `fastlane deliver` を使った AppStore へのメタデータ送信について、ドキュメントが少なかったので留意点を記しておきます。

## 前準備
#### ■ AppStre API Key

2021/08現在では `deliver` からメタデータをCI経由で送る場合 `AppStore API Key` が必要です。
これがないと 2FA をクリアできないので、、
ローカルで実行するだけであれば、`fastlane` で利用できる通常のログイン機構で大丈夫です。
その場合、コマンドの途中で 2FA のパスワードを求められることになります。

ちなみに.envなどを利用して環境変数に必要keyを格納し、下記のようにAPIKeyを取得できるような `fastlane private action` を `Fastfile` に作っておくと便利です。

“`ruby
#### App Store API への認証Key生成

desc “App Store Connect API Key”
# private_lane :ap

元記事を表示

【Ruby on Rails】font-awesome-sassを導入してアイコンを重ねて表示する方法

#対象者

* RailsアプリにFont Awesome導入予定の方
* Font Awesomeを重ねて表示したい方

#目的

* アイコンを重ねて表示する!

イメージは下記の通り

![スクリーンショット 2021-09-10 7.35.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/6012ab5c-5ffa-548e-857a-d477a681d4da.png)

#####使用環境

Rails 5.2.5

**注意**:Rails6をご使用中の方は導入方法が異なります。詳しくは[こちら](https://pikawaka.com/rails/font_awesome_sass)を御覧ください

#実際の手順と実例
###1.FontAwesomeを設定する

Gemfile

“`
gem ‘font-awesome-sass’
“`

導入後は**bundle install**を実行する

続いてapplication.cssをapplication

元記事を表示

ポートフォリオ紹介(INTELIST)【Ruby on Rails / AWS】

#はじめに
業界・実務未経験者がエンジニア転職を目指して独学で約半年間プログラミング学習を行い、このたび転職用にポートフォリオを作成したため紹介していきたいと思います。
今後もアップデートをしていく予定なので、何かあれば本記事のコメント等にフィードバックをいただけますと助かります!

#アプリ概要
気になるものを何でもかんでもリスト化して管理・シェアするためのSNSアプリ「INTELIST(いんたりすと)」を作成しました。

+ 気になるものをジャンル問わず投稿し、友人とシェアできる
+ リスト化しておくことで後から確認できる
+ 他のユーザーの興味をランキングで確認し、トレンドを把握できる

といった特徴があります。

![toppage.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1166024/4af1158b-a07e-0a9e-1b62-839b27cda8f3.gif)

下記のURLにて公開中ですので、よろしければご覧ください!
[https://inte-l

元記事を表示

【Rails】フォームのplaceholderを改行する方法

# はじめに
今回はフォームの中のplaceholder(下記の画像のもの)を改行する方法について記述します。
![スクリーンショット 2021-06-26 23.11.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1623096/d6a42ce5-d965-0c72-60d7-3e06ca2850b9.png)

# 開発環境
Ruby on Rails バージョン2.6.5


# 通常(改行を不要とする場合)の記述
通常改行が不要な場合の記述はこのように記述します

“`ruby
<%= f.text_area :hoge, class:"hoge", id:"hoge", placeholder:'ここに表示させる文字を入力します' %>
“`
ですが、改行をしたplaceholderを作成する場合は、上記の記述に改行を加えても反映されないので、rails helperを使用することで問題が解消されます!

※rails helperをご存知ない方はまずは

元記事を表示

【Ruby】正規表現これだけ理解しておこう!

正規表現を苦手としている方は少なくないと思います。
ただ、正規表現に関しては基礎的な部分だけおさえておけば大きな問題はないと思うので、ここで理解を深めてしまいましょう!

**ある程度自信のある人は一番最後の例題を見てパッと理解できるか確認してみてください。**

#正規表現とは

正規表現とは、**文字列のパターンを表したもの**です。

正規表現は`/ /`で囲んで記述します。

#正規表現の基礎項目

正規表現を扱う上で必要な基礎項目を列挙していきます。

##=~

正規表現と文字列がマッチするかをどうかを調べるためのメソッドです。

“`ruby
正規表現 =~ 文字列
“`

マッチする場合、文字の位置を返し、マッチしない場合、nilを返します。

“`ruby
puts /a/ =~ “dance”
#1
“`

##^ $ \A \z

“`
^は行頭にマッチ
$は行末にマッチ

\Aは文字列の先頭にマッチ
\zは文字列の末尾にマッチ
“`

#[ ]

いくつかの文字のうちその1つを指定したい場合は`[ ]`で囲む。

“`rb
/[abc]/

元記事を表示

[Rails]collection_selectにclassをつける

# はじめに
本記事では、`collection_select`に`class`をつける方法を記述します。

# うまくいかないコード
第5引数、第6引数にオプションを記述し、第7引数にclass名を指定しています。

“`erb
<%= search_form_for @q, url: search_foods_path, class: "food-search", id:"pull-down" do |f| %>
<%= f.label :shop_name_or_shop_name_kana_or_food_name_or_station_cont, '店名・メニュー名・駅名', class: "search-label" %>
<%= f.text_field :shop_name_or_shop_name_kana_or_food_name_or_station_cont, placeholder: "KEYWORD", class: "search-text" %>
<%= f.label :user_nickname_cont, 'ユーザ

元記事を表示

[Ruby] AtCoder過去問 C – Go to School

##はじめに
AtCoder過去問を解きました。
が、今回正解のコードは出来上がったものの理解し切れていません。。。

解説できる方がおられたら、コメント欄にて教えていただけると幸いです。

問題はこちらから確認ください。↓

https://atcoder.jp/contests/abc142/tasks/abc142_c

##C – Go to School
この問題かなりややこしくて入力値のaで受け取っているところは、到着した順位を表しています。
先頭から出席番号1です。

出力で表示されている番号たちは順位ではなく、出席番号で、到着した順に並んでいます。

つまり入力値aの添字+1=出席番号です。

これらの情報をもとに、私がはじめに作ったコードはこちら↓
(このコードは不正解です)

“`Ruby
n = gets.to_i
a = gets.split.map(&:to_i)

n.times do |x|
puts a.index(x+1) + 1
end
“`

上記のコード間違っているかどうかと言うより、処理時間が長すぎて不正解となりました。
この手の問題

元記事を表示

Rubyってなんやねん

こんにちは!
スクールのカリキュラムの通りに実装を進めて教材の通りに
Ruby on RailsでWebアプリケーション作成しました。
しかしふと思ったんです。

# 何でRuby?

***ラビットの麒麟川島「Rubyだ」***

PHP、Java, Pythonとあって何でRubyを俺は使ってる??
と思いました。
まさしく僕は誰?状態です。
メモ用としてRubyのことについてディグっていきたいと思います。

# いつできて誰が作ったの?
Rubyが生まれたのは1995年です。
はいそうです、僕と同い年です。
しかも開発された方は日本人の
まつもとゆきひろさんという方だそうです!!

海外旅行に行くと
レペゼンジャパンはドラゴンボールやキャプテン翼などが挙げられますが、
エンジニア界隈では「Rubyやん!」と言われることもあるんじゃないの。

# Rubyの特徴

動的型付き言語でありシンプルな構文なので記述量が少なく、
プログラミング初心者でも比較的入りやすい言語のようです。
また、オブジェクト指向を採用しているため、保守、運用に優れています。

これ初めて聞いた時、因みに僕はこ

元記事を表示

Rails | バリデーション validates と validate の違い

モデル(model)にバリデーションを書く際に使い分けすることがあったのでメモ。

## それぞれの違いについて

###validates
標準のバリデーションを書くときはこれ
>使い方はRailsガイドを参照
>https://railsguides.jp/active_record_validations.html

###validate
自分でオリジナルのバリデーション用メソッドを書くときはこれ

## validateの使用例
“`ruby:model
validate :photo_size, :photo_length

private
def photo_size
photos.each do |photo|
if photo.blob.byte_size > 5.megabytes
photo.purge
errors.add(:photos, “は1つのファイル5MB以内にしてください”)
end
end
end

def photo_length
if photos.lengt

元記事を表示

ログイン実装について、Devise/Warden/Rack の関係を一言で

Rails のログイン実装でお馴染みの Devise について調べたため、メモを残します。引用元を合わせて記します。

Devise とは?

・Rails に認証を実装するためのソリューションのこと
Warden がベースになっている
> Devise is a flexible authentication solution for Rails based on Warden.
> −− [Github](https://github.com/heartcombo/devise)

Warden とは?

Rack 内で、認証するメカニズムを与えてくれるもの

> Warden provides a mechanism for authentication in Rack based Ruby applications.
> −− [Github](https://github.com/wardencommunity/warden/wiki)

つまり、
1. Rack 内で、
2. War

元記事を表示

Example title

# Example

元記事を表示

バリデーションとは?

昨日の学習の復習です!

#バリデーション、、

クライアントが入力した情報(データ)をデータベースに保存するときに、制約をかけること!(バリアを張ることって自分は覚えています)

例えば
名前とメールが空(入力されてない)だと登録できませんよー
何文字以内にしてね!
数字しか許さん   などなど

#####そこで使われるのが、、、

##validatesメソッド!!!
バリデーションを設定する時に使用するメソッド

こんな風にバリデーション(バリア)します

“`
validates :カラム名, バリデーションの種類
“`

1つ例として

“`
validates :name, presence: true
“`

バリデーションの種類でpresence: trueと書くことでnameカラムが空だと登録できませんよーというバリデーションを制約(バリア)をかけている

以上!

元記事を表示

ターミナルでActionView::Template::Error

今日、初歩的なミスでずっと引っかかってしまいました:frowning2:

エラー内容

`NoMethodError undefined method
errors’ for nil:NilClass“

↓ターミナル

“`
ActionView::Template::Error (undefined method `errors’ for nil:NilClass):
1: <% if model.errors.any? %        2:

3:

    4: <% model.errors.full_messages.each do |message| %>

    “`

    nil:NilClassから、『クラスがないよ!』
    undefined method から『メソッドが未定義なんだが、、、』
    というエラーということが考えられます。

    原因
    —–

      

    “`ruby:views/new.html.erd

元記事を表示

【エラー】rails new APP_PATH [options]

## 概要

“`
Usage:
rails new APP_PATH [options]

Options:
[–skip-namespace], [–no-skip-namespace] # Skip namespace (affects only isolated engines)
[–skip-collision-check], [–no-skip-collision-check] # Skip collision check
-r, [–ruby=PATH] # Path to the Ruby binary of your choice
# Default: /Users/fujitanisougaku/.rbenv/versions/2.6.6/bin/ruby
-m, [–template=T

元記事を表示

チラ裏。if,elseの問題

問題
「ポイント付与サービスを考えます。
購入金額が999円以下の場合、3%のポイント
購入金額が1000円以上の場合、5%のポイント
このように付与されるポイントを出力するメソッドを作りましょう。

ただし誕生日の場合はポイントが5倍になります。
誕生日の場合はtrue, 誕生日でない場合はfalseで表します。
また、小数点以下をすべてのポイント計算が終わったあとに切り捨てましょう。

呼び出し方:
calculate_points(amount, is_birthday)」

step1
購入金額が999円以下なのかまたは1000円以上なのかを判断したいので、条件分岐後ポイント計算をした後に結果を変数pointに代入します。

“`ruby:qiita.rb
if amount <= 999 point = amount * 0.03 else point = amount * 0.05 end ``` step2 誕生日の場合は、直前で定義した変数pointに5をかける処理を行います。 ```ruby:qiita.rb if is_birth

元記事を表示

Railsのインストールでつまづいたこと(原因はONEDRIVE)

もう腹が立って仕方がない

結局は個人のデスクトップフォルダが、知らない間にOnedriveにリンクされていて、
権限の関係でインストールが出来なかったからである。

それにしても、腹が立つ・・・

以下の環境はどちらも駄目だった。

* WSL/Ubuntu
* MYSYS2/MinGW

# デスクトップフォルダ

ずいぶん前は
C:\Users\motoc\デスクトップ\rails

最近、こうなっている
C:\Users\motoc\OneDrive\デスクトップ\rails

知らない間に、こんなクソ仕様にしやがって・・・

しばいたろか!

#フォルダ

C:\Users\motoc\OneDrive\デスクトップ\rails

“`
motoc@DESKTOP-5GGB0DP MINGW64 ~
$ cmd.exe /c “chcp 65001”
Active code page: 65001

motoc@DESKTOP-5GGB0DP MINGW64 ~
$ cmd.exe /c “mklink /j rails C:\Users\motoc\OneDriv

元記事を表示

○○のインスタンス変数の情報の有無で条件分岐させたい時に使うメソッド

## はじめに
学習の備忘録です。
Ruby on Rails 6.0、MySQLでアプリケーションを開発しています。

## やりたいこと
あるモデルに登録されている情報を、トップページに表示する実装を学習。
モデルに情報が登録されている場合はモデル内の情報を一覧で表示できるようにし、
モデルに情報がない場合はダミーのデータ(後述の配置例では文字列)を表示するように実装します。

上記の通り、条件分岐の記述が必要になるので`if文`を使います。
まずトップページにモデルの情報を取得できるようにルーティングとアクションを設定します。

“`routes.rb
Rails.application.routes.draw do
resources :items, only: [:index, :new, :create]
end
“`

“`items_controller.rb
class ItemsController < ApplicationController def index @items = Item.all end end ``` ここから`i

元記事を表示

【Ruby on Rails】link_toメソッドをリンクではなくボタンとして使う方法

#対象者

* link_toメソッドの使い方を知りたい方

#目的

* link_toメソッド使ってviewでボタンを表示する

#実際の手順と実例
###1.link_toメソッドの表示の違い

####a. 基本的な構文

““
<%=link_to "表示する文字", "URL" %>
““
上記の書き方だと**テキストリンク**になってしまう

####b. doとendで囲う方法

““
<%= link_to URL do %>
   表示する文字
<% end %>
““

これでボタン化できます。

###2. 実際の使用例

下記サイトを参考に表示テキストがホバーすると変わるボタンを実装

https://coco-factory.jp/ugokuweb/move01/7-1-42/

上記記事のHTMLコードは下記の通り

““index.html

About私たちについて

““

※CSSは省略しま

元記事を表示

【Python】【Ruby】【Java】ビンゴカード作成問題!

 現在僕はPythonを学んでいます。Pythonを学び始めて1週間ほどが経過したので、過去にRubyやJavaで作成していたプログラムをPythonでも作ってみることにしました。

B:1~15のどれか
I:16~30のどれか
N:31~45のどれか
G:46~60のどれか
O:61~75のどれか

“`
B | I | N | G | O
13 | 22 | 32 | 48 | 61
3 | 23 | 43 | 53 | 63
4 | 19 | | 60 | 65
12 | 16 | 44 | 50 | 75
2 | 28 | 33 | 56 | 68
“`

 上記のような出力結果を得るプログラムになります。

– Rubyの場合
– Javaの場合
– Pythonの場合

 以上の流れでコードを載せていきます。

## Rubyの場合

https://qiita.com/kim-shun/items/0c862ff71e61648cd346

“`ruby
puts ” B | I | N | G | O”

b = (1..15).

元記事を表示

【Ruby】配列を制するものはRailsを制す。

Rubyの配列の基本についてまとめます。

実際にRailsでアプリを実装するときなどには、配列は頻繁に扱うことになります。
配列をうまく扱うことができれば実装力が増すことは間違いありません!

#配列の作り方

普通に`[]`でくくればできますが、それ以外の方法を簡単に見ておきましょう。

###Array.new

“`ruby
array = Array.new(3, ‘ok’)
p array

#[“ok”, “ok”, “ok”]
“`

###splitメソッド

“`rb
string = ‘taro jiro saburo’
array = string.split(‘ ‘)
p array

#[“taro”, “jiro”, “saburo”]
“`

#要素を取り出す・置き換える・挿入する

###要素を取り出す

“`ruby
array = [“taro”, “jiro”, “saburo”]
new_array = array[1..2]

#[“jiro”, “saburo”]
“`

###要素を置き換える

“`ruby
arra

元記事を表示

OTHERカテゴリの最新記事