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

Ruby関連のことを調べてみた2020年05月06日
目次

AWSにログインする方法

ssh Portfolio_key_rsa

元記事を表示

デイリードリルアウトプット3

# TECH::CAMPでは毎朝問題が出題されます。気になったものを自分の勉強用として記録しています。

## Question
Rubyのメソッドを定義するときに、様々な引数の渡し方ができます。

以下の機能を利用したメソッドのコードを記述してください。
メソッドの内容は問いません。

①デフォルト値
②可変長引数
③キーワード引数
>今までは

>def method1(num=3)
puts num
end

>method1

>のようにしか引数を使っていなかったんですが、他にもたくさん便利な渡し方があるようです。

## Answer
***①デフォルト値***

“`ruby
def method1(num=3)
puts num
end

method1 # => 3
method1(10) # => 10
“`
>
メソッド側で(num=3)とデフォルト値を設定することで、代入するオブジェクトが無かった場合(呼び出し側で指定した引数の数が、メソッド定義側で指定した引数よりも少なかった場合)、デフォルト値が設定されていればその値が

元記事を表示

Ruby スクリプトで「もしかしてこれ?」と言ってみたい

# はじめに

Ruby で,メソッド名を少しだけ間違うと,「もしかしてこれ?」と言ってくれる。
たとえば円周率を表示しようとして

“`rb
puts Math::PI
“`

のつもりで

“`rb
pots Math::PI
“`

とやったら

“`
NoMethodError (undefined method `pots’ for main:Object)
Did you mean? puts
“`

のように表示される。
意訳すれば

> `pots` なんつーメソッドはねーよ
> もしかしてこれ? `puts`

となる。
存在しないメソッドを呼び出そうとしたときに,存在するメソッドの中からよく似た名前のものを探してきて,候補として表示してくれるンである。

こういう機能を自作のスクリプトにも組み込めないか?
つまり,ユーザーに何か入力させるのだが,受け付ける文字列があらかじめ限られていて,そこから外れているときに,「もしかしてこれ?」とやるわけだ。

# お題

こんなプログラムを考える(実用性は考えていない)。
Ruby 関係のよく見るウェブサイトを

元記事を表示

掲示板アプリに空の投稿を出来ないように制限をかける

【開発環境】
macOS Catalina
バージョン 10.15.3
ruby 2.5.1
Rails 5.2.4.2
visual studio code

勉強用に掲示板アプリを作成したので、その際に行ったバリデーションを記載します。
#バリデーションを設定し、空の投稿を制限しよう
掲示板アプリなどで空の投稿が出来てしまうというのは望ましくありません。
それを防ぐためにバリデーションを設定する必要があります。

##バリデーションとは?
バリデーション(validate)とは、データをDBに保存する前に無効なデータが保存されないように制限する機能のことです。

バリデーションの基本的な書き方です。

“`
validates :カラム名(シンボルで指定),チェックの方法
“`
##投稿機能にバリデーションを設定する
今回作成した掲示板アプリの投稿(post)のカラムはタイトル(title)と内容(content)です。
この二つのカラムが空の場合投稿できないようにバリデーションを設定します。

バリデーションはデータをDBに保存する前に行うので、モデルに記載する必要があります

元記事を表示

Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 107 B – Grid Compression](https://atcoder.jp/contests/abc107/tasks/abc107_b)*
Difficulty: 434

今回のテーマ、文字列操作
# Ruby
“`ruby.rb
h, w = gets.split.map(&:to_i)
a = []
h.times do |i|
s = gets.chomp
a.push(s) if s.count(‘.’) != w
end
1.upto(w) do |i|
f = true
a.each do |x|
f = false if x[w

元記事を表示

【フリマアプリ】PAY.JPでのクレジットカード決済機能について(第4回) 〜コード全文〜

“`ruby:cards_controller.rb
class CardsController < ApplicationController require 'payjp' before_action :set_item, only: [:show,:pay] before_action :card_present,only:[:index,:destroy] before_action :take_card,only:[:show,:pay] before_action :set_api_key def index if @card.present? set_customer set_card_information end end def create if params['payjp-token'].blank? redirect_to action: "new" # トークンが取得出来てなければループ else user_id = c

元記事を表示

【フリマアプリ】PAY.JPでのクレジットカード決済機能について(第3回) 〜運用編(購入)〜

 某スクールにおいて、チーム開発で、フリーマーケットアプリを作成中であり、使用した技術について公開しています。
※初学者のため、ミスや認識違いが多々あると思いますがご了承ください。

# フリマアプリにおいて、PAY.JPを用いたクレジットカード決済機能を実装しました!!

前回記事 

今回の記事は運用編(購入)となります。

それでは、実際にPAY.JPを用いてクレジットカード機能を用いた購入ができるように実装して行きたいと思います。

##カード情報表示

825ca2a1a52d58d1bdafec6ab3d0b05f.png

「購入する」ボタンをクリックしたら、**cardsコントローラーのshow**アクションに遷移します。

0b757cba1d9c2</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Ruby</div>
<div class='tag-cloud-link'>JavaScript</div>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>haml</div>
<div class='tag-cloud-link'>pay.jp</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/sho_U/items/64ca57b7a1f72bf7079f'>元記事を表示</a></div>
<h3 id=【フリマアプリ】PAY.JPでのクレジットカード決済機能について(第2回) 〜運用編(クレジットカード登録)〜

 某スクールにおいて、チーム開発で、フリーマーケットアプリを作成中であり、使用した技術について公開しています。
※初学者のため、ミスや認識違いが多々あると思いますがご了承ください。

# フリマアプリにおいて、PAY.JPを用いたクレジットカード決済機能を実装しました!!
|内容 | url |
|:—————–|——————:|:—————————–:|
| 第1回 |導入編 | https://qiita.com/sho_U/items/ee0831844a0afd6e976f|
| 第2回 |運用編(クレジットカード登録) | https://qiita.com/sho_U/items/0a127e6f0904e3e9132b |
| 第3回| 運用編(購入)|https://qiita.com/sho_U/items/64ca57b7a1f72bf7079f|

今回の記事は運用

元記事を表示

【フリマアプリ】PAY.JPでのクレジットカード決済機能について(第1回) 〜導入編〜

 某スクールにおいて、チーム開発で、フリーマーケットアプリを作成中であり、使用した技術について公開しています。
※初学者のため、ミスや認識違いが多々あると思いますがご了承ください。

# フリマアプリにおいて、PAY.JPを用いたクレジットカード決済機能を実装しました!!

|内容 | url |
|:—————–|——————:|:—————————–:|
| 第1回 |導入編 | https://qiita.com/sho_U/items/ee0831844a0afd6e976f|
| 第2回 |運用編(クレジットカード登録) | https://qiita.com/sho_U/items/0a127e6f0904e3e9132b |
| 第3回| 運用編(購入)|https://qiita.com/sho_U/items/64ca57b7a1f72bf7079f|

〜コード全文

元記事を表示

rake実行時の NameError: uninitialized constant Xxxxx の解決について

# 今回の問題
rakeタスクを実行して以下のようなエラーがでた。

ただしこのエラーが出て条件として、「**別プロジェクトからコピーで取ってきたrakeを実行**」して通常見ないエラーが出現した。

“`sh:rake実行後のエラー
rake aborted!
NameError: uninitialized constant AutoRakeTask
“`

# 解決
rakeのタスク名と一緒に`:environment`を付与することで解決した。

“`ruby:before
task :exec do
“`

から

“`ruby:after
task exec: :environment do
“`

へ変更したら、事象が解決した。

ちなみに、environmentについて調べた結果、以下の記事にたどり着いたが、記載されていたエラー文も同じものだった。
参考:[Rails における rake タスクの :environment について](https://qiita.com/FumiyaShibusawa/items/11035fc640bb36a615

元記事を表示

『フリマアプリ』カテゴリー別に商品を表示する方法

#はじめに
今回実装する機能はこちら:point_down_tone5:

__1:親要素のカテゴリーをクリックした場合全ての子要素の全ての孫要素のカテゴリー名を含む商品を表示__(全てが多すぎますね、、説明できなくてすみません。)
![40e45f95b9d2fc324f16e72b9b8be59a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601876/ae081f09-3c6f-4bb6-1590-b2aa598dfc78.gif)
__2:子要素ののカテゴリーをクリックした場合クリックされた子要素の全ての孫要素のカテゴリーを含む商品を表示__
![48593223ec3a60fa31e9bc188950f7dc.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601876/ec69b93b-7d57-e983-dbd8-4ef69cffba87.gif)
__3:孫要素のカテゴリーをクリックした場合クリックされ

元記事を表示

[Rails] has_secure_passwordについて

最近使う機会が増えてきたhas_secure_passwordについてまとめてみました。

***

“`
class User < ApplicationRecord . . . has_secure_password end ``` *** ##具体的なメリット 1.セキュアにハッシュ化したパスワードを、データベース内のpassword_digestという属性に保存できるようになる。 2.2つのペアの仮想的な属性 (passwordとpassword_confirmation) が使えるようになる。**また、存在性と値が一致するかどうかのバリデーションも追加される。** 3.authenticateメソッドが使えるようになる (引数の文字列がパスワードと一致するとUserオブジェクトを、間違っているとfalseを返すメソッド)。 *** ##has_secure_passwordを使うための条件 1.gemに'bcrypt'を追加する。 2.モデルにpassword_digest属性を追加する。 *** ##注意点 メリットの2つ目のバリデ

元記事を表示

【さちゃでもわかる】Ruby on Rails 入門1

## はじめに
1年くらい前にProgateでRubyを少しだけ触っていた自分が,バイトで1ヶ月バリバリのRubyの環境で(知らなかった)学んだ話の備忘録.

## 実装環境
macOS Catalina 10.15.4
ruby 2.6.3
Rails 6.0.2.1

## 参考リンク
[Railsガイド](https://railsguides.jp/getting_started.html)

## Railsとは?
[Railsガイド](https://railsguides.jp/getting_started.html)を軽くまとめると

– Rubyプログラミング言語で書かれたWebアプリケーションフレームワーク
– Railsは、最善の開発方法というものを1つに定めており,それに沿った開発を全面的に支援する
– コード量がより少なくて済むにもかかわらず、より多くの機能を実現できる

というものです.そしてRailsの哲学には

#### 同じことを繰り返すな (Don’t Repeat Yourself: DRY):
> DRYはソフトウェア開発上の原則であり、「シ

元記事を表示

2020/05/05(火)Day4

# 2020/05/05(火)Day4
#####9:30~10:30 Ruby基礎
– クラスメソッド・インスタンスメソッド違い

| 項目| クラスメソッド | インスタンスメソッド |
|:-:|:-:|:-:|
| 定義方法 | メソッド名の前にself.class名 | メソッド名の前にselfつけない |
| 用途 | 個別の属性値は関連性ない共通の処理 | インスタンスごとの属性値を用いる個別の処理 |
| 呼び出し元 | クラス自身 | クラスのインスタンス |

– クラスの継承

“`ruby
class 子クラス名 < 親クラス名 end ``` - 確認テストで学んだこと ```ruby def initialize(引数1, 引数2) *メソッドに引数を設定しておく @引数1=引数1 @引数2=引数2 end ``` #####10:30~ RubyOnRails基礎 - Railsアプリケーション仕組み  ・ルーティング *リクエストを振り分ける    ↓  ・コントローラー  ⇄  ・モデル *共通した処理や、データの結びつ

元記事を表示

CloudFormationで使われていないExportを洗い出す

CloudFormationにおいてスタック間で値を受け渡したいときに、参照される側で出力値をエクスポートして、参照する側で`Fn::ImportValue`で読み込む方法があります。
[スタックの出力値のエクスポート](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html)

エクスポートされている値は各スタック詳細の出力や[エクスポート]から見ることができます。

2020-05-05_22_09_02.png

2020-05-05_22_10_20.png~これまでの学習項目および参考にした教材~

~これまでの学習項目および参考にした教材~

【バックエンド言語】
・Ruby
 →プロを目指す人のためのRuby入門

・Ruby on Rails
 →Railsチュートリアル6版

・Rspec
 →Everyday Rails Rspecテスト入門

【フロントエンド言語】
・HTML/CSS
 →1冊ですべて身につくHTML&CSSとWEBデザイン

・Bootstrap
 →公式リファレンス

・Materialize
 →公式リファレンス

【その他】
・Docker
 →Dockerを利用した開発環境の構築方法を学ぼう!

・Git Hub
 →もう怖くないGit!チーム開発で必要なGitを完全マスター

元記事を表示

ビュー(erb,haml)でデバッグを行う

##やること
今回の記事では、表題の通りビューファイルの中でデバッグを行います。
erbとhamlではhtmlの中にRubyを書き込むことが出来るため、実はbinding.pryをかけることが出来ちゃいます。
これにより、ビューで使用する変数にどのような値が格納されているか分かるわけです!
やることはすごく簡単なことですが、意外と盲点となっており初学者では知らない人も多いと思います。

##早速やってみる
以下のようにerbで書かれたビューファイルがあったとします。
注目する点は2行目のbinding.pryです。
erbはビューファイル内にRubyのコードが書けるので、2行目で処理を止めることができます。

“`erb
<% @posts.each do |post| %>
<% binding.pry %>

Ruby on Rails ページ毎のタイトルを自動で切り替える方法

ページ毎にタイトルを変更する方法

ステップ1:ヘルパーにメソッドを定義する

今回はどこのページでも使いたいメソッドなので、ApplicationHelperに定義する

“`application_helper.rb
#application_helper.rb
module ApplicationHelper
def full_title(page_title=””)
base_title = “固定文”
if page_title.empty?
base_title
else
page_title + “【” + base_title + “】”
end
end
end
“`

ステップ2:ビューに表示れるようにメソッドを埋め込む

“`application.html.erb
<%= full_title(yield(:title)) %>
“`

ステップ3:各ビューで表示したいタイトルを埋め込む

`

元記事を表示

Kinx ライブラリ – Isolate (マルチスレッド)

# Kinx ライブラリ – Isolate (マルチスレッド)

## はじめに

**「見た目は JavaScript、頭脳(中身)は Ruby、(安定感は AC/DC)」** でお届けしているスクリプト言語 [Kinx](https://github.com/Kray-G/kinx)。言語はライブラリが命。ということでライブラリの使い方編。

今回は Isolate です。お待ちかねマルチスレッドです。そして Native Thread です。Isolate という名前からわかるように、スレッドモデルとしては各スレッド独立して動作し、メモリを共有させません。それによって安全性を高めるという選択肢です。

* 参考
* 最初の動機 … [スクリプト言語 KINX(ご紹介)](https://qiita.com/Kray-G/items/ca08b6fb40d15dd0ec76)
* 個別記事へのリンクは全てここに集約してあります。
* リポジトリ … [https://github.com/Kray-G/kinx](https://gith

元記事を表示

Docker on Rails デモ ヤリマスヵ…

# はじめに
                 )
                 ( _
            , – ニ ̄   ̄ ` 、
           /               `ヽ
        , – ‘、      -=-  -=- ‘,_
       r´   ヽ.    γ  ̄ ヽ γ ̄ヽ ‘,ヽ.
      {      i=={ l    l.=l l   .} | i__  Docker デモ ヤリマスヵ…
.      i  < ̄`ヽ、 弋ゝ _ノ 弋ゝ ノ >´ , ィ´
      弋__ _> 、 ヽ、  ̄       ̄ / /ヽ
         |     ` ー`             }
         ゝ、                  /
           `ー -、 – ______ , ィ´
           /    l /   |>く| \ ハ
             /_   .l > .|:H:| く l ハ
           , ‐´  `ヽ、l /  .l:l l:l  l.l-‐

元記事を表示

OTHERカテゴリの最新記事