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

Rails関連のことを調べてみた2020年12月31日
目次

elasticsearch-rails(7系)のcreate_index!でclass_cast_exceptionが出るときの解決法

## 事象

[RailsとElasticsearchで検索機能をつくり色々試してみる – その1:サンプルアプリケーションの作成](https://qiita.com/yamashun/items/6ecaa6f161b4cf283db3#%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E7%99%BB%E9%8C%B2)を参考にRailsでElasticSearchの学習をしています。

インデックスとモデルの準備をして、いざインデックスを作成しようとしたら、下記のようなエラーが発生しました。

“`
irb(main):001:0> Manga.create_index!
Traceback (most recent call last):
2: from (irb):1
1: from app/models/concerns/manga_searchable.rb:50:in `create_index!’
Elasticsearch::Transport::Transport::Errors::InternalSer

元記事を表示

AWS cloud9でrails serverが切れなくなった時の対処法

■問題点
rails tutorial学習時、
rails serverを起動したまま、誤ってターミナルを閉じてしまった。。。。

■通常の終了方法
→ctrl+c

■本件の対処法
ターミナル上で右クリック
→Tmux
→Restart All Terminal Sessions
→解決!
![スクリーンショット 2020-12-31 11.03.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/965757/a4aba163-a30b-d046-5021-06f9de784a07.png)

※メモ用で取り急ぎのアップのため、編集予定です。

元記事を表示

Ubuntu(20.04.1 LTS)を用いてRubyとRails環境を構築する前段階でハマった話

##はじめに
Ubuntu使い始めて2ヶ月
Ruby on Rails勉強し始めて3ヶ月の超初心者です。(2020.12.31時点)
初投稿なので、お手柔らかにお願いします>< ##環境 + Ubuntu 20.04.1 LTS ##参考にしたサイト + (Ubuntu)Ruby on rails 6.0 環境構築
+ Ruby 歴 10 年の私が【絶対に】 gem install rails コマンドを実行しない理由
+ ubuntuで「sudo apt-get install docker-ce」実行時に以下のエ

元記事を表示

未経験からWeb系エンジニアへ転職するために勉強しています。

#はじめに
未経験からWeb系エンジニアに転職するために勉強をしています。
勉強の進捗や勉強方法などを記録しておくために記事にしたいと思います。
#自己紹介
まずはじめに、自己紹介をします。
現在は建築系の仕事を大分でしています。
年齢は31才、結婚していて2歳の子供がいます。
プログラミングの経験は、大学時代に研究でフォートランを使って、数値計算のプログラムは作っていました。
大学時代からプログラミングって面白いなと感じていましたが、建築の勉強をしていたこともあり、そのまま建築系の仕事につきました。
今の会社では、7年働いており、それなりに楽しいのですが、プログラミングを仕事時間外にやってみると、非常に面白く感じたので、Web系エンジニアに転職することを最近考え始めました。

以前にも何度かプログラミングに挑戦はしてみたのですが(アンドロイドアプリやiPhoneアプリの開発)途中で挫折してしまいました。
2020年の10月からプロゲートのrailsコースに取り組んでみたところ、非常にわかりやすく、これなら挫折しないで学べそうだと感じ、本格的に勉強に取り組んでいます。
10月より以前は

元記事を表示

アプリケーションをRuby3にあげるときにやること

今年のクリスマスにRubyのメジャーバージョンが代わり、ついにRuby3.0.0が世に出ましたね。

Ruby2系でこの言語に触れた方は多いのではないでしょうか。(その一人です)

初のメジャーアップデートということで、仕事で関わっているアプリケーションや自分が管理しているgemを、ためしにRuby3にあげてみよう・・・と試みたところでハマった点について書いていこうと思います。

さあ、レッツ `rbenv global 3.0.0`!

## TL;DR

直前・直後のバージョンでCIを回すことが大切ですが、いくつか注意点があります。

– Ruby2.7.2以降では、デフォルトで警告が表示されない
– テスト環境に環境変数 `RUBYOPT=’-W:deprecated’` をつけておこう
– バージョンをまたいだマトリックスビルドをする場合、テストヘルパーに `Warning[:deprecated] = true` が便利

おまけとして、実際の対応で遭遇した現象の調査結果と、具体的な対処法も書いておきます。

## 直前バージョンが警告を出さない
Ruby3へバージョンを上

元記事を表示

【Rails】複数テーブルでキーワード検索

##はじめに
複数テーブルを一つのフォームでキーワード検索するのに少し苦労したので、
備忘録として共有させていただきます。

親テーブル

| recipes |
|:-:|
| id |
| title |

子テーブル

| ingredients |
|:-:|
| id |
| name |
| recipe_id(FK) |

##手順

“`ruby:views/recipes/search.html.erb
<%= form_with url: search_recipes_path, local: true, method: :get do |f| %>
<%= f.text_field :keyword, placeholder: "キーワードを入力" %>
<%= f.submit "検索" %>
<% end %>
“`

入力された内容は:keywordに格納され、コントローラーのparams[:keyword]で受け取ります。

“`ruby:routes.rb
resources :recipes do
collection do

元記事を表示

My 1880’s 〜タイムゾーンをLMTからJSTに修正〜

# はじめに/エラー発生時の状況

作成したカレンダーアプリ的なものを手直し中、
`time_select`で送った時刻データの保存時に、ズレが生じていることに気付きました。

“`erb:new.html.erb(時間フォーム分のみ抜粋)

開始時間
必須
<%= f.time_select(:start_time, {class:'select-date', id:"start-time", prompt:'--', time_separator: ':'}, ignore_data: true) %>
終了時間
元記事を表示

[Rails]views ファイル作成#textが表示される

##textが表示される

表示していない#textという文字列が表示されたので、調査しました。

![スクリーンショット 2020-12-30 23.17.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/985261/2a0bf01b-1272-a1c1-91e7-f9477c77c03f.png)

間違ったソースコード index.html.erb↓

“`

トップページ

<%= @posts.each do |post| %>

<%= post.memo %>
<%= post.created_at %>

<% end %>
“`

posts_controller.rb ↓

“`
class PostsController < ApplicationController def index @posts = Post.all end end ``` @posts = Post.all で DB

元記事を表示

Rails Bootstrap導入

Bootstrap導入

##動作環境
ruby 2.5.1p57
Rails 5.2.4.4

##Gem導入

“`Gemfile
gem ‘bootstrap’
gem ‘jquery-rails’
“`

“`
bundle install
“`

##application.cssをリネームする

“`
mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
“`

##application.scssで読み込む

“`
@import “bootstrap-sprockets”;
@import “bootstrap”;
“`

##application.jsに追記

“`app/assets/javascripts/application.js
@import “bootstrap-sprockets”;
@import “bootstrap”;
“`

##サーバー立ち上げる
もともと立ち上げていた場合には、一旦おとして再起動させる

元記事を表示

Railsチュートリアル第6版の3.3.1のテストで「ActionView::Template::Error: Permission denied」エラーが出たので解決した

##環境は何?
* Windows10 Home ver.2004
* ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]
* Rails 6.1.0

##何が起きた?
 [Railsチュートリアル](https://railstutorial.jp/chapters/static_pages?version=6.0#sec-our_first_test)のリスト3.15の`rails test`コマンドを実行したら、次のようなエラー①が出た。

“`:エラー①
D:\Programming\RubyOnRails\sample_app2>rails test
Run options: –seed 42827

# Running:

E

Error:
StaticPagesControllerTest#test_should_get_home:
ActionView::Template::Error: Permission denied @ rb_file_s_rename – (D:/Programmi

元記事を表示

一意性制約を確かめるモデル単体テストコード

#はじめに
 先日の投稿の付け足しです。
[ちょっと一癖あるRSpecを使ったモデルの単体テストコード 〜ユーザー登録](https://qiita.com/TerToEer_sho/items/51330fd4bd40e91fdd7b)
##一意性制約を確かめるテストコード

“`ruby
RSpec.describe School, type: :model do
describe ‘学校登録’ do
before do
@school = FactoryBot.build(:school)
end
it ‘同じ学校名は登録できないこと’ do
@school.save #←ポイント①
another_school = FactoryBot.build(:school) #←ポイント②
another_school.name = @school.name #←ポイント③
another_school.valid?
expect(another_school.errors.full_messages).to

元記事を表示

Railsをインストールしたはずがrails -vでエラーが発生する時の対処方(初心者向け)

railsのインストールをブログの記事通り進めてきたが

“`sql
$ rails -v
“`
で以下のようなエラーが発生しました。

“`sql
$ rails -v

Rails is not currently installed on this system. To get the latest version, simply type:

$ sudo gem install rails

You can then rerun your “rails” command.
“`

いろいろな記事を読んで解決しようとしましたがうまくいかず、ターミナルを再起動して再度バージョン確認。

“`sql
rails -v
Rails 6.1.0
“`
オーマイガー
インストールされてやがる!!

初心者でrails -vでエラーになった時はターミナルを再起動せよ!!

元記事を表示

EC2 ✕ Docker・docker-composeによる手動デプロイ・アセットコンパイル

# はじめに

前回の記事
>[EC2でのDocker環境の構築(ArgumentError: Missing ‘secret_key_base’、Mysql2::Error::ConnectionError: Access denied for user ‘root’@’172.18.0.4’ (using password: NO)の解決法)](https://qiita.com/sc30gsw/items/434a51226020576cfecb)

でEC2でのDockerの導入について解説しました。

今回はその続きで、EC2でDockerとdocker-composeを用いた**EC2上でのDockerコンテナ起動とRailsアプリを手動デプロイしサーバーを起動するための方法やエラー解決**などを解説していきます。
# 前提

① 開発環境でDockerおよびdocker-composeを導入していること

② EC2の初期設定(環境設定)でDockerとdocker-composeをインストールしていること
# 開発環境

Ruby 2.6.5
Bundler 2.1.4

元記事を表示

[Rails6]Webpacker::Manifest::MissingEntryErrorの対処法4選

# Webpackerのエラーで確認すること

### 1) Webpackerがインストールされているか

確認方法としては`bundler install`が通るかで確認できます。
インストールされていなければ以下が表示されます。

“`ruby:ターミナル(EC2)
# ローカルではbundle installコマンド
[ec2-user@ip-XXX-XX-XX-XXX リポジトリ名]$ bundler install


run bundle exec spring binstub –all
* bin/rake: Spring inserted
* bin/rails: Spring inserted
rails :install

Yarn not installed.
Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/

https://yarnpkg.com/ja/docs/install
“`

**解決方

元記事を表示

個人アプリ開発日記 #2

#目次
[1.はじめに](#1-はじめに)
[2.制作背景](#2-制作背景)
[3.おわりに](#3-おわりに)

#1. はじめに
昨日の記事[(個人アプリ開発日記 #1)](https://qiita.com/shimataro1988/items/fd9650906d530016e574)では、転職活動を間近に控える私が
ポートフォリオとして制作中のアプリについて概要を説明しました。
そして、今回は「なぜこのアプリを作るに至ったか」について深掘りしていきます!

自分の振り返りと理解を深めることで、今後のアプリ制作に活かしたいと考えています。
内容には個人的なことなので再現性は低いかもしれないのですが、制作背景から
アプリ開発に至るまでのプロセスで、悩んでいる人や困っている人の参考になれば嬉しいです。

#2. 制作背景
ポートフォリオとしてアプリを作る際に、どのようなものを作れば良いか最初は全く分かりませんでした。
よく、スクールの卒業課題の「フリマアプリのクローン」に手を加えた物をポートフォリオとして
提出する人が多いことは、Twitter等の媒体を通じて知っていました。

元記事を表示

【Ruby On Rails】親テーブルのデータを子テーブルから検索・保存する方法

#本記事について
備忘録です。

子コントローラーにてcreateアクション、include?メソッドを用いて、親テーブルのデータを検索し、その検索したデータと同じ内容が含まれている場合に、子テーブルのカラムへ保存できるようにします。

#include?メソッドとは

ある数値や文字列などのデータが含まれているかどうかを確認するために、include?メソッドを使います。

例えば、

“`ruby:サンプルコード
array = [aiueo, yayuyo]

puts array.include?(aiueo)
puts array.include?(yayuyo)
puts array.include?(wawon)
“`

“`terminal:実行結果
true
true
false
“`

と、なります。

#前提


親:parentsテーブル

|id |word |
|—|—|
|1 |あいうえお |

子:kidsテーブル(まだデータは登録されていません)

|id |text |word_id |

元記事を表示

DockerでRails,Postgres,ElasticSearchの開発環境を構築する方法

Dockerを使ってRails6の開発環境を構築します。
`rails new` から `rails db:create`まで、すべてをDockerの上で行うことを目標とします。
実際のコードは[こちら](https://github.com/yuki0920-playground/docker_rails_elasticsearch_sample/commits/master)にアップロードしています。

## 環境

“`bash
$ sw_vers
ProductName: macOS
ProductVersion: 11.1
BuildVersion: 20C69
$ docker -v
Docker version 20.10.0, build 7287ab3
$ docker-compose -v
docker-compose version 1.27.4, build 40524192
“`

## 1.DockerによるRailsアプリケーション環境を作成する
まず、プロジェクトのルート以下に下記のようにファイルを作成します。

“`bash
$ tree
.

元記事を表示

【Rails tutorial】「第11章 アカウントの有効化」の備忘録

#はじめに
Rails tutorialの`第11章 アカウントの有効化`ついて備忘録として、自分なりに整理しておく。
(※テストに関する記載はなし)

#準備
###アカウント有効化用のコントローラを作成する。

“`terminal
$ rails generate controller AccountActivations
“`

###routeを編集する。
後々、editの名前付きルートが必要になるので名前付きルートを使用できるようにする為に、ルートファイルにresourcesを追加する。

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


resources :account_activations, only:[:edit]
end
“`

###カラムを3つ加する。
アカウント有効化の処理に必要な3つのカラムをテーブルに追加する。
まずはマイグレーションファイルを作成する。

“`terminal
$ rails g migration add_activation_to_users

元記事を表示

コメント機能実装時のMissingTemplateエラーの解決方法

ポートフォリオとして投稿サイトを作成しています。コメント機能実装時に、部分テンプレートで呼び出した部分でMissingTemplateのエラーが生じたので、その解決策について書いていこうと思います。

# 実装したい機能
記事詳細ページでコメント投稿機能実装

# エラー詳細
コメントフォーム内にコメントを記述して送信ボタンを押した場合は正しく保存されるが、コメントフォームが空欄のまま送信ボタンを押すと、下記のように部分テンプレート部分でMissingTemplateエラーが発生。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829213/c457441a-8a63-1e64-4278-c5b1c1cb00e8.png)

# コード
エラー発生時のビュー・コントローラーに関するコードは、以下の通り。

## ビュー
部分テンプレート切り出した_article.html.erbを呼び出すことで記事の内容を表示し、その下にコメントフォームを実装。

“`HTML:show.html.e

元記事を表示

rails で〇〇 2.rbのファイルができた時に行った対処法

# railsで〇〇 2.rbのファイルができた時に行った対処法

## 環境

“`
Mac Book Pro 2019 のローカル環境
VS code で編集
“`

## 原因

よくわかっていません。同じ現象に合われた方で原因がわかった方は教えていただけると幸いです。

## 対処法

### 現在のgitの状態を確認

“`
$ git status
“`

で、現在のgitの状態を確認します。

### 自分の編集したファイルをgit add

“`
git add 自分で編集したファイル
“`
で〇〇 2.rbの以外のファイルをaddします。

この時に間違えて〇〇 2.rb等のファイルをaddしないように気をつけてください。

### 削除するファイルの確認

“`
git clean -n -d
“`

で、削除するファイルを確認します。

### ファイルを削除

“`
git clean -f -d
“`

で、ファイルを削除します。

### 削除後のgitの状態を確認

“`
git status
“`

で、いらないファイルが

元記事を表示

OTHERカテゴリの最新記事