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

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

rails db:createのエラー解決

非同期通信を学習するために、サンプルとしてToDoリストを管理するアプリを作成しようとしたところ、データベースを作成する段階で以下のようなエラーが出た。
ので、その備忘録として残しておこうと思う。

“`
tech-camp@A-458 memo_app % rails db:create
rails aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime.
See https://github.com/rails/execjs for a list of available runtimes.
/Users/tech-camp/projects/todo_app/memo_app/config/application.rb:7:in `
/Users/tech-camp/projects/todo_app/memo_app/Rakefile:4:in `require’
/Users/tech-camp/projects/todo_app/memo_app/

元記事を表示

【CircleCi】Railsアプリに導入(設定ファイルについて)

## Qiita投稿の背景
Railsアプリの静的コード解析テストに「RuboCop」、単体テストと統合テストに「RSpec」を使用しています。
上記二つのツールを学習を進める過程で、CIツールというものに巡り合いました。調べていくと、使わない手はないと思い、また開発環境に「Docker」を導入していたこともあり、早速Railsアプリに導入してみました。
YAMLベースで設定することができるので、そこまで難度は高くないと思いましたが、自分の備忘録、アウトプットによる知識の定着も兼ねて記録します。

## この記事の対象者
– Dockerの概念をなんとなく知っている方
– テストの概念について理解している方
– CircleCIのアカウントがあり、GitHub(Railsのリポジトリ)を連携している方

## 環境
– ruby 2.5.1
– Rails 5.2.4.1
– Mysql 5.6.43
– 静的コード解析テストに「RuboCop」、単体テストと統合テストに「RSpec」

## CircleCIって何?
– 「 CircleCI 」 → CIツールの中の一種

– 「

元記事を表示

MySQLが起動できない時の対処法

#環境

macOS Mojave 10.15.1

MySQL 8.0.15

# エラー文

####エラー文1
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

####エラー文2
ERROR! The server quit without updating PID file

#解決方法

####MySQLのデータファイルやログなどが格納されているディレクトリを削除する
$ sudo rm -rf /usr/local/var/mysql

####MySQLを再インストール
$ brew uninstall mysql
$ brew install mysql

####MySQLを起動
$ mysql.server start
Starting MySQL
SUCCESS!

#感想

エラー文1でググっていたために、かなり時間がかかりました

エラー文2でググってみたらこのやり方ですんなり

詳しくは参考記事を見てください

#参考記事

元記事を表示

はじめてのVPS 入門 Vultr Rails6

## はじめに

[はじめてのVPS 入門 Vultr deploy から destroy まで](https://qiita.com/may88seiji/items/5f3020329a869f0e3fea) にてServerを立ち上げるところまで紹介しました。(VPSについてはこのリンクを参照してください)
今回は **Rails 6** を動かすところまで書きたいと思います。
参考になりましたら、下記利用していただけると励みになりますmm


*紹介バナーになっています。紹介者と新規ユーザー($10以上のデポジットと30日以上利用することが条件)の双方が得します
(現在、8名の方に利用していただいてます。ありがとうございますmm)

## 対象の読者
“`
– Rails で作ったアプリケーションをデプロイしたい方
– AWSなど

元記事を表示

【Rails】初めてのパンくずリスト実装(gem gretel)

パンくずリストを実装しました。gem gretelを使えば、設定ファイルとビューからの呼び出しのみで作成できます。

![Alt text](https://gyazo.com/480d8668724a24c2cc9ea990ac9e171f/raw)

# 手順
① gemの導入 → `bundle install`

“`ruby:Gemfile
gem ‘gretel’
“`
② 設定ファイルの作成

“`
$ rails g gretel:install
“`

③ 作成された`config/breadcrumb.rb`にパンくずを定義
デフォルトのコメントは削除ok。

“`ruby:基本の構造
crumb :ビューで呼び出すためのパンくず名 do
link “リンクの文字”, リンク先のパス
parent :1コ前のページのパス(ない場合は不要)
end
“`

**実際のコード**

“`ruby:breadcrumb.rb
#ルート
crumb :root do
link “フリマ”, root_path
end

#マイページ
crumb :

元記事を表示

RSpecで独自metadataを利用する

RSpec の独自 metadata が便利だったので、利用方法と思い付く使用ケースをまとめます。

## 環境

“`bash
$ bundle exec rails -v
Rails 6.0.2.2

$ bundle exec rspec -v
RSpec 3.9
– rspec-core 3.9.1
– rspec-expectations 3.9.0
– rspec-mocks 3.9.1
– rspec-rails 3.9.0
– rspec-support 3.9.2
“`

## metadata の宣言
it (example) ブロックに `:hoge` という metadata を宣言する場合は下記の様になります。

“`rb
RSpec.describe ‘Example’ do
it ‘test1’, :hoge do
end
end
“`

するとブロック内で宣言した metadata が利用できるようになります。

“`rb
it ‘Test 1’, :hoge do |example|
p example.met

元記事を表示

RailsでGoogleMap APIを活用し、Mapを表示させる方法

### はじめに
Google APIを活用してRailsアプリにGoogleMapを表示する手順をまとめます。

### 詳細

“`js:map.js
function initMap(){
let map = new google.maps.Map(document.getElementById(‘map’), {
center: {lat: <%= @post.latitude %>, lng: <%= @post.longitude %> },
zoom: 15
});
}
“`

任意のviewファイルに以下のコードを記述します。
私の場合は、釣れた場所をGoogleMapで表示したかったため、`

`タグに釣行場所が書かれています。

“`rb:index.html.erb

釣行場所

<%= javascript_include_tag 'map.js' %>

元記事を表示

RailsでJavaScriptsを使う方法

### はじめに
RailsでJavaScriptファイルを読み込む方法をまとめます。

### 詳細

任意のviewファイルに以下のコードを追加します。

“`rb:sample.html.erb


<%= javascript_include_tag 'sample.js' %>


“`

次にasseets.rbに以下のコードを記述します。

“`rb:config/initializers/assets.rb
Rails.application.config.assets.precompile += %w( sample.js )
“`

これで、`app/assets/javascripts/`に置いてある、任意のjsファイルが読み込まれて、view上でJavaScriptが使えるようになります。

以上

元記事を表示

gitの使い方(git init 〜git push)

#はじめに
初めてgitを使う人のために、appを作成してからgit pushするまでの流れを書きました。

##1.新しいレポジトリを作成する
まず、保存するためのレポジトリを作成します。
今回はGithub上で作成します。(Bitbucketだと画面は異なりますが基本は同じです。)
右上にある+ボタンのNew repositoryを押します。
スクリーンショット 2020-04-19 20.03.46.png

Create a new repositoryの画面が開きます。
Repository nameに作成するappの名前を入力し、Create repositoryを押します。今回はdemo_appと名付けます。
スクリーンショット 2020-04-19 </p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>GitHub</div>
<div class='tag-cloud-link'>ターミナル</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/shungo0525/items/b73ff5b1ec6d69bb5c50'>元記事を表示</a></div>
<h3 id=railsチュートリアル 12章 初心者が意識すべき事

#初心者がrails チュートリアル12章で意識すべき事
特に無し
##理由
これまでの章をある程度理解しているとスムーズに進むから。
なので、ここはスッと乗り越えましょう!

元記事を表示

bundle installとbundle updateの違いとは?

rails tutorialを25日間かけてやり終えた和己です。
かなり挫折しかけましたがなんとかやり終えました。

そこでわからない用語が複数あったので復習をかねてまとめていきたいと思います。

今回は「**bundle install**と**bundle update**の違い」についてまとめます。

##必要な事前知識3つ
bundle installとbundle updateの違いを知る前に知っておくべき事前知識が3つあります
### Bundlerについて
Bundlerはgemを管理するためのgemです。Bundlerを使用することでbundle installやbundle updateコマンドを使用することができるようになります。

**gem**とはrubyのライブラリのことです

###gemfileについて
bundlerがgemsを探す時に何に基づいて探すと思いますか?
それがgemfileです。

なので簡単に言ってしまうとgemfileは「**設計図**」のようなものです。

###gemfile.lockについて
gemfileだけだと、本番環境と開発

元記事を表示

Railsチュートリアル第4章

#4.2 文字列とメソッド
##4.2.2 文字列
###演習1
city変数に適当な市区町村を、prefecture変数に適当な都道府県を代入してください。

“`
>> city = “長岡京市”
=> “長岡京市”
>> prefecture
=> “京都府”
“`

###演習2
先ほど作った変数と式展開を使って、「東京都 新宿区」のような住所の文字列を作ってみましょう。出力にはputsを使ってください。

“`
>> puts “#{prefecture} #{city}”
京都府 長岡京市
=> nil
“`

###演習3
上記の文字列の間にある半角スペースをタブに置き換えてみてください。(ヒント: 改行文字と同じで、タブも特殊文字です)

“`
>> puts prefecture + ” ” + city
京都府 長岡京市
=> nil
“`

###演習4
タブに置き換えた文字列を、ダブルクォートからシングルクォートに置き換えてみるとどうなるでしょうか?

“`
>> puts prefecture + ‘ ‘ + city

元記事を表示

【Rails】acts-as-taggable-on と jQuery で実装!超簡易版サジェスト機能!

# 実装内容
– 投稿された記事をタグ検索できるようにしよう! というのが主な目的。
– gemの`acts-as-taggable-on`を使って、記事を投稿する際にタグもDBに保存する。
(今回はサジェスト機能実装がメインなので詳細は割愛。タグ機能実装については
[Rails | acts-as-taggable-on を使ったタグ機能の実装 | 備忘録](https://qiita.com/ddgg7755/items/e1caa8b73d118822a0a2)と
[Railsのタグ機能の実装(gem:acts-as-taggable-on)]
(https://www.blograils.com/posts/rails-actsastag)を参考にしました)

– jQuery UIを使ってDBに保存しているタグをもとにサジェスト機能を作成。

[![Image from Gyazo](https://i.gyazo.com/0f309c02faf9fa0e5867f81d50163b66.gif)](https://gyazo.com/0f309c02faf9fa0e586

元記事を表示

Missing encryption keyでPrecompiling assets failedなった時やることの全て『2020』| heroku Rails

## ステップ1

仕切り直す。 `credentials.yml.enc` と `master.key`を消す

スクリーンショット 2020-04-19 17.10.49.png

## ステップ2

下記のコマンドをよしなに実行

“`
% EDITOR=”vi” bin/rails credentials:edit
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
% EDITOR=”vi” bin/rails credentials:show
% RAILS_ENV=production bin/rails assets:precompile
“`

## done

“`
% sudo git push heroku ma

元記事を表示

Rails + MySQL + Vue.jsでアプリを作成する➂/簡単な画面を作成する

####※前回:Rails + MySQL + Vue.jsでアプリを作成する②/MySQLの導入
https://qiita.com/tksh8/items/885eb1ca51b32d6ea3a9

## コントローラーの作成

次のコマンドをターミナルで実行してください

“`
$ rails generate controller StaticPages top
“`

## ルーティングの編集

“`ruby:config/routes.rb
Rails.application.routes.draw do
root ‘static_pages#top’
end
“`

## ビューの編集

“`html:app/views/static_pages/top.html.erb

トップページです!!

Hello World!!

“`

## 確認
“`
$ rails s
“`


http://localhost:3000/
にいき、

スクリーンショット 2020-04-1</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Ruby</div>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>MySQL</div>
<div class='tag-cloud-link'>Vue.js</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/tksh8/items/741cf379da06d8817389'>元記事を表示</a></div>
<h3 id=Rails + MySQL + Vue.jsでアプリを作成する②/MySQLの導入

####※前回:Rails + MySQL + Vue.jsでアプリを作成する①/ローカル環境構築
https://qiita.com/tksh8/items/d9190451d1f01d5a5e19

##MySQLの導入

###1.MySQLのインストール

“`

$ brew install mysql@5.7
“`
インストールが完了したら、パスを通す

“`

$ echo ‘export PATH=”/usr/local/opt/mysql@5.7/bin:$PATH”‘ >> ~/.bash_profile
$ source ~/.bash_profile
“`

インストールされているか確認

“`

$ mysql –version
“`

###2.MySQLの起動

動作の確認です

“`
$ mysql.server start
“`
“`
Starting MySQL
SUCCESS!

となれば成功です。
(停止の場合は
mysql.server stop

“`
###3.mysql2のインストール
mysql2:rai

元記事を表示

【Rails】多階層カテゴリーの作成(Gem ancestry)

メルカリのクローンアプリ作成に際して、商品カテゴリーテーブル、商品出品ページ、出品商品の編集ページを実装しました。
初心者にも、すごく便利に感じたancestryに関する備忘録です。

## 最終ゴール
**商品出品ページ**![Alt text](https://gyazo.com/8a459683e98e1cccdac99b978e56e4e5/raw)

## 実装したい動作
– 親カテゴリーの表示(haml)
– 親カテゴリーが選択されたら、紐づく子カテゴリーを表示(Ajax)
– 子カテゴリーが選択されたら、紐づく孫カテゴリーを表示(Ajax)
– 孫カテゴリーが選択されたら、サイズセレクトボックスを表示(jQuery)

## 0. 準備
– gemの導入 → `bundle install`

“`Ruby:Gemfile
gem ‘ancestry’
“`
– モデル

“`Ruby:item.rb
class Item < ApplicationRecord belongs_to :category end ``` ```Ruby:category.rb c

元記事を表示

railsチュートリアル 11章 初心者が意識すべき事

#初心者がrailsチュートリアル11章で意識すべきこと
1.本番環境で実際にメールを送ってみる。
2.環境変数について
##本番環境で実際にメールを送ってみる
これは結構大事です!
というのも、11−4の**SendGrid**を実際に使ってみるのに、僕は謎にてこずったからです。
結論としては**コマンドでアドオンを追加すると動かない**という状況に陥ったからです。
結果として、**heroku**で追加したら何も問題は起こりませんでした。(今も謎)
こういったように本番環境では、**エラー文**より怖い**よくわからんけど動かん**みたいな状況に遭遇する事が多々あるので、それをわからないなりに解決していく**検索力**+**気合い**(笑)をrailsチュートリアルの中で養う必要があると思います。
##環境変数について
これは、名前のとおり、**環境によって変わる数**です。
つまり、コピペしてはいけないという事を頭に入れておけば十分だと思います。
(ここは自分のアプリを作る中で、多用するのでその中で慣れながら理解していくのが良いと思います。)
#最後に
正直、9章以降は細かいとこ

元記事を表示

TECH CAMP入校前

TECH CAMPのカリキュラムを2週間終え感じたことは、

「ある程度勉強していて良かった‥。」

受講を悩んでいる方や、これから受講するって方は”未経験からエンジニアへ”という謳い文句を勘違いして知識ゼロで臨むとなかなか苦労すると思います。カリキュラムの進行はスピーディで、合間にあるテストや試験もなかなか難しいです(検索はOKです)。
一度でも内容に触れたことがあれば記憶の定着もしやすいですし、理解度も増します。

TECH CAMP受講前の自分の学習内容(3ヶ月間)としては、
・プログラミングとは何か?みたいな本
・初心者向けのRubyの本
・Progate
・Youtube
・ITパスポートのテキスト

プログラミングを学ぼうと決めたのが11月下旬で、12月に入って退職届を会社に提出。
TECH CAMPの無料カウンセリングを受けて受講が決まったのが12月。すぐに開始かと思いきや4月スタートという事で、だったらその間に知識ゼロの状態から何かひとつでも作ってやろうと思い2冊の本を買いに行きました。(ちなみにそのタイミングでパソコンをWindowsからMacへ)

・プログラ

元記事を表示

Rails初心者の僕がRails6でActive Storageを使用し、漫画投稿アプリを開発してデプロイした過程(設計編)

## 設計編に入ります
みなさんこんにちは、Rails初心者のほまりんです。[前回の環境構築編](https://qiita.com/homarinn1230/items/34468b61c6a91988ca55)はお読みになられたでしょうか。もし未読かつ興味のある方は、是非ご一読なさってください。それではこれより、設計編に移らせていただきます。

## と、 先にどうでも良いことを一つ
前回の記事で、私が就職浪人かつ就活中だということを述べましたね。

**・・・就活、詰んでました**

悲劇です。コロナの影響でどこも採用活動を一旦中断しており、面接で落ちる落ちない以前に応募しても企業から反応すら返ってないです。ピンチはチャンスと言いますが、チャンスを奪われるタイプのピンチはもうただのピンチです。SAN値もピンチです。それでも頑張りマッスル。

## 今回のアプリの全体像
実際の設計に入る前に、まずは今回のアプリの説明をさせていただきます。記事のタイトルでは漫画投稿アプリと題しておりますが、今回私が作りたかったのは「小説・イラスト・漫画」の三種類が投稿できるサイトです。つまりは「pi

元記事を表示

OTHERカテゴリの最新記事