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

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

未経験×独学からWeb系自社開発企業のエンジニアなるまでのストーリー

##はじめに
経歴として大学卒業後に自動車部品の会社で金型設計の仕事を2.5年していました。
2020年4月から独学を開始し、約6ヶ月後にWEB系自社開発企業様から内定をいただくことができました。
内定までの学習状況や転職活動での経験を共有させていただきます。
低偏差値大学、有用なスキルor資格無し、離職期間15ヶ月の私でもなんとかなりましたので、
これから勉強を開始される方や、転職活動中の方の参考になれば嬉しく思います。

##目次
1. なぜエンジニアを目指したか
2. 習開始時に設定したゴール
3. 転職時のスキルセット
4. 情報収集方法
5. 学習教材&金額
6. 学習&転職活動
7. まとめ

##1. なぜエンジニアを目指したか
この部分が最も大事だと思います。前職では目標もなく、なんとなく大手に入った理由から退職しましたので。
個人で稼げるから、リモートワークできるからという気持ちは、少なからず誰しもがあると思いますが、そのような理由のみで始めると挫折や、転職活動で苦労する可能性が高くなると思います。
自由な場所と時間でお金を稼ぐだけなら他にも色々ありますし。
人生にお

元記事を表示

実務未経験 × 独学でもWeb系自社開発企業に内定をいただけました!

##はじめに
経歴として大学卒業後に自動車部品の会社で金型設計の仕事を2.5年していました。
2020年4月から独学を開始し、約6ヶ月後にWEB系自社開発企業様から内定をいただくことができました。
内定までの学習状況や転職活動での経験を共有させていただきます。
低偏差値大学、有用なスキルor資格無し、離職期間15ヶ月の私でもなんとかなりましたので、
これから勉強を開始される方や、転職活動中の方の参考になれば嬉しく思います。

##目次
1. なぜエンジニアを目指したか
2. 習開始時に設定したゴール
3. 転職時のスキルセット
4. 情報収集方法
5. 学習教材&金額
6. 学習&転職活動
7. まとめ

##1. なぜエンジニアを目指したか
この部分が最も大事だと思います。前職では目標もなく、なんとなく大手に入った理由から退職しましたので。
個人で稼げるから、リモートワークできるからという気持ちは、少なからず誰しもがあると思いますが、そのような理由のみで始めると挫折や、転職活動で苦労する可能性が高くなると思います。
自由な場所と時間でお金を稼ぐだけなら他にも色々ありますし。
人生にお

元記事を表示

docker-compose upでコンテナが立ち上がらずエラーが出たときの話

前日まで使えていたのに、ある日いきなりdockerが立ち上がらなくなった。(PCアップデートしたせい??)

最初にでたのはこんな感じのエラー

“`
Could not find ancestry-3.1.0 in any of the sources
Run `bundle install` to install missing gems.
“`
上記のgemはgemfile.lockに載っているし、エラーが出るのはおかしいと思いつつも`docker-compose run web bundle install`してみたけど案の定同じエラーで動かない。

検索してみるとこんな記事があった。
https://teratail.com/questions/291124
試しに`docker-compose build –no-cache`をやってみると次は以下のエラーが

“`
db uses an image, skipping
Building web
Traceback (most recent call last):
File “site-packages\do

元記事を表示

rails コマンドが使えなくなった時の対処法

rubyのバージョンを上げたところ、rails s しようとしたら、コマンドが使えなくなった。

“$ rails –version rbenv: rails: command not found
The `rails’ command exists in these Ruby versions:
2.6.5 “

##結論 gem ‘rails’ をインストールしよう
1.`gem update –system`
2.`gem install bundler`
3.`gem install rails`

ターミナルで rails -vを打ち込み、Rails 5.2.3が表示されたらOKです。
 

元記事を表示

オブジェクト指向という考え方について1

Railsの勉強をやり直し始めたのでアウトプットとして残します。

オブジェクトとは、単純に翻訳すると「対象物」です。決して特殊なものではなく、世の中で皆さん自身も含めて皆さんがやり取りするもの全てがオブジェクトに当たります。オブジェクト指向とは、コンピューターの世界の全ての処理をオブジェクトを中心に取り扱う考え方です。

■オブジェクト(対象)とは、

●ある目的の振る舞いと、名前などの特徴となる固有の値とを持つ
●必要な時に呼び出される振る舞いを通し、固有の値を利用して目的とする処理を行う

ものだと言えます。少し硬い表現になりますが、この意味を理解することが重要です。

■オブジェクト思考プログラミングとは
何かのイベントを行う時、一般的に「式次第(プログラム)」を用意します。式を滞りながら運営するためには、この手順がしっかりできていることが重要です。なんらかの目的を持ったコンピュータプログラムを作ること(プログラミング)も、作業の手順(ロジックまたは手続き)をその目的に従って組み立てることになります。
従来、プログラミングは「全ての手順を一連のロジックで組み立てる」という方法で

元記事を表示

rails 新規アプリケーション立ち上げコマンド

#Ruby on Railsでの新規アプリケーション立ち上げ方法
###自分に向けて記憶の範囲内だけでアウトプットします!
###①
“`java:ターミナル
rails _6.0.0_ new test -d mysql
“`
###②
“`java:ターミナル
rails db:create
“`
###③
“`java:ターミナル
rails g model test
“`
###④
“`java:db/migrate/2020・・・・・
t.string :name, null: false (ここの行の記述は適当)
“`
###⑤
“`java:ターミナル
rails db:migrate
“`
###⑥
“`java:config/routes.rb
root to tests#index (ここの行も適当)
“`
###⑦
“`java:ターミナル
rails g controller tests
“`
###⑧
“`java:app/controller/tests.controller.rb
def index
@tests = Te

元記事を表示

PCの開発環境で作ったWEBアプリをスマホでも確認する方法

最近個人開発アプリのレスポンシブ化を行いました。
デベロッパツールでも見れますが、実機でもちゃんと表示されるか確認したいですよね。そんな時に手軽にスマホアプリでも確認する方法を共有させて頂きます。

【環境】

– windows10 Pro
– Rails: 6.0.3.2
– ruby: 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
– Docker for windows
– MySQL 5.7
– nginx:1.15.8

##手順
まず、PCとスマホを同じWiFiに繋ぎます。

その後、**Windowsキー+R**を押し、**cmd**と入力します。
コマンドプロンプトを開くので、**ipconfig**と入力しエンターを押します。

“`
イーサネット アダプター VirtualBox Host-Only Network:
(省略)
イーサネット アダプター VirtualBox Host-Only Network #2:
(省略)
イーサネット アダプター vEthernet (Extarnal V

元記事を表示

rails db:migrateでエラー(StandardError: An error has occurred, this and all later migrations canceled:が出た時の対処

# はじめに
これは学習用のメモになります。

今回は$rails db:migrate、または、$rails db:migrateを行った後のエラーが出た時の対処をしていきます。

“`
== 20200107095832 CreateMicroposts: migrating =================================
— create_table(:microposts)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table “microposts” already exists: CREATE TABLE “microposts” (“id” INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, “content” text, “user_id” integer, “created_at” datetime NOT NULL,

元記事を表示

Railsチュートリアル備忘録2

## 環境
macOS Catalina 10.15.5
Rails 6.0.3

Railsチュートリアルとそれに付随するいろいろを書いていきます。
Githubに慣れたいので、チュートリアルは第6版に準拠しています。

## 1.5.1 Herokuのセットアップとデプロイ
### リスト 1.21
`$ heroku create`

“`
› Warning: heroku update available from 7.42.13 to 7.43.0.
Creating app… done, ⬢ *****
https://*****.herokuapp.com/ | https://git.heroku.com/*****.git
“`
`$ git push heroku master`

“`
remote: LoadError: cannot load such file — uglifier
“`
“`
error: failed to push some refs to ‘https://git.heroku.com/****

元記事を表示

画像を複数件保存・表示する

##実装したい事

画像実装機能は実装済みで、複数件の写真を保存・表示させる。

###1.モデルのアソシエーション変更
変更前

“`
class Scene < ApplicationRecord belongs_to :user has_one_attached :image 省略 end ``` 変更後 ``` class Scene < ApplicationRecord belongs_to :user has_many_attached :images 省略 end ``` ###2.コントローラーの変更 変更前 ``` class ScenesController < ApplicationController def new @scene = Scene.new end def create @scene = Scene.new(scene_params) if @scene.save redirect_to root_path else render :

元記事を表示

コードを販売できるサービス「Code-sell」をリリースした!(個人開発)

追記
メール認証のエラーを修正しました。
いままで気づけなくてすみませんでした。

###初めに
今回、約2か月ぶりにwebアプリを公開しました。
プログラミングコードを販売できるサービス Code-sellです。

https://www.code-sell.net/

なるべく気軽に販売・購入できるように工夫しました。
100円から価格設定できます。
ちなみに僕が今まで作ってきた4つのwebアプリのコードをすべて無料で公開しています!
ほしい人いるかわからないけど何かの参考にでも…。

![code-sell.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480294/6fa5f9e1-080e-8e43-0e92-605dfac28863.png)

↑topページ

###なぜ作ったか
今まで作ったwebアプリを販売(譲渡)しようと思ったのですが権利の問題や面会などめんどくさそうなものがたくさん出てきました。そんな時に思いつきました。Code-sellは譲渡はせずコードをダウンロードするだけ

元記事を表示

 API(非同期通信を実装する場合)

#前提
– 非同期通信を実装する際のAPIについての内容である。
– コントローラーの記述、それに対応した.json.jbuilderの記述を記事にしている。

#APIとは
####JSONなどの形式で返すサーバの仕組みのこと。

非同期で行われるリクエストに対して、
「求められたデータをレスポンスする仕組みを用意する仕組み」を、APIを作成することで実現。

RailsではHTMLを返すのがデフォルトだが、
JavaScriptから扱えるようにJSON形式でデータを返すようにすることもできる。

#APIを追加する方法
RailsでAPIを追加する方法は複数存在する。
今回はコントローラー(のアクション)に追加する方法。

####「元々あるコントローラに対して非同期通信の場合には非同期通信用のデータを返す」
HTMLを返すのではなくてJSONを返すように記述する。
※Railsでは1つのアクションのなかでHTMLやJSONのフォーマットごとに分岐できる。

 
#respond_toを使用してJSON形式のリクエストに対してのレスポンスを返す
アクションに対して実装する。

元記事を表示

[Rails]Active Hashの導入

# はじめに
Active_Hashとは、都道府県名やカテゴリー選択などの変更されないデータをモデルファイル内に直接記述することで、データベースへ保存せずにデータを取り扱うことができるgemです。
Active_Hashを用いることで、モデルファイルに直接記述した変更されないデータに対して、ActiveRecordのメソッドを用いることができます。

# 目次
1.Active Hashのインストール
2.モデルの作成
3.マイグレーションファイルの編集
4.アソシエーションの設定
5.ビューファイルの編集

# 1. Active Hashのインストール
gemfileに以下を記述します。
その後、コマンドでbundle installを実行します。

“`ruby:gemfile
gem ‘active_hash’
“`

# 2. モデルの作成
今回はPostモデルとCategoryモデルを作成します。
Postモデルはいつも通りに作成します。

##### ターミナル
“`
rails g model post
“`

Categoryモデルを作成する際は、「–sk

元記事を表示

Herokuへのデプロイ【Ruby on Rails】初心者

### 開発環境:macOS Catalina/GitHub/MySQL
※Herokuへのユーザー登録完了後の手順です。
備忘録として残したいと思い、記事にしました。
初心者なので、至らない点があるかと思いますがその際はコメントいただけたらと思います。

# 1. Heroku CLIをインストールする
コマンド

“`
% brew tap heroku/brew && brew install heroku
“`

バージョンの確認

“`
% heroku –version
“`

バージョンが出力されたらインストール完了

公式サイト:https://devcenter.heroku.com/articles/heroku-cli

# 2. ログインする

“`
% heroku login –interactive
Email: それぞれ入力
password: それぞれ入力
“`

:information_desk_person:登録したメールアドレスがLogged in asの後に表示されていればログイン成功

# 3. Gemの導入

元記事を表示

Railsで生SQLをリードレプリカに投げる

switch_pointというgemを使用するのだが、
readmeにちらっとだけ書いてあって、例が示されてないのでわかりにくいがswitch_point_proxy.model_for_connectionってのを使えばいいみたい

[https://github.com/eagletmt/switch_point](https://github.com/eagletmt/switch_point)

例えばUserモデルだったら、

“`ruby
use_switch_point :slave
“`

みたいに追加して、

“`ruby
rows = []

User.with_readonly do
con = User.switch_point_proxy.model_for_connection.connection
sql = “select * from users limit 1”
rows = con.select_all(sql)
end
“`

みたいな感じで行けるみたい

元記事を表示

アセットパイプラインについて

アセットパイプラインの意味がよくわからなかったため、調べたことを残しておきます。

### そもそもの話
そもそもwebブラウザは“`HTML,CSS,JavaScpirt,WebAssembly“`を読み込むことで画面を表示している。(WebAssemblyとは大幅にパフォーマンスが向上する新しいタイプのコード)
その、“`HTML,CSS,JavaScpirt,WebAssembly“`をブラウザが読み込めるようにする仕組みをアセットパープラインという。

###アセットパイプラインとは

> アセットパイプラインとは、JavaScriptやCSSのアセットを最小化 (minify: スペースや改行を詰めるなど) または圧縮して連結するためのフレームワークです。

自分なりのまとめ
人間が見てわかりやすように配置されているCSSやJavascriptなどの静的ファイルを1つにまとめる機能のこと。
なぜまとめるのか→ファイルへのリクエスト回数を減らして処理を少なくするため。

### アセットパイプラインの流れ
1. 高級言語のプリコンパイル→人間がわかりやすいように書い

元記事を表示

Heroku×Railsで独自ドメインに rack-rewrite でリダイレクトさせる

Herokuで独自ドメインを設定しても`xxx.herokuapp.com`でアクセスできてしまう。これを解決する定番の方法は[rack-rewrite](https://github.com/jtrupiano/rack-rewrite)というGemを使うこと。玄人の方はこのGemを使わずに独自でコードを書くらしいが一旦定番の方法でやった。ちなみに`.htaccess`はHerokuでは使えない

## rack-rewrite を bundle install
https://github.com/jtrupiano/rack-rewrite

まずは毎度おなじみのGemのインストール。
Gemfileに`gem ‘rack-rewrite’`を追記し、ターミナルでプロジェクトのディレクトリに移動し`bundle install`する。

## 最終的なコード

下記で本アプリへのすべてのアクセスが恒久的に`https://mynewdomain.com`に飛ぶ(SSL化している前提)。`xxx.herokuapp.com`だけでなくhttpでもwwwありでも全部飛ばしてくれるよう

元記事を表示

Rails Active_storage -画像の保存を簡易化する-

Active storageとは

Active Storageは、ファイルアップロードを行うための機能です。これを使えば、フォームで画像の投稿機能などが簡単に作れます。クラウドストレージサービス(Amazon S3, Google Cloud Storage, Microsoft Azure Storageなど)に対するファイルのアップロードを簡単に行うことができます。

導入方法

  • Active_storageに沿ったテーブルを作る

““
% rails active_storage:install
““
Active_storageをインストールし、関連ファイル(マイグレーションなど)を生成

““
%rails db:migrate
““

Seaquel Proを確認すると以下のようなテーブルが生成されていたらここまでは成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629

元記事を表示

AWS から PaizaCloud へのお引越し

### 初めに・・・
AWS に開発環境を作っていましたが、1年ったったので料金体制が微妙に分からなかった事もあり、定額性のPaizaCloudへ移行しました。
AWSで作ったアプリもあったのでPaizaへ移動したのですが、
WASでの環境はRuby 2.6.3 Ruby on Rails 5.2.4.3
Paizaの環境はRuby 2.7.0 Ruby on Rails 6.0.3.2, 6.0.2.1, 5.0.7.2, 5.0.6
なので、動いてくれるわけがなく・・・
試行錯誤の結果、何とか動かすことが出来たので、似たような事で苦労する人が一人でも減るように、そして自分で忘れないために作業手順を残しておきます。

###サーバの作成
これと言って複雑な事はしてません。
Web開発はRuby on Rails
データベースはMySQLとphpMyAdmin
を選択しました。

### rbenvを入れる
ターミナルを開き下記コマンドを順に入力し、rbenvを入れます。

“`
$ git clone https://github.com/sstephenson/rbenv.git

元記事を表示

【Rails】deviseで現在ログインしているユーザー情報の取得方法

#はじめに

deviseでは「現在ログインしているユーザーの情報を取得」する事ができます。
例えば、「名前」「生年月日」「住所」「電話番号」など、対象のユーザーが既に登録した情報を表示する方法を紹介します。

###目次

1.current_userメソッド
2.遷移先のview

#開発環境
ruby 2.6.5
rails 6.0.0
devise 4.7.3

##前提
devise導入済み
model生成済み
ユーザー登録済みでデータを既に持ってる
view作成済み

#実装

それでは実装して行きます。

####1.current_userメソッド

deviseを導入しているため使用できるメソッドで、current_user(現在ログインしているユーザー)の情報が取得できます。

“`index.html.erb
<%= link_to current_user.nickname, edit_user_registration_path(current_user), class: "user-name" %>
     #↑ここ#          

元記事を表示

OTHERカテゴリの最新記事