- 1. 【Rails6】Devise + OmniAuthでGitHub認証を実装する【初学者向けチュートリアル】
- 2. Railsアプリケーションの立ち上げ方【初学者向け】
- 3. bundle install でmysql2がインストールされない
- 4. Rails Tutorialを咀嚼する【第1章ゼロからデプロイまで】
- 5. [devise カスタマイズ]ユーザー登録完了前に(仮登録の状態で)他のカラムを追加させる
- 6. dockerの起動中に起きたエラー
- 7. 未経験エンジニアはこんなポートフォリオを作ってみてはどうか②〜PDF出力編〜
- 8. Railsアプリを5.1.7→6.0.3.2(最新版)にアップデートしてみた
- 9. rails tutorial 第1章
- 10. 【Rails】検索結果でCSV出力する方法【Ransack】
- 11. railsでページをリロードしないとJSが機能しない件
- 12. 初期設定
- 13. has_manyとbelong_toの関係
- 14. rails6の環境をdockerとmysqlで構築(メモ)
- 15. Rails Tutorial 第10章完了
- 16. 【Rails】Vagrant環境でPostgreSQLを使用する方法
- 17. 【超初心者的】Rails 多言語化対応
- 18. 【超初心者的】Rails テーブル操作
- 19. rails db:migrate:resetでのエラー
- 20. 【Rails】ArgumentError: Malformed version number string 0.32+gitでwebpacker:installが実行できない場合の対処方法
【Rails6】Devise + OmniAuthでGitHub認証を実装する【初学者向けチュートリアル】
## はじめに
Omniauthを勉強してRails何もわからない? 状態になりましたw Rails最初はとても分かりやすかったのですが、OmniAuthがとても難しくてかなり苦労しました。やっと理解できたので、過去の自分が見たら泣いて喜ぶくらいにまとめます!!なおこの記事ではomniauthをメインに解説するのでdeviseの説明は少なめです。## アプリを作る
0からアプリを作って説明します。“`:ターミナル
➜ rails new report_app
➜ rails g scaffold report title:string content:text
➜ rails db:migrate
“``➜ rails server`で
http://localhost:3000/reports にアクセスしてレポートの保存や削除をできることを確認してみましょう。## Deviseを導入する
### 1. Gemfileに追記して`bundle install`
“`:Gemfile
gem ‘devise’
“`### 2. Deviseの設定
“
Railsアプリケーションの立ち上げ方【初学者向け】
##新しいRailsアプリケーションを作成
以下のコマンドを実行して、新しいRailsアプリケーション「My App」を作成しましょう。
※もちろん名前は「My App」じゃなくてもいい。“`
# projectsディレクトリの作成
$ mkdir ~/projects# projectsディレクトリに移動
$ cd ~/projects# Railsのバージョン5.2.3を用いて、「my_app」を「-d」オプションでMySQLを指定して作成。
$ rails _5.2.3_ new my_app -d mysql# 「my_app」ディレクトリに移動
$ cd my_app# 現在のディレクトリのパスを表示
$ pwd
“`
上記の操作を行って、/Users/ユーザー名/projects/my_appと表示されれば一旦は成功です。:warning:最後にエラーが出る場合
もし、アプリケーション作成段階でエラーが生じた場合は、以下のような赤字の文章が表示されます(必ずしも同じ文面ではありません)。
【例】“`
Installing mysql2 0.
bundle install でmysql2がインストールされない
###はじめに
僕のローカル環境で毎回エラーになるので解決策をメモします
*まだ厳密な原因はわかってませんが、とりあえずこれで通りました程度の内容です“`
$ bundle install –path vendor/bundle
…
エラー文↓
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
“`###解決方法
“`
$ bundle config –local build.mysql2 “–with-ldflags=-L/usr/local/opt/openssl/lib”
$ bundle install –path vendor/bundle
“`上記コマンドを実行すると、`.bundle/config`に下記一行が追加されます
“`
BUNDLE_BUILD__MYSQL2: “–with-ldflags=-L/usr/local/opt/openssl/lib”
“`
とおるようになる。
Rails Tutorialを咀嚼する【第1章ゼロからデプロイまで】
# 1.1 はじめに
■REST
SQLでよく使う「Create/Read/Update/Delete」をそれぞれ「GET/POST/PUT/DELETE」に当てはめたもの。セッションなどの状態管理を行わないため、命令をいちいち書いていく必要がある。
基本的には「route.rb」に記載する。■コマンドライン
ターミナル。クラウドIDEに標準的に備わっている。#1.2 さっそく動かす
■Cloud9
AWSが提供しているクラウド上で開発可能な統合開発環境。面倒な環境設定もいらないため超便利■gem
パッチファイル?追加要素?みたいなもの。「Gemfile」というファイルに記載して、bundle installとターミナルに打ち込むと自動でインストールしてくれる。#1.3 最初のアプリケーション
■rails new
Railsを使ってアプリケーションを作る際に初めに書く呪文。必要なファイルを自動で生成してくれる。■フレームワーク
Railsがフレームワーク。エディタがあれば自由にプログラミングできるが、将来的にめちゃくちゃな書き方になってしまうため、「ある程度書き方
[devise カスタマイズ]ユーザー登録完了前に(仮登録の状態で)他のカラムを追加させる
# [devise]ユーザー登録完了前に(仮登録の状態で)他のカラムを追加させる
## はじめに
ruby on railsのユーザー周り(会員登録など)のgemといえばdeviseですかね・・?
一瞬で会員登録とかができるのは物凄い便利です。そんな便利な反面、カスタマイズするのにはかなり時間がかかります。
(今回もかなり時間がかかりました。)今回実装するのは、以下のような機能です。
“`rb:
# 実装したい内容
会員登録(emailとpassword)
↓
認証メール送信
↓
メールのリンクからプロフィール(今回はname)を追加するページへ
↓
プロフィールを入力して確認画面へ
↓
確認画面で送信
↓
会員登録完了(ログイン画面へ)
“`
イメージ
![hoge.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522280/e457e1b2-fc85-a8cb-e263-3c786b73c663.gif)今回のissueは大きく二つ
>
– 会員登録を仮登録の状態で編集する
–
dockerの起動中に起きたエラー
railsアプリを立ち上げるためにdocker-compose buildを実行しようとすると次のエラーが出た。
“`
$ docker-compose build
Building db
Step 1/4 : FROM mysql:8.0.17
—> b8fd9553f1f0
Step 2/4 : RUN apt-get update && apt-get install -y apt-utils
:
:
Fetching spring 2.0.2
Installing spring 2.0.2
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /usr/local/bundle/gems/nokogiri-1.10.9/ext/nokogiri
/usr/local/bin/ruby -r ./siteconf20200529-6-18ba5hy.rb extconf.rb
Cannot allocate memory – /usr/local/
未経験エンジニアはこんなポートフォリオを作ってみてはどうか②〜PDF出力編〜
今回は前回同様に未経験エンジニアがポートフォリオを作るにあたってこんな機能を取り入れたらどうかなって思うものを一つ紹介したいと思います。
僕が実務を経験した中で
「あ、この技術は未経験のうちに習得できそうだな」
と思ったものを提案していくので、難易度的にもそんなに難しくはないはずです。
Youtubeに同じ内容の動画を掲載しているので興味がある人は観てください
[未経験エンジニアはこんなポートフォリオを作ってみてはどうか②〜PDF出力編〜。]
(https://youtu.be/mfnwutjZbAQ)
あと、
[【実体験をもとに】30歳未経験から独学4ヶ月でバックエンドエンジニアとしてWeb系自社開発企業へ転職するまでのロードマップ]
Railsアプリを5.1.7→6.0.3.2(最新版)にアップデートしてみた
#プログラミングの勉強日記
2020年8月11日 Progate Lv.226
Railsのバージョンが古いままアプリを作成したので最新版にアップデートしてみた。#方法
##1. Gemfileのrailsを書きかえGemfileをアップデートする
“`:Gemfile
#変更前
gem ‘rails’, ‘~> 5.1.7’#変更後
gem ‘rails’
“`“`:ターミナル
$ bundle update
“`##2. [重要]routes.rbなどを上書きしないようにする!!
“`:ターミナル
rails app:update
“`##3. bootsnapをGemfileに追記する
rails 5.2.0から`bootsnap`のGemが必要になったのでGemfileを追記しインストールする“`:Gemfile
gem ‘bootsnap’
“`“`:ターミナル
$ bundle install
“`##4. サーバーを動かして確認
“`:ターミナル
$ rails s
“`#はまったこと
2番の動作を飛
rails tutorial 第1章
#はじめに
独学でrails tutorialを進めていく過程を投稿していきます。
進めていく上でわからなかった単語、詰まったエラーなどに触れています。
個人の学習のアウトプットなので間違いなどあればご指摘ください。
初めての投稿なので読みにくいところも多々あるかと思いますがご容赦ください。
#第一章 ゼロからデプロイまで
1.2.2 Railsをインストールする
Q..
yarmなるもののインストール指示されたがいったい何だろう
A..
JavaScriptソフトウェアの依存関係を管理するプログラムらしい(javascriptのパッケージマネージャ―)—
1.3.1 Bundlerエラー発生!!
bundle install時に早速エラーに遭遇した
遭遇したエラー
“`
[!] There was an error parsing `Gemfile`: Illformed requirement [“-> 3.2.1”]. Bundler cannot continue.
# from C:/environment/hello_app/Ge
【Rails】検索結果でCSV出力する方法【Ransack】
# 問題
CSV出力機能を実装した際に、そのページに検索機能(ransack gem)があることに気づいた。
検索結果をCSVファイルに反映する方法をいろいろ調べたのですが、実装するのにけっこう紆余曲折してしまったので記録として残しておきます。# 前提
## バージョン
Ruby 2.5
Rails 5.1
Ransack 2.1.1## 実装前のソースコード
“`ruby:controllers/items_controller.rb
class ItemsController < ApplicationController def index @q = Item.ransack(params[:q]) @items = @q.result respond_to do |format| format.html format.csv do send_data @items.export, filename: "items_export.csv" end end end en
railsでページをリロードしないとJSが機能しない件
タイトル通りJSのイベントが起きるためにリロードが必要な状況を改善したい。
検索すると以下の参考記事があったので、素直にgemfileとapprication.jsを変更し対応しようとしたがうまくいかない。
https://qiita.com/Terunaga/items/19d4f49f3abd3316f098別の記事で以下のようにjsのリロードが必要なページに追記することで解決できた。
“`
“`
初期設定
##素早くcloud9で環境構築したいときの手順(自分用)
何か実験したい時などに新しく環境を構築する
“`
$ gem install rails -v 5.1.6
“`“`
rails _5.1.6_ new お好きな名前
“`gemfile
“`
source ‘https://rubygems.org’gem ‘rails’, ‘~> 5.1.6’
gem ‘puma’, ‘~> 3.7’
gem ‘sass-rails’, ‘~> 5.0’
gem ‘uglifier’, ‘>= 1.3.0’
gem ‘coffee-rails’, ‘~> 4.2’
gem ‘jquery-rails’
gem ‘turbolinks’, ‘~> 5’
gem ‘jbuilder’, ‘~> 2.5’group :development, :test do
gem ‘sqlite3’
gem ‘byebug’, platforms: [:mri, :mingw, :x64_mingw]
endg
has_manyとbelong_toの関係
has_many と belong_toは
一夫多妻制!!!これに尽きます!!
そもそもこの役割があるのは、
データベースとデータベースを紐づけるためにあります!たとえば “user” と ”memos”というデーターベースがあります。
“user”(単数形)なので一人しかいません(一夫)
”memos”(複数形)なのでたくさんのデータがあります(多妻)”user”→”memos” は”has_many”
”memos→”user” は”belong_to”です。この紐付けを行うことでA夫は、B妻C妻・・・の籍を入れており
(日本ですと犯罪なのでそんなことはしないように笑)
B妻C妻・・・・はA夫の籍を入れていることになります!では紐付けないとどうなるかというと、
浮気・不倫になってしまいます><A夫とB妻は籍を入れているのに、
C妻にA夫がいると”その関係はなんなの!?!?”
と世間(パソコン)に怒られてしまい揉め事(エラー)になってしまいます!なのでA夫B妻C妻・・・・・の関係はなんですか?
と世間(パソコン)に聞かれたときに”一夫多妻”という名
rails6の環境をdockerとmysqlで構築(メモ)
#はじめに
個人用のメモです。
業務でほとんどdocker使わないので、忘れてしまいそうなので。。。
また、パーフェクトRuby on Railsを参考にしています。#ファイル構成
“`
/app
|— docker-compose.yml
|— Dockerfile
|— Gemfile
|— Gemfile.lock
|— .env
“`#Rails用のイメージを作成
###ファイル
“`docker:Dockerfile
FROM ruby:2.7.1RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add – \
&& echo “deb https://dl.yarnpkg.com/debian/ stable main” | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update \
&& apt-get install -y build-essential nodejs
Rails Tutorial 第10章完了
##2020/7/29 0.5時間
リンクを作る前まで進めました。
##2020/7/30 0.5時間
演習10.1.1でエラーになり、朝やっているのですが時間切れになりました。
フィッシング対策で”noopener”を設定するのは知りませんでした。
##2020/7/31 0.5時間
演習10.1.1のprovideが理解できず時間がかかりました。
##2020/8/1 1.5時間
休みなので時間がとれました。
10.1まで完了しました。##2020/8/2 2時間
途中難しくて寝てしまいますが、朝なので続けられました。夜だと続けれれなかったと思います。
testがエラーで、入力間違いが見つけられません。##2020/8/3 1時間
この日は出社日で、朝は時間がとれなかったので、夜にやりました。前日の入力間違いを見つけられました。##2020/8/4 0.5時間
10.2.3まで進めました。##2020/8/5 2.0時間
夏休み1週間が始まりました。
10.3.1の途中まで進めました。##2020/8/6 2.0時間
10.3.1完了しました。
【Rails】Vagrant環境でPostgreSQLを使用する方法
# 開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・PostgreSQL: 9.2.24
・OS: macOS Catalina# 実装
## 1.`vagrant ssh`へログイン
“`terminal:ターミナル
$ vagrant ssh
“`## 2.`yum`を最新版にアップデート
“`terminal:ターミナル
$ sudo yum -y update
“`## 3.`PostgreSQL`をインストール
“`terminal:ターミナル
$ sudo yum -y install postgresql
“`“`terminal:ターミナル
$ sudo yum -y install postgresql-devel
“`“`terminal:ターミナル
$ sudo yum -y install postgresql-server
“``psql –version`を実行して、バージョンが表示されればインストール完了です。
“`
【超初心者的】Rails 多言語化対応
##設定
27行目あたり。タイムゾーン設定の下に追加
“`ruby:config/application.rb
config.i18n.default_locale = :ja
“`##gem
末尾に追記
“`ruby:config/Gemfile
gem ‘rails-i18n’, ‘~> 6’
“`##インストール
“`terminal:ターミナル
% bundle install
“`##翻訳ファイルの作成
“`ruby:config/ja.yml
ja:
activerecord:
models:
menu: メニュー
attributes:
menu:
name: 商品名
price: 値段
description: 説明
“`Railsサーバ再起動で読み込まれる
##使用例
自動的に`ja.yml`に記載した日本語で表示される
formの場合
“`rhtml:
<%= form.label :name %>
<%= form.l
【超初心者的】Rails テーブル操作
##カラムの追加
“`terminal:ターミナル
% bin/rails g migration AlterMenus
“`日付のついたファイルが自動的に作成されるので、ファイルを編集。
以下は「menus」というテーブルに「shop」というカラムを「string型」で登録する例。“`ruby:db/migrate/20200702105650_alter_menus
def change
add_column :menus, :shop, :string
end
“`マイグレーション実行
“`terminal:ターミナル
% bin/rails db:migrate
“`##ロールバック操作
1つ前に戻す
“`terminal:ターミナル
% bin/rails db:rollback
“`3つ前に戻して再度migrationを実行
“`terminal:ターミナル
% rake db:migrate:redo step=3
“`指定のバージョンに戻す
“`terminal:ターミナル
% bin/rail
rails db:migrate:resetでのエラー
#プログラミングの勉強日記
2020年8月10日 Progate Lv.226
[rails db:migrateでのエラー](https://qiita.com/mzmz__02/items/c3b86f49ffeef19f74e1)という記事でマイグレーションファイルを操作するときにエラーが起きて、`rails db:migrate:reset`で対処すると述べたが、この`rails db:migrate:reset`を使おうとするとエラーが出たのでこれの対処をする。#エラー内容
Rails自体のバグ(?)で、Windowsでは自分がアクセスしてるファイルを削除できないことが問題になっているみたい、、“`terminal:ターミナル
$ rails db:migrate:reset
C:/Ruby26-x64/lib/ruby/2.6.0/x64-mingw32/etc.so: warning: already initialized constant Struct::Passwd
le::VERSION
C:/Ruby26-x64/lib/ruby/gems/2.6.
【Rails】ArgumentError: Malformed version number string 0.32+gitでwebpacker:installが実行できない場合の対処方法
## はじめに
`webpacker:install`を実行すると表題のエラーメッセージが表示されてしまい、Railsが実行できない状況が起きました。
今回はこの現象の回避方法についてまとめます。## この記事の対象者
– 表題のエラーメッセージが表示され、`webpacker:install`を実行できない人## 実際にどのようなエラーになるのか
### エラーに遭遇した環境
Docker公式の`Ruby:2.7.1`を利用したコンテナで遭遇しました。
他の環境では試していないため、同じ方法で対処できると断定はできませんが、参考になればと思います。
使用したDockerfileとRailsのバージョンは以下の通りです。“`dockerfile:Dockerfile
FROM ruby:2.7.1
LABEL maintainer=”TomoProg”
RUN apt-get update -qq && apt-get install -y \
build-essential \
libpq-dev \
nodejs \
default-m