Rails関連のことを調べてみた2020年04月22日

Rails関連のことを調べてみた2020年04月22日

[Rails]Pay.jpを利用したクレジット決済機能実装 ① ~実装の準備・APIの導入~

## はじめに
例によって、某プログラミングスクールの最終課題である、フリマアプリのクローンサイト作成において、購入機能実装時にPay.jpを利用したので、健忘録としてここに記す。

## バージョン情報
ruby ‘2.5.1’
Rails ‘5.2.4.2’

## 実装の流れ
1. 実装の準備・APIの導入 ← 今回の実装内容
2. モデルの作成・クレジットカード登録
3. クレジットカード編集・削除
4. クレジットカード購入(決済)機能

## 前提条件として
* 記載はhaml記法で
* [私の参考にしたrailsにhamlを導入するやり方はこちら、、](https://qiita.com/MitsuguSueyoshi/items/f1b0b047553fde49bbc1)

## **いよいよ実装!** PAY.JP登録・APIキーの取得
1. こちらのサイトよりPAY.JPのアカウントを取得ください
[PAY.JP](https://pay.jp/)

2. サインアップした時の様子(若干データは入って

元記事を表示

[Heroku][Rails]ログ出力方法

### はじめに
Railsでログを追加する場合、主にloggerを使用するかと思いますが、そのままではHerokuでログが残りません。
利用は以下2点。
・Herokuは標準出力されたものをログとして保存している
・Railsのloggerはデフォルトではファイル出力

loggerで追加したログをHerokuでも残るように設定する方法を記載します。

### 対応方法
結論から記載すると、Heroku側にRAILS_LOG_TO_STDOUTという環境変数を設定することで対応します。

#### 対応手順
1.メニューの「Dashboard」
2.設定したいアプリケーション選択
3.「Settings」タブ
4.「Reveal Config Vars」ボタンをクリック
5.「Config Vars」にそれぞれ以下を入力
 KEY:RAILS_LOG_TO_STDOUT
 VALUE:任意の値 ※”true”で確認済み
6.「Add」ボタンをクリック
7.アプリケーションを再起動

#### Railsの設定ファイルについて
RailsではどこでRAILS_LOG_TO_STDOUT

元記事を表示

MacでRails6を起動!!

基本情報の試験がなくなり外に出なくなった今、Railsを触る他はない!!
というわけでせっかくなのでRails6をインストールして起動までしようと思います

前提としてHomebrewはインストール済みです。

##環境
Ruby:2.6.5
Rails: 6.0.2.2
Homebrew: 2.2.13
rbenv: 1.1.2
Bundler: 2.1.4
DB: mysql(Sequel Pro)
ブラウザ: Google
OS: Mac Catalina(10.15.4)

##Homebrewにてバージョンのupdate
###Homebrewのupdate

“`terminal:
brew update
“`

###rbevのupdate

“`terminal:
brew upgrade rbenv
“`

###bundlerのupdate

“`terminal:
sudo gem install bundler
“`

###インストールできるRubyのバージョンを確認

“`terminal:
rbenv install -l
“`

###R

元記事を表示

インクリメンタルサーチを噛み砕く

#近況報告
やあ。テックキャンプのリモートワーク化がはじまって四週間目に突入しました。我がチームはついに最終課題をパスし間も無く就職活動に入ります。そこで大きな壁,**履歴書の自己開示**。わたしが一番苦手とする場所です。「わたしはプログラミングでご飯食べていくってきめたの!」って叫んで内定決まればいいのに笑

さて,今日の記事は個人アプリにインクリメンタルサーチを実装のついでの忘備録です。実況感覚で書いていきます。

# インクリメンタルサーチ
##なにそれ
 英語でincremental search,直訳は増加検索ですね。通常の検索は検索ボタンを押すとページが更新されて検索結果が出てきますが,この検索は一文字入れるごとに非同期通信で検索結果がぽんぽん出てきます。youtubeやGoogleとか検索の予測がでますね。あれです。~~文字を打つごとに予測される結果が減るからデクリメンタルサーチでもいいんじゃね。~~ちなみに,予測の変換に履歴が出てくるのはcookieがかかわるので少々異なります。

**非同期通信**・・・ユーザーの望むタイミングとは別で行われる通信です。**通信自体は

元記事を表示

【Rails Docker Git】よく使うコマンド一覧

# 【Rails Docker Git】よく使うコマンド一覧

## Dockerでサーバー立ち上げ
“`:terminal
> docker-compose up
“`

## Dockerでサーバーダウン
“`:terminal
> docker-compose down
“`

## DockerでDB確認
“`:terminal
> docker-compose ps
“`

## rails db:create
“`:terminal
> docker-compose exec イメージ名 ./bin/rails db:create
“`

## railsタスク一覧(コマンド一覧)
“`:terminal
> docker-compose exec web ./bin/rails -T
“`

## gitのカレントブランチを確認
“`:terminal
> git branch
“`

## gitのブランチを新規作成してテェックアウト
“`:terminal
> git checkout -b ブランチ名
“`

## gitのステージングさ

元記事を表示

【Rails Tutorial12章】パスワード再設定機能の実装手順を整理してみました【後編】

##はじめに
Railsチュートリアル12章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__

##前提
Railsチュートリアル1〜11章までの内容が完了していること。
特に、アカウント有効化機能が実装されている事。

##内容
Railsチュートリアル12章の__パスワード再設定機能の実装手順__を、前中後半の3回に分けて整理おります。
後編である今回は、__パスワード再設定機能の本実装__を行っていきます!

前編→[__パスワード再設定用のリソース作成__](https://qiita.com/kurawo___D/items/44b36354f36bbe238d6b)
中編→[__パスワード再設定メール送信機能の実装__](https://qiita.com/kurawo___D/items/000c315e39db08fcc4b7)

##3.パスワードを再設定する。
  ●送信用メールの作成が完了したので、次はPasswordResetsコントローラのeditアクションの実装を行っていく。
  
  

元記事を表示

mkcertを使いRailsのローカル開発環境をSSL化する方法(for Mac)

### mkcertとは?

Railsの開発環境でHTTPSを有効にするためのツール。
Github( https://github.com/FiloSottile/mkcert#installation )には以下のように書かれています。

“`
mkcert is a simple tool for making locally-trusted development certificates. It requires no configuration.

訳:mkcertは、ローカルに信頼された開発証明書を作成するためのシンプルなツールです。設定は不要です。
“`

### mkcertをインストールする
homebrewを使っている場合のインストールコマンド

“`
$ brew install mkcert

# ブラウザにFirefoxを使う場合は以下のコマンドも追加
$ brew install nss
“`

“`
# ローカルCA(認証局)を作成
$ mkcert -install
“`

“`
# 証明書を作成
$ mkcert localhost

元記事を表示

初心者には謎が多いrails db:migrateとは?

[rails tutorial](https://railstutorial.jp/chapters/beginning?version=5.1#cha-beginning)を25日間かけてやり終えた和己です。
かなり挫折しかけましたがなんとかやり終えました。
そこでわからない用語が複数あったので復習をかねてまとめていきたいと思います。

今回はrailsチュートリアルで頻出する

“`
rails db:migrate
“`

についてです

##そもそもmigrationって?
**migration(rails db:migrateコマンド)は、railsで使用するデータベースの構造(テーブル、カラム)を変更するときに利用する機能です。**

##データベースを変更するときの大まかな流れ
1.“$ rails g migration“コマンドでマイグレーションファイルを作成
2.マイグレーションファイルの中身を書き換える
3.“$ rails db:migrate“コマンドでマイグレーションを順番に実行してデータベースに変更を加える

###基本
###1. 空のマイ

元記事を表示

アップデートによりシェルスクリプトがbashからzshに変わった時の対処方法

#まえがき
2020/3末、macをアップデートしてからrails sでサーバを立ち上げると、

“`
Your Ruby version is 2.6.3, but your Gemfile specified 2.6.5
“`

となるので、

“`
bundle install
“`

で、一旦はサーバーが立ち上がるようになるのですが、翌日などに立ち上げると、表示が出て立ち上がらなくなった

#状況確認
① Rubyのバージョンの確認

“`
ruby -v
“`

すると、

“`
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
“`
2.6.5はインストールしているのですが、2.6.3はインストールした記憶がない…(したのかな?)

② rbenvの確認

“`
which ruby
“`
すると、

“`
ユーザー名@mba desktop % which ruby
/usr/bin/ruby
“`

このように表示された場合、rbenvが反映されていませ

元記事を表示

【Rails】seedから画像をdbに保存する方法

seedデータからdbに画像を保存するやり方です。
本番環境でもできます。

(db/seeds.rb)

“`ruby
20.times do |n|
name = Faker::Games::Pokemon.name
email = Faker::Internet.email
password = ‘password’
User.create!(
name: name,
email: email,
password: password,
password_confirmation: password,
icon: open(“./db/fixtures/icon#{n}.jpg”)
)
end
“`

こんな感じで
`icon: open(“./db/fixtures/icon#{n}.jpg”)`
で呼び出しています。
自分は(db/fixtures)の中に`icon0.jpg`、`icon1.jpg`みたいな感じで20個jpgファイルを置きました。
ご参考までに

元記事を表示

Rails で PostgreSQL のパーティションを利用したい

# なにこれ?
Ruby on Rails で PostgreSQL のハッシュパーティションを使いたいよねー、という方!こうすればできました。たぶん、rails db:migrate or db:rollback したら DDL が発行されてよしなに設定されるはず。

# サンプルコード
“`ruby
class CreateStaffs < ActiveRecord::Migration[6.0] def change reversible do |dir| dir.up do execute <<~"SQL" CREATE TABLE staffs (id uuid PRIMARY KEY UNIQUE, email varchar NOT NULL, cname varchar NOT NULL, created_at timestamp(6) NOT NULL, updated_at timestamp(6) NOT NULL) PARTITION BY HASH (id);

元記事を表示

Rails APIモードで始めるGraphQL

# はじめに

本記事は、社内でGraphQL入門勉強会を実施した際の内容です。
本記事での対象は、

– graphql-ruby/graphiql-railsの設定
– Query(データ取得)
– Mutation(データ更新)

になります。

内部的な仕組みなど、細かい内容は出てきません。
とりあえず動かして雰囲気を掴むことを目的としています。

# 環境

| | バージョン |
| :———– | :——– |
| Ruby | 2.6.0 |
| Rails | 5.2.2 |
| graphql-ruby | 1.9.3 |
| graphiql-rails | 1.6.0 |

# GraphQLとは

GraphQLは、2012年にFacebookによって開発されたデータクエリ言語および仕様です。
RESTベースのアーキテクチャに代わるものを提供します。
GraphQLはGitHubのAPI(`GraphQL API v4`)でも採用

元記事を表示

[Rails]TwitterAPI認証+deviseでのログインの実装方法

#経緯
railsにdeviseをインストールした状態でTwitterAPI認証でのログインを実装しました。
色んなサイトを参考にした結果、迷走し2日以上かけてしまいました。
今後も使うかもしれない自分用の備忘録的サムシングとして、またみなさんにササッと実装いただけたらと思い投稿しました。

#開発環境
ruby 2.7.0
rails 5.2.4
AWS EC2/RDS

#前提条件
・Twitterアカウントがある。
・deviseインストール済のアプリがある。
・環境変数の設定ができている。
・本番環境でアプリの動作ができている状態。

#TwitterのAPI認証取得および設定
a. API取得

https://qiita.com/kngsym2018/items/2524d21455aac111cdee
私はこちらのサイトを参考にしました。

callbackURLには以下のように入れてください。
URL : https://[自分のサイトのリンク]/users/auth/twitter/callback
(https化されてない場合は、うまく動作しないかもしれません。)

元記事を表示

メモランダム Rails tutorial 第7章

# Rails tutorial 第8章

## ユーザー登録
– いよいよユーザー登録機能を追加しましょう
– 7.2ではHTML フォームを使ってWebアプリケーションに登録情報を送信
– 7.4ではユーザーを新規作成して情報をデータベースに保存
– ユーザーを表示するためのページを作成し、ユーザー用のRESTアーキテクチャを実装する第一歩を踏み出します

# 1.ユーザーを表示する
– モックアップ

### デバッグとRails環境
– ビルトインのdebugメソッドとparams変数を使って、各プロフィールページにデバッグ用の情報が表示されるようになります
– `<%= debug(params) if Rails.env.development? %>`
– **デバッグ情報は開発環境以外で表示させないべき**

# 2.Usersリソース
– resources :usersという行は、ユーザー情報を表示するURL (/users/1) を追加するためだけのものではありません。
– サンプルアプリケーションにこの1行を追加すると、ユーザーのURLを生成するための

元記事を表示

Railsでstubを使う

# よく使う構文をメモ
“`ruby

post = Post.new

# 引数なし
allow(post).to receive(:title).and_return(‘title’)

# 引数あり
allow(post).to receive(:title).with(arg1, arg2).and_return(‘title’)

# エラーを起こさせる
allow(post).to receive(:subtitle).and_raise(StandardError.new)

# クラスに対してインスタンスメソッドのスタブ化
allow_any_instance_of(Post).to receive(:title).and_return(‘title’)

“`

# 参考
開発
[Rails tips: RSpecでシンプルなスタブを使う(翻訳)](https://techracho.bpsinc.jp/hachi8833/2018_02_20/52293)

元記事を表示

メモランダム Rails tutorial 第6章

# Rails tutorial 第6章

# ユーザーのモデルを作成する
– 認証 (authentication) と認可 (authorization) のシステムの例だと、Clearance、Authlogic、Devise、CanCanなど

# 1. Userモデル
– 情報を保存するためのデータ構造を作成する
– Railsでは、データモデルとして扱うデフォルトのデータ構造のことをモデル (Model) と呼びます
– データベースとやりとりをするデフォルトのRailsライブラリはActive Recordと呼ばれます

### データベースの移行
– この節での目的は、簡単に消えることのないユーザーのモデルを構築すること
– nameとemailの2つの属性からなるユーザーをモデリングするところから始める
– `attr_accessor :name, :email`は必要ない
– generate modelというコマンドを使います
-`$ rails generate model User name:string email:string`

### mod

元記事を表示

メモランダム Rails tutorial 第5章

# Rails tutorial 第5章

# レイアウトを作成する

– apurike-syonnnibootstrapフレームワークを組み込み、カスタムスタイルを追加する。
– home, aboutへのリンクをレイアウトに追加。
– パーシャル、 railsのルーティング、Asset pipelineについて学ぶ。+ Sass。ユーザーログインへの第一歩も。

# 1.構造を追加する

– webアプリケーション = ユーザインターフェース
– モックアップをスケッチ。
– この時点でブランチを作成。

### ナビゲーション
– サイトのレイアウトがいるに HTMLを追加。
– internetExplorerのHTML5サポート不備を回避するJavaScriptのHTML5shimというコード。
– header
– navbar、navbar-fixed-top、navbar-inverse

– classラベルは何度も使える。
– idラベルは一度しか使えない。

– container

– link_to
– オプションハッシュ#
– navタグには「その内

元記事を表示

railsで一覧ページに[gem kaminari]を導入する流れについてまとめてみた。

#kaminariの導入の仕方

##1.Gemfileにkaminariを追加して保存。

“`Gemfile.
gem ‘kaminari’,’~> 1.1.1′
“`

##2.kaminariをインストールする
`$ bundle install`

##3.kaminariの設定ファイルを作成する
`$ rails g kaminari:config`

##4.kaminariがページャで利用するテンプレートを作成する
`$ rails g kaminari:views default`

##5.ページャを実装する

ページネーションさせたい場所に

“`app/views/books/index.html.erb
<%= @books.each do |book| %>
:
:
<% end %>
<%= paginate @books %> <"←これを追加">
“`
“`app/controllers/books_controller.rb
@books = Books.all.page(param

元記事を表示

YouTubeっぽいコメント欄を作ってみよう!(返信機能追加)

# はじめに
こんにちは!今回はYouTubeっぽいコメント欄を作ってみようと思います!
色々調べていたのですが、似たような記事がなかったので自力で実装した部分が多いです(><) もっと良い方法があるかもしれないので、今後アップグレードしていければと思います。 それではいきましょう! # 完成イメージ ![exhoop_200420_reply.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487789/596291b7-72a8-1675-e23c-63c3141ccb2d.gif) ユーザーアイコンの実装については過去記事を参照ください。 https://qiita.com/naoki00m/items/6430ab0b62766b582c9a # 開発環境 - ruby 2.5.1 - Rails 5.2.3 - mysql - Haml 5.1.2 - Ruby Sass 3.7.4 # 前提条件 - 投稿に紐づくコメント機能が実装できていること(TECH CAMPでいうところ

元記事を表示

コーディング未経験のPO/PdMのためのRails on Dockerハンズオン、Rails on Dockerハンズオン vol.16 – Deploy to EKS –

# はじめに
こんにちは!今回でラストです!

今回はAWSのマネージド[Kubernetes](https://kubernetes.io/ja/)サービスである[Elastic Kubernetes Service(EKS)](https://aws.amazon.com/jp/eks/)にデプロイしてみたいと思います。
今まで作ってきたRailsアプリコンテナをEKSで動かし、DBは同じくAWSのマネージドRDBサービスの[Relational Database Service(RDS)](https://aws.amazon.com/jp/rds/)を使います。
インフラ構築にはInfrastructure as Codeツールの[Terraform](https://www.terraform.io/)を使ってみます。

あくまで「こいつ、動くぞ!」を目的にしているので、今回のハンズオンだけでこれらの全てを伝えるわけではありませんし、使いこなせるわけではありません。あくまでとっかかりとして捉えてみてください。
気になる方はどんどん調査して使ってみてください!

AWSを使うの

元記事を表示

OTHERカテゴリの最新記事