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

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

Cloud9 “VFS connection does not exist”と表示されるときの対処法

Railsチュートリアルの1.3.2 rails serverを進めていたとき、サーバーを立ち上がっても
”Oops VFS connection does not exist”と表示されてしまうエラーについてです。

AWS Cloud9のプレビューが上手く表示されない時の対処法


↑参考資料

チュートリアル通り進めていても、エラーが出たので焦ってしまう人も多いと思います。

解決方法として

①Webサーバーの再起動

②使用ブラウザの確認

③EC2インスタンスの再起動

④OSのバージョンの更新

⑤Cookie設定

⑥広告ブロッカーやセキュリティソフト使用の有無

があるようです。私の場合、④と⑤を改善することで、サーバーを立ち上げることができました。ご参考までに。

元記事を表示

Cloud9 × Raisl × Docker × MySQL で環境構築

#はじめに#
cloud9を使ったDockerの環境構築の記事が少なく戸惑ったこと、自身のアウトプットのために執筆します。

別の記事でも記載していますが、現在転職活動中の身ですのでプロではありません。
間違いなどありましたらご指摘いただければ、自身でも調べ速やかに修正いたします。

>参考記事:
[丁寧すぎるDocker-composeによるrails5 + MySQL on Dockerの環境構築(Docker for Mac)](https://qiita.com/azul915/items/5b7063cbc80192343fc0)

ファイル内容は上記サイトから頂きましたが、port8080に対応するため一部編集を加えています。

#目標#
タイトルの構成で環境構築をし、「Yay! You’re on Rails!」を表示させる。

#環境#
Amazon linux
Ruby 2.6.3
Rails 5.2.4.4
MySQL 5.5.62
Docker 19.03.6
Docker-compose 1.27.4

#やってきましょう#
###インスタンスのボリュームを増や

元記事を表示

RailsにおけるRESTfulな設計とはなにか?

#RESTfulとは

>RESTful APIは、基本的に「RESTの原則」に従って実装されているWebシステムのHTTPでの呼び出しインターフェースのことを指します。
>>https://blog.api.rakuten.net/ja/jp-restful-api/#:~:text=REpresentational%20State%20Transfer%E3%81%AE%E7%95%A5,%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E6%8C%87%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

___なるほど..わからん。___

Railsの根本的なところやん?こんなに理解がぼんやりしていてええの?
ってことでこの曇った視界をはっきりさせていく。

#RESTful
アプリケーションを構成するリソースをHTTPリクエスト(GET/POST/PUT/DELETE)で作成、読み出し、更新、削除できる仕組み

要するに___URLに対してどのHTTPリクエストを送るかでそのあとの動作をより分けている___イメージか。

__

元記事を表示

Rails エラーメッセージを日本語化したいとき

私自身の備忘録のためにも記事を投稿してみたいと思います。

##Railsでエラーメッセージを日本語化したい場合

###言語設定の変更
まずはconfigのapplication.rbファイルを下記のように編集します。

“`ruby:config/application.rb
# 中略
module Pictweet
class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 6.0 # 日本語の言語設定 config.i18n.default_locale = :ja   # 省略 end end ``` ###Gemの導入 日本語に対応する'rails-i18n'というGemを導入します。 ```ruby:gemfile gem 'rails-i18n' ``` 上記を記述したらターミナルでbundle installを実行。

元記事を表示

【アウトプット】 Guardの導入

Guardを使うと、ファイルが保存されたと同時にそのファイルのテストが行われるので、いちいちコマンドを打たなくてもよくなる。

##導入
GemfileにGemfileの :test グループと :development グループguard-rspec を追加。

“`php:Gemfile
group :development, :test do
gem ‘guard-rspec’, require: false
end
“`
そして、bundle install。

それから、Guardfileを追加。

“`
$ bundle exec guard init rspec
“`
実行するには、次のコマンドを実行。

“`
$ bundle exec guard
“`
すると、guardが起動し、ファイルの監視が始まる。これを維持しておくと、ソースコードやテストコードを編集した時、RSpecが自動で実行される。

元記事を表示

Nature Remo Local APIを用いて、LAN内のRailsアプリからNature Remoを操作する

## 概要

LAN内だけでNature Remoを操作できるRailsアプリケーションを作成しました。[Nature Remo Local API](https://local-swagger.nature.global/)を利用しています。

あらかじめ家電のリモコンの赤外線信号をDBに保存しておくことで、Nature Remoのサーバとの通信がうまくできない場合でもNature Remoから赤外線信号を送信できます。ラズパイ等で起動しておけば非常時に活躍すると思います。

リポジトリ:[chappy30313331/nature_remo_local](https://github.com/chappy30313331/nature_remo_local)

### デモ

![demo](https://raw.githubusercontent.com/chappy30313331/nature_remo_local/main/public/demo.gif)

### 環境

下記の環境で動作確認しています。

– Nature Remo ファームウェア
– `Re

元記事を表示

Railsで起きた最初のエラー

こんばんは、ピチピチの社会人です。

本日はRailsで起きたエラーについてです。

##問題

RailsでCRUD処理について学んでいる時、ルート、コントロール、ビューの順にコードを書き、rails sをした時に以下のエラー文が出ました。

![スクリーンショット 2020-11-29 23.43.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/800544/2bc92da4-83b9-564e-e6a7-54afbe564244.png)
エラー表示怖すぎ、、とりあえずエラー文を読んでみる。
色々調べてみるとどうやらビューファイルに問題があるらしい。

“`routes.rb
Rails.application.routes.draw do

get ‘/users/new’, to: ‘users#new’
post ‘/users’, to: ‘users#create’
end

“`

“`users_controller.rb
class UsersControll

元記事を表示

初心者がRailsサーバー立ち上げるための環境構築で苦戦した話

#概要
progateの手順通りにすすめていくと、見事にハマって全然手順どおりに行かず。。。
ようやく「Yay! You’re on Rails!」の画面を拝むことができたので、
環境構築で躓いた部分を備忘録として書き残します。初心者が環境構築で挫折してしまう気持ちがわかりました。。。

#環境
・macOS Catalina ver10.15.7
・ruby ver2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
・rbenv ver1.1.2
・Rails ver6.0.3.4
・homebrew ver2.5.12
・yarn ver1.22.10
・nodebrew v8.9.4
・node.js v15.3.0

#ハマったことろ
1.Homebrewインストール
2.rbenv / ruby-buildインストール
3.webpackerインストール
4.nodebrew / node / yarnインストール

###1.HomeBrewインストール
以下のエラーで

元記事を表示

ポートフォリオ作成記録 Railsチュートリアル2章

## Rails scaffoldジェネレータとMVCモデル
そこで、railsチュートリアルの第2章が終わったのでその復讐の意味も込めて今回は記述致します。

## ・scaffoldジェネレータ
scaffoldジェネレータを使用すると自動でWEBアプリが作られます。
しかし、この章では概要を知り理解する事が目的なのであくまでも、
簡素で作りたいなら、scaffoldジェネレータを使用する事だと私は感じました。

## ・MVCモデル
Model=モデル(チュートリアルではデータベースのテーブル)
View=ユーザー(アプリを利用する人)が操作・結果をみる画面
Controller=ViewとModelのやりとりを処理(CRUD等)して返す。
上記の3つのことをさしている様です。
それぞれの役割をハッキリさせて、
プログラミングをすることでエラーを探して修正したり、
それぞれが独立して扱えるようにする事で改修も容易になると感じました。

※気になった用語
CRUD(クラッド)
システムでデータベース(DB)操作の基本で使用されていた。簡単に調べるとデータ操作

元記事を表示

【RSpec-rails】ユーザーモデル単体テストコード

### はじめに`rspec-rails`、`factory_bot_rails`、’fakerを導入する

“`:Gemfile

group :development, :test do
gem ‘rspec-rails’
gem ‘factory_bot_rails’
gem ‘faker’
end
“`

### 次にターミナルで`$ bundle install`、` rails g rspec install`を行う。作成された.rspecファイルに`–format documentation`(表示の出力がきれいになるようにフォーマットを指示する)を記述

“`:ターミナル
$ bundle install
$ rails g rspec install
“`

“`:.rspec
–format documentation
“`

### 仕様に沿ったユーザーモデルのデータを設定する
重複したemailは登録できないことにしているため、uniqueを付けて一意となるようにする

“`ruby:spec/factories/users

元記事を表示

メタプログラミングRuby(第I部・金曜日まで)を読んでいく

# 第5章 木曜日:クラス定義

– JavaやC#におけるクラスの定義は、あなたが「これがオブジェクトに期待する動作です」と言うと、コンパイラが「了解。やってみます」と答える。クラスのオブジェクトを生成して、メソッドを呼び出すまでは何も起こらない。
– Rubyにおけるクラスの定義は違っており、classキーワードは、オブジェクトの動作を規定しているだけではなく、実際にコードを実行している。

1. クラスマクロ(クラスを修正する方法)
2. アラウンドエイリアス(メソッドでコードをラップする方法)

## クラス定義

– クラス定義にはメソッドの定義だけでなく、あらゆるコードを置くことができる。

“`rb
class MyClass
puts ‘Hello’
end

# => Hello
“`

– メソッドやブロックと同じように、クラス定義も最後の命令文の値を返す。

“`rb
result = class MyClass
self
end

result # => MyClass
“`

– クラス(やモジュール)定義の中では、クラスがカレンとオブジェクト

元記事を表示

Rails 一意性 DB メモ

Railsでは、`データを保存段階でバリデーション`をかけてもだめ

なぜか?
DBレベルでも一意性を保証しなければならない

どういうことか…?
保存をする(フィルタリング)段階で「一意性」を設定しても
`リクエストを連続`で送ってしまうと同じユーザーが作成されてしまうらしい
→だから、DBレベルでも一意性を保証しないといけない

元記事を表示

ヘルパーメソッドの概要

ヘルパーメソッドの中でも[form_withメソッド]の中身がまだ完璧に覚えていないので言語化しながら記事を投稿したいと思います。

フォームを実装するために、HTMLのformタグの代わりにform_withメソッドを用いる。rubyとして取り扱われるので<%= %>で囲む。
form_withメソッドを使う利点はUrlパスやRubyの埋め込みができるためです。

では早速form_withメソッドの中身を記述し概要を確認します。

<%= form_with url:~~~path, method::post, local:true do |form|%>
<% end %>

~~~はターミナルでrails routesで確認したパスを指定します。

では一つずつ解説します。

url:~~~path リクエストを送信したいパスを指定  (例)newアクションからcreateアクションに遷移する際のパスを指定。

method::post(オプション) 送信するHTTPメソッドを指定する。POST意味[送信する、作成する]これもrails routesで確認したのを指定する

元記事を表示

Amazon LinuxインスタンスにRails6をインストールするまでの手順

## この記事でやろうとしていること
タイトルの通りですが、Amazon LinuxインスタンスにRails6.0.3をインストールするまでの流れです。
なぜRails6.0.3か?というのは、おなじみ「[Railsチュートリアル](https://railstutorial.jp/ “Railsチュートリアル”)」の第6版で指定されているバージョンだから、というだけです。

RailsチュートリアルではAWSの統合開発環境 (IDE)「[Cloud9](https://aws.amazon.com/jp/cloud9/ “AWS Cloud9”)」の利用を前提としています。Cloud9はRailsをインストールする上での前提パッケージが既に入っているので、

“`
$ gem install rails -v 6.0.3
“`

と叩くだけですんなりRailsが入ってくれますが、一歩cloud9という温室から外に出るとそうはいきません。

というわけで、何番煎じかはわかりませんが、少なくとも筆者はいろいろググって何とか解決したので、需要はあるはず。さっそく解説に入っていきます。

元記事を表示

【Rails】DBと連携してプルダウン(ドロップダウン)メニューをつくる(勉強中)

SIer企業で働く社会人4年目OLです。
仕事をやめる予定はないのですが、手に職をつけていつか副職ができるといいなと思いWEBアプリ開発の勉強し始めました。(2ヵ月くらい)

練習でWEBアプリ開発をしていますが、初めてつまったのがプルダウンメニューの作成なので勉強がてらまとめてみます。同じように悩んでる人の役に立てたらいいなと思います。

勉強始めたばかりなのでここ違うよ!っていうところがあればご指摘いただけると嬉しいです。

#やりたいこと
DB(Gameモデル)に格納しているデータをプルダウン(ドロップダウン)で選択して別のDB(Stageモデル)に保存したい。

![プルダウン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797344/7cf713aa-8ecb-463d-be5e-c472248c215f.png)
###モデル設計

####Gameモデル
| カラム | 型 |
| —- | —- |
| id | integer |
| game_name

元記事を表示

swiperを導入したけど画像のレスポンシブがうまくいかないよ

##はじめに
Railsで自作アプリを開発中の私。(bootstrapを使用)
swiperを使ってサイトの見た目を良くしたいと思い、さっそく導入することに。

その結果、問題なく動きました。

レスポンシブ対応もしました。

ただ、**画像がレスポンシブ対応してくれませんでした。**

swiperを使うときswiper-containerにheightを設定しますが、画面サイズが小さくなってもheightが固定なので変な余白が生じてしまいます。
またいい感じに調節しても画面幅を小さくすると、画像が見切れるといった別の問題が発生します。

私は当初、メディアクエリを用いてブレイクポイントごとにheightを変更するゴリ押し方法でこれらの問題を解決していました。(これが普通かもしれません。)

でもせっかくbootstrapを使用しているのに追加でメディアクエリを使うのはなんか嫌だなと思ったり。

そんなとき簡単に解決する方法を見つけました。
共有させていただきます。

##こんな人に向けて
1.Rails+bootstrapの開発中でswiperを使用したが、レスポンシブがうまくいか

元記事を表示

30代未経験からRails, AWS, Docker, CircleCIを使って減量アプリを作りました

プログラミング未経験の31歳男がRuby on Rails, jQuery, AWS, Docker, CircleCIといった技術を使ってWebアプリを作りました。

この記事では、最初にアプリの紹介をした後に、

– どれくらいの時間かけて作ったのか
– なぜこれらの技術を使うことにしたのか
– 特に大変だったところ
– どのように学習したのか

といったことについて、お伝えできればと思います。

# どんなアプリを作ったのか
減量アプリです。(筋トレしてる人が健康的に体脂肪を減らすためのアプリ)

「これなら自分でも続けられる」をコンセプトに「PFC MASTER」というアプリを開発しました。

アプリのURLはこちらです。
https://pfcmaster.work/
(レスポンシブ対応しておりスマホからも見られますが、グラフが崩れます)

Githubはこちらです。
https://github.com/naota7118/pfc-master

## なんでこのアプリを作ったのか
僕自身が「減量がなかなか続かなくて、まだ腹筋を割れたことがない」という悩みを抱えていまし

元記事を表示

【RSpec】ユーザーの新規登録について結合テストを行う時に意識すること

 最近、RSpecを使ってオリジナルアプリのテストを実装しているのですが、新規登録で詰まったところがあるので、メモしておきたいと思います(といっても非常に単純なことなのですが?)。

# 詰まったこと

 まず、ユーザーモデルのバリデーションは以下の通りです。

“`ruby:app/models/user.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable

# ニックネームのバリデーション
validates :nickname, presence: true, length: { maximum: 30 }

# メールのバリデーション
EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i.freeze
validates :email, format: { with: EMAIL_REGEX }

# パスワードのバリデーション
PASSWORD_REGEX = /\A(?=.

元記事を表示

Rspecのシステムテストでクッキーに関するテストしてみた

#はじめに
皆さん始めまして!
駆け出しエンジニアのプージニアことpoo3です!
今回初投稿となるので多めに見ていただけると幸いです。

###対象となる読者様
・Rspecのシステムテストでクッキーに関してテストを行いたい方

###参考記事
@rokさんの記事
https://qiita.com/rok/items/09f5cab47338d0fa9188

##結論:gem ‘show_me_the_cookies’を導入しよう
まずはGemfileに ‘show_me_the_cookies’を追加

“`ruby:Gemfile.rb
gem ‘show_me_the_cookies’
“`

次にみんな大好き ‘bundle install’ ??

“`
bundle install
“`
rails_helperの中でインストールした’show_me_the_cookies’を使えるようにincludeする
(システムテストの中で使う事を想定しております)

“`ruby:rails_helper.rb
config.include ShowMeTheCook

元記事を表示

【Rails】carrierwave(キャリアウエーブ)で動画の投稿(保存) 

#はじめに
キャリアウエーブ(carrierwave)を導入しました。
画像ではなく、動画の投稿方法を紹介します。
 
###目次
1. carrierwave導入
2. 動画の保存準備
3. 動画の投稿

#開発環境
ruby 2.6.5
rails 6.0.0

#実装
それでは実装していきます〜

#1. carrierwave導入
まずはGemをインストールします。

“`:ターミナル
gem “carrierwave”
“`

“`:ターミナル
bundle install
“`
gemを読み込むために、`rails s` して必ずサーバーを再起動させてください。

##1.2 アップローダークラスの生成
動画専用のファイルを作成します。

“`:ターミナル
rails g uploader video_top
“`

構文はこちらです。

“`:ターミナル
rails g uploader アップローダー名
“`
今回はvideo_tpoという名前で作ります。

そうすると以下の様なファイルが自動生成されます。

![スクリーンショット 2020-1

元記事を表示

OTHERカテゴリの最新記事