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

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

【Rails】seed_fuまとめ

## 何がうれしいか
– seedデータの一部を変更した時、変更したファイルだけを読み込み、データの更新や追加ができる
– デフォルトの`seeds.rb`の場合、既存のデータを削除してから再度読み込まなきゃいけない
– 環境ごとにseedデータを分けやすくなる

## インストール
“`rb:Gemfile
gem ‘seed-fu’
“`
“`bash
$ bundle install
“`
“`bash
$ mkdir db/fixtures # 必須
# 以下、環境ごとにseedファイルを分けたい場合に作成
$ mkdir db/fixtures/development
$ mkdir db/fixtures/production
“`

## データを読み込む
“`bash
$ touch db/fixtures/development/01_user.rb #ファイル名は自由。アルファベット順に読み込まれる。
“`
以下の2通りの書き方がある。データが多い時は2つ目の書き方の方が良さそう。

“`rb:基本の書き方
User.seed do |s|

元記事を表示

【 Ruby on Rails 6.0 】AWS + Nginx + Unicornでデプロイ⑤

# 始めに
前回まででEC2上に必要なGemをインストールし本番環境用に環境変数を設定しました。今回はHTTP通信を設定しRailsアプリを起動する工程までをまとめたいと思います。

# 目次
|目次|内容|
|:–:|:–:|
|セクション1|[EC2インスタンス作成](https://qiita.com/anago1030/items/854252bc9b728fe90beb)|
|セクション2|[Linuxサーバー構築](https://qiita.com/anago1030/items/07f7026c0f4c42a63440)|
|セクション3|[データベース設定](https://qiita.com/anago1030/items/79eebdc8474255b962b4)|
|セクション4|[EC2上でGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421f64f46a44)|
|セクション5|**Railsアプリを起動**(今回の内容)|

## ポート開放
立ち上げたばかりのEC2インスタ

元記事を表示

AWSにデプロイ後、よく使うコマンド

##EC2にSSHで接続し、git pullしてからよく使うコマンドまとめました。
– 使用頻度が多いものを自分用に簡単にまとめました。

##環境
rails 5.2.4
ruby 2.6.3
Cloud9
MySQL

##AWSの構成

![スクリーンショット 2021-02-25 8.15.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/972403/e5ee3e19-f468-b43c-d43b-1b7fb902b197.png)

“`
EC2にSSHで接続する方法
$ ssh -i ~/.ssh/キー名.pem ec2-user@xx.xx.xx.xx

Nginxの再起動する方法
$ sudo systemctl restart nginx

アプリ(puma)起動する方法
$ rails s -e production

アプリ(puma)停止する方法
$ kill プロセスID
どちらも同じです
$ kill $(cat tmp/pids/puma.pid)
“`

元記事を表示

Selenium Webdriver + Chrome DevTools Protocolを使って情報を取得してみる

# はじめに 〜この記事でご紹介すること〜
本記事では「 **Selenium Webdriver Chrome DevTools Protocol** 」などでググるとパッとヒットするものがなかったので、それについてご紹介します。
Selenium Webdriverを使ってコードを書いたことがある方、Chrome開発者ツールやFirebugなどの解析ツールを使ったことがある方であれば
この記事を読んでいただくことで「な〜んだ!思ってたよりも簡単にいろいろなことできるようになるじゃん。」と思われるかもしれません。

# Chrome DevTools Protocolとは
Chrome DevTools Protocol(以下、CDP)を使うと、WebDriverでは定義されていなかったDevToolsの各種機能(JavaScrioptデバッガ、プロファイラ、パフォーマンスツール、などなど…)が利用できます。
公式ドキュメントは[こちら](https://chromedevtools.github.io/devtools-protocol/)

CDPを使ってどんなことができる

元記事を表示

Dockerのコンテナ立ち上げで上手くいかなかった時にやったこと

##はじめに
初学者で、今回が初めての投稿になります。
[Docker超入門 #5](https://www.youtube.com/watch?v=ZxwHVaq7FJo&t=853s)
(動画内容としましては *イメージ作成→コンテナ作成→コンテナ起動* の順になります)
こちらの動画の内容に沿って学習した際に起こったエラー、そしてどう対処したかの記事になります

## エラー内容
イメージ作成するとこまでは上手く行ったのですがコンテナ作成時にエラー表示が出ました。
結論、今回のエラーはイメージ内の誤字にありました。

## やって見たこと

まずは作成はできていたものの、「*イメージ作成*」が上手く行っていないのではと思いファイル内の誤字脱字チェックに入りました。やはり2箇所誤字発見できました。そして今回はイメージファイルにミスがあったものの、イメージが作成出来てしまったのだとわかりました

対処の流れとしては
「①*間違って起動したコンテナの停止→そのコンテナの削除→誤字含むイメージの削除*」
続いて
「②*修正後のイメージ作成→コンテナ立ち上げ→コンテナ起動*」で上手く

元記事を表示

【 Ruby on Rails 6.0 】AWS + Nginx + Unicornでデプロイ④

# 始めに
前回の記事ではEC2インスタンスにmariaDBというデータベースの設定を行いました。今回はインスタンス上でRailsアプリの起動に必要なGemをインストールし環境変数を設定する工程までをまとめたいと思います。

# 目次
|目次|内容|
|:–:|:–:|
|セクション1|[EC2インスタンス作成](https://qiita.com/anago1030/items/854252bc9b728fe90beb)|
|セクション2|[Linuxサーバー構築](https://qiita.com/anago1030/items/07f7026c0f4c42a63440)|
|セクション3|[データベース設定](https://qiita.com/anago1030/items/79eebdc8474255b962b4)|
|セクション4|**EC2上でGemをインストールし環境変数を設定**(今回の内容)|
|セクション5|[Railsアプリを起動](https://qiita.com/anago1030/items/36d0da7e25c57d0e5780)|

## E

元記事を表示

railsを使ってアプリを作る 登録編

####データベースにデータを登録####

#####ルーティングの作成#####
ルーティングに登録する時はpostで登録する
“`post “animals/create” => “animals#create”“`

postで登録する時は、フォームで入力した値をコントローラーで受け取る時に使うらしい

#####viewの作成#####
送りたい内容を
<%= form_tag "/animals/create" do %>

<% end %>
で囲む
#####コントローラーの作成#####
viewからのデータを取得する
view = Animal.new(name: params[:name])
view.save

登録が完了したら、別ページに遷移させる(リダイレクト)
redirect_to “/animals/index”

元記事を表示

railsを使ってアプリを作る3

####詳細ページ等のid付きのページの作成と表示####

#####mvcの作成#####
urlが“`/details/1“`みたいにする場合は、ルーティングの書き方を
get “details/:id” => “details#show
にする

detailsコントローラーにshowメソッドを作成する

show.html.erbのファイルを作成する

#####idの取得と利用方法#####
コントローラーでparams[:id] で取得する
取得した値を
“`@id = params[:id]“`とし、viewで“`<%= @id %>“`と書いて使う

画面に置くリンクはこんな感じ
“`<% @details.each do |detail| %>
  <%=link_to (animal.content,"/animal/#{detail.id}")%>
<% end %>“`

元記事を表示

ポートフォリオ制作録(Day1:環境構築~デプロイ)

## はじめに
– 今日は,railsの開発環境をvscodeで構築し,localhostとheroku上でhello worldが表示されるまで進めました

## 発生したエラーと解決策
1.herokuへデプロイ出来ない①

デプロイ時にweb pack not foundとエラーがでました。warningの文でnode.jsが古いよとあったので、node.jsをインストール(同時にnpmも)したら解決。

2.herokuへデプロイできない②

チュートリアルのままbundle installをしていたが、その際にインストールされるbundlerのバージョンがherokuに対応していないらしく,デプロイができなかった。bundleのバージョンをherokuに対応しているものにして再インストールして解決

3.application errorが出るよ問題

herokuにデプロイできたがapplicationエラーが発生。エラー文を読むと,postgreのバージョンが変だよとのことなので、指定し直したらできました

## 参考
– Rails チュートリアル

元記事を表示

CSSで文字に角度と奥行きをつける記述

最近、cssのレイアウト崩れに悩まされている毎日。
新しいcssやjQueryを見つけては、スゲーって興奮しています。
色んな実装を試してみたい今日この頃。

とりあえず、備忘録書いていきます。

  

#文字を傾ける

“`
.item {
transform: rotate(-20deg);
}
“`

と記述します。
この場合、文字が **半時計** に回転します。
マイナスを取ると普通の **時計周り** に回転します。
  

 
この**transformプロパティ**には色々な使い方があるみたいです。

他には

#奥行きを出す

“`
.item {
transform: perspective(150px) rotateX(45deg);
}
“`
  
この**perspective**と言うのが **視点** と言う意味で
もう一つの**rotate**と言うのが **回転** と言う意味になります。
最後に**X(エックス)軸**に回転と言うことで奥行きができます。
  
 

数値を変えればまた違った角度になったりするので、
使う機会があれ

元記事を表示

.NET系エンジニアがRubyを学ぶときにとりあえず抑えておくポイント※随時更新

# はじめに
実は最近、Rubyの勉強をチェリー本で始め、こないだ読み終えました。Rubyを学ぼうと決めた理由なんですが、とある名刺管理サービス会社のCTOの方がインタビュー記事で**「エンジニアこそ事業にコミットすることが大切」「プロなら経済価値に直結するコードを書くべきだ」**という記事を見つけ、めちゃめちゃ感銘を受けました。

**で?**ってなるんですが、実は日本のスタートアップや自社サービスを展開している企業のRuby(Rails)のシェア率・覇権がすごい!

つまり、**長いものには巻かれろ!!**ってことで、日本でRuby(Rails)を学べば、経済価値を生む機会が増えるんでないかと考えたわけです。

ちなみに僕はC# (ASP.NET MVC)を業務で使用しています。

# 動的型付言語と静的型付言語について
まず本題に入る前に大事なことがあります。それは言語のタイプです。
C#やJavaなどは静的言語、RubyやPHPは動的言語にカテゴライズされてます。

“`ruby:dynamic.rb
# Ruby
hoge = ‘動的言語です’
“`

“`c#:dyn

元記事を表示

[Solidus] 入れ子構造 商品カテゴリーの取得

#はじめに
Solidusで追加機能実装をする際、商品カテゴリーで採用されている入れ子構造を把握する必要があったため、紹介します。
入れ子構造は、ツリー構造をもとに設計されおり、ツリー(木)やルート(根)、リーフ(葉),ノード(節)などの言葉が出ます。

#到達点
以下の2点を達成する

・solidusの商品カテゴリーで採用されている入れ子構造を理解する

・Gem Awesome Nested Setで使用できるメソッドを理解する

#商品カテゴリーで採用されている入れ子構造
今回、商品カテゴリーは以下の通り

“`
Category
|–Bags
|–Mugs
|–Clothing
|–Shirts
|–T-Shirts

Brand
|–Chanel
|–Vuitton
“`
一つ一つのツリーをSpree::Taxonomyモデルとし、
今回は、Category(taxonomy.id=1)とBrand(taxonomy.id=2)が該当する。
rootとも表現できる。

各ツリーのノードをSpree::Taxonモデルとし

元記事を表示

【Rails】既存のテーブルに関連付けを追加するには?

##解決したい問題

ユーザーと投稿を関連付けをしたく、postsテーブルにuser_idカラムを追加した。
しかし、別に新たなマイグレーションを実行するたびに、なぜかschema上で、user_idカラムが消えてしまう。

##最初は関連付けに関してあまり考えず進めていた

“`db/migrate/20201115015429_add_user_id_to_posts.rb
class AddUserIdToPosts < ActiveRecord::Migration[6.0] def change def change add_column :posts, :user_id ,:integer end end end ``` ```app/models/post.rb class Post < ApplicationRecord belongs_to :user
“`

“`app/models/user.rb
class User < ApplicationRecord ha

元記事を表示

Railsのdeviseで2種類のユーザーを作成する方法

rails初学者です。
オリジナルアプリ開発にて、deviseを使って2種類のユーザーを作成したかったのですが、方法がわからず他の記事を見ながら調べてきたのでまとめてみました。

## この記事の目指すところ
食べログのようなアプリで、
お店を利用する側のユーザー **customer_user**モデルと
お店を投稿する側のユーザー **owner_user**モデルの
2種類のモデルを作成する。
またそれぞれにnameカラムを持たせ、ストロングパラメータを設定する。

## 環境
ruby ‘2.6.5’
rails ‘6.0.0’
devise ‘4.7.3’

※deviseがrailsアプリにインストールされている前提

## 各モデルの生成
それぞれのモデルを生成していきます。
deviseでuserモデルを生成する方法と全く同じように、ターミナル(コマンドライン)でコマンドを実行していきます。

まずcustomer_userモデルを生成します。

“`terminal
$ rails g devise customer_user
“`

次にowner_userモデ

元記事を表示

実用的にRubyで外部コマンドを実行する – 車輪の再発明をしたくない人のための tty-command

## はじめに

こんにちは。(この記事は、[tty-command](https://github.com/piotrmurach/tty-command) の紹介記事です。tty-commandを知ってる人はこの記事は読まなくても大丈夫です。)

Rubyからコマンドを実行したいことは時々あると思います。よく知られている方法は、

1. `system` を使う
2. “` “ ← バッククオート“`
を使う
3. `open3` を使う
4. `spawn` を使う

他にも方法はありますが、私は上記の4つをよく使います。
homebrewのレシピは`system`を使って書かれていますよね。

しかし、実際には、ターミナルに

* 実行するコマンドを出力したい
* 結果も出力したい
* できれば色付きされて、綺麗に整形された出力がいい!
* 実行時間も表示したい

場合が多いのではないかと思います。車輪の再発明は、基本的に良いことだと思います。しかし、便利に使いたいだけの場合は、別に車輪、再発明しなくてもよくないか?となりますよね。そんなあなたに `tty-command

元記事を表示

【 Ruby on Rails 6.0 】AWS + Nginx + Unicornでデプロイ③

# 始めに
前回の記事ではLinuxサーバーに必要なパッケージを諸々インストールしました。
今回はデータのやり取りを可能にするためにデータベースの設定を進めていきます。

# 目次
|目次|内容|
|:–:|:–:|
|セクション1|[EC2インスタンス作成](https://qiita.com/anago1030/items/854252bc9b728fe90beb)|
|セクション2|[Linuxサーバー構築](https://qiita.com/anago1030/items/07f7026c0f4c42a63440)|
|セクション3|**データベース設定**(今回の内容)|
|セクション4|[EC2上でGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421f64f46a44)|
|セクション5|[Railsアプリを起動](https://qiita.com/anago1030/items/36d0da7e25c57d0e5780)|

## データベース設定
データベースには大きく3種類ありますが

元記事を表示

Ruby on Rails) HerokuでNginx と unicornを導入する

Ruby on Rails で作成したアプリケーションをNginxを使ってデプロイするための備忘録になります。文章にまとめるとスイスイやったように見えますが、実際にはエラーとの戦いでした。。

【参考にしたサイト】
https://github.com/heroku/heroku-buildpack-nginx
英語ですが、基本的にこのgithubに書いてある通りです。。が、英語だというのを差し引いてもやはり分かりにくい。他のサイトを何度も参照しながら読み進めていきました。git hub のどの部分に相当するのかわかるように、原文も引用しながら書きました。

【実際にやったこと】
① Heroku に新しいアプリケーションを作成

② buildpacks を追加
>(github原文)
>Existing App
>Update Buildpacks to use the latest stable version of this buildpack:
>
>$ heroku buildpacks:add heroku-community/nginx

実際に記述したコードは下記

元記事を表示

【 Ruby on Rails 6.0 】AWS + Nginx + Unicornでデプロイ②

# 始めに
前回の記事でEC2インスタンスを作成しサーバーを構築する工程まで完了しました。
今回は本番環境が動作するために必要設定ファイルをインストールしていこうと思います。

# 目次
|目次|内容|
|:–:|:–:|
|セクション1|[EC2インスタンス作成](https://qiita.com/anago1030/items/854252bc9b728fe90beb)|
|セクション2|**Linuxサーバーを構築**(今回の内容)|
|セクション3|[データベース設定](https://qiita.com/anago1030/items/79eebdc8474255b962b4)|
|セクション4|[EC2上でGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421f64f46a44)|
|セクション5|[Railsアプリを起動](https://qiita.com/anago1030/items/36d0da7e25c57d0e5780)|

## Linuxサーバーを構築
最初に`yum`という

元記事を表示

git add . しようとしたら fatal: not a git repository (or any of the parent directories): .gitと怒られた!

“`java
fatal: not a git repository (or any of the parent directories): .git
“`

– new リポジトリは作ってある

### ⭐️やったこと
– User の登録

“`
$ git config –global user.name “xxxx”
$ git config –global user.email “xxxxxx@gmail.com”
“`

– git の初期化

“`
$ git init
Initialized empty Git repository in 作業しているディレクトリ/.git/
“`

– git branch で確認

“`
git branch
* master
“`

– 再度

“`
git add .
“`
– 無事に動きました!

元記事を表示

【 Ruby on Rails 6.0 】AWS + Nginx + Unicornでデプロイ①

# 始めに
AWSをインフラとしてポートフォリオを本番環境にデプロイしました。
本シリーズではrailsアプリをデプロイし、独自ドメインを取得する過程までをアウトプットしたいと思います。

# 開発環境

* macOS Catalina
* Ruby 2.6.5
* Ruby on Rails 6.0.0
* AWS
* nginx
* unicorn
* mariaDB(本番環境のデータベース)

# 目次
|章|記載内容|
|:–:|:–:|:–:|
|セクション1|**EC2インスタンス作成**(今回の内容)|
|セクション2|[Linuxサーバー構築](https://qiita.com/anago1030/items/07f7026c0f4c42a63440)|
|セクション3|[データベース設定](https://qiita.com/anago1030/items/79eebdc8474255b962b4)|
|セクション4|[EC2上でGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421

元記事を表示

OTHERカテゴリの最新記事