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

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

【Rails+EC2+puma】rails s -e productionは問題ないのに、rails s -dで起動するとエラーになる

## 環境
Rails: 6.0.2.2
ruby: 2.7.1
Puma: 4.3.5

EC2+Nginx+puma
pumaのソケット通信を利用

## 発生した問題
作成したアプリケーションをEC2へデプロイしました。
本番環境での起動も問題なかったのでデーモンで起動しようとしたのですが、pumaがうまく起動していないようで、ブラウザからアクセスすると「We’re sorry, but something went wrong.」の文字が…

“`bash
$ rails s -d -e production
=> Booting Puma
=> Rails 6.0.2.2 application starting in production
=> Run `rails server –help` for more startup options
“`

うまく行っていれば下記のように表示されるはずです。

“`bash
=> Booting Puma
=> Rails 6.0.2.2 application starting in production
=> R

元記事を表示

Rails Simple Calendarで記事投稿後、カレンダーに反映させたい。

Simple Calendarにて
記事投稿→カレンダー投稿画面(create)→カレンダーに反映という事を行いたいのですが、
現状、記事投稿は出来ていて、そこから記事投稿のタイトルデータを抜き出してカレンダー投稿画面にタイトルのみデータを表示取得させたいです。
540d264cf48615032c7353a06dffbdf6.png
※こちらの画面ではTitleが入力フォームになっていますがこのTitleを、記事のTitleを取得したいです。

試した事ですが
5336e6a17d83d2db786feb63021d995c.pngRailsTutorialチートシート

「RailsTutorialをやったはいいが、2週間もしたら何をしたか思い出せなくなる」

「結局自分には何ができるのか」「俺は…弱い…!」

そんな人のためのチートシートです。

とりあえず保存をして、こっそりコピペして、色々付け加えながら自分だけのチートシートを作りましょう。

# 機能要件

[Rails]検索機能
https://qiita.com/shin1rok/items/779e581e9d12a92310c3
[Rails]文章投稿機能
https://railstutorial.jp/chapters/user_microposts?version=5.1#cha-user_microposts
[Rails]画像を投稿したい(外部ライブラリ – CarrierWave)
https://railstutorial.jp/chapters/user_microposts?version=5.1#sec-basic_image_upload
[Rails]投稿した画像が大きくなっちゃう
https://railstutorial.jp/chapters/use

元記事を表示

Ruby入門

#irb
対話的な実行環境
#####オブジェクト型を確認する
 ”文字列”(レシーバ).class → String
 1.class → Integer
#####object_idを確認する
 ”文字列”.object_id → 実行されるたび別のオブジェクトが作られる
 1.object_id → 同じ数値オブジェクトが提供される
#####オブジェクトを結合する
 message1 = “メッセージ1”
 message2 = “メッセージ2”
 message1.concat(message2) ※括弧の省略可
 message1 = メッセージ1メッセージ2

#文字列オブジェクト
人間が読むことのできる文字や記号で構成された、単語や文章のようなデータ
ダブルクォーテーションで内容を囲む(シングルクォーテーションでも可)

#数値オブジェクト
数を表すオブジェクト

#クラスとインスタンス
オブジェクトがどんな機能持てるかは、そのオブジェクトがどんなクラスのオブジェクト出るかで変わってくる。Rubyが標準的に用意しているクラス(組み込みライブラリ・標準添付ライブラリ)

元記事を表示

Google Chartがモーダルで上手く表示できない時

簡単にグラフが作れて人気なGoogle Chart。その中の「GeoChart」は都道府県別の日本地図を作成できます。以下のように都道府県別で色分でき、カーソルを当てるとパラメータを表示してくれます。
map.png

#やりたいこと

今回は既にあるオリジナルサービス内に、ユーザー詳細ページにあるリンクをクリックするとモーダルでユーザーのデータが反映されたMAPを表示する機能を実装します。

ということでファイルを作成。
(データを入れる処理は人それぞれなので割愛)

“`ruby:users/_map.html.erb

元記事を表示

[Rails][IRB][Pry]SourceAnnotationExtractor is deprecated 解決法

# 起こったこと

`Rails6` で `binding.pry` など`IRB` で `Tab` 補完しようとすると

以下のようなエラーが出る。
(Warining だけど見づらい。)

“`

[WARN ] DEPRECATION WARNING: SourceAnnotationExtractor is deprecated!
Use Rails::SourceAnnotationExtractor instead.
(called from new_card at /home/user/dev/rails/test-proj/app/controllers/app_controller.rb:36)

“`

# 解決法

とりあえず
以下のパッチを `config/initializers` に置く。

“` config/initializers/active_support_backports.rb
# Fix IRB deprecation warning on tab-completion.
#
# Backports the fix for

元記事を表示

Herokuへのデプロイ後、HTTPエラー500が出た

Ruby on Railsで簡単な掲示板アプリを作成し、初めてherokuのデプロイに成功した。

ただ、herokuでsqliteが未対応なことを知らなかったり、フロント周りをslimで初実装した為に、デプロイ前後で少々エラーに苦しんだので、備忘録として解決方法を残す。

#sqliteでherokuデプロイ失敗した時の対処法

恐らくrailsでwebアプリを作成した際、デフォルトではsqliteがDBとして設定されていると思う。
そのままデプロイしようとすると失敗するので、
※[エラー参考記事1](bit.ly/2BycxYo)、[エラー参考記事2](bit.ly/3fYtDO8)、 [herokuデプロイの手順](https://bit.ly/2EkyTh5)

以下を削除

“`Gemfile.
gem ‘sqlite3’
“`

以下を追記

“`Gemfile.
group :development, :test do
gem ‘sqlite3’
end

group :production do
gem ‘rails_12factor’ #heroku

元記事を表示

都道府県 + 市町村をチェックボックスで複数選択。登録する方法。

##やりたいこと
チーム開発で、一人のマッサージ師に対して複数の出張範囲を登録出来る機能を実装した。モデルの関係性など勉強になったのでメモ。完全自分用です。

###モデルの関係性
マッサージ師

“`
class Masseur < ApplicationRecord has_many :business_trip_ranges, dependent: :delete_all has_many :cities, through: :business_trip_ranges accepts_nested_attributes_for :business_trip_ranges, reject_if: :reject_business_trip_range, allow_destroy: true ``` 出張範囲 ``` class BusinessTripRange < ApplicationRecord belongs_to :masseur belongs_to :city end ``` 市町村 ``` class City < Applicatio

元記事を表示

Railsアプリを速度改善する①

#EC2でデプロイ後にレスポンス速度を確かめる

herokuでのデプロイは、起動までのレスポンスが遅くユーザーがその間に離脱してしまうのを恐れたので、AWS(EC2)にデプロイしました。

といいつつも、アプリの起動が遅く感じられたのでトップページが表示されるまでのレスポンス速度を測ってみました。

**[PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/?hl=JA)で測ってみた結果**

####モバイル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614274/7e854dfd-9d45-5410-208c-233e6c78b395.png)
####パソコン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614274/19e15525-dd86-2045-1b3f-f8f68

元記事を表示

Ruby on Rails チュートリアル(第4版) 第13章

##13.1.1 演習
1.RailsコンソールでMicropost.newを実行し、インスタンスを変数micropostに代入してください。その後、user_idに最初のユーザーのidを、contentに “Lorem ipsum” をそれぞれ代入してみてください。この時点では、 micropostオブジェクトのマジックカラム (created_atとupdated_at) には何が入っているでしょうか?

“`
>> micropost = Micropost.new
=> #
>> micropost.user_id = 1
=> 1
>> micropost.content = “Lorem ipsum”
=> “Lorem ipsum”
>> micropost
=> #

元記事を表示

devise 導入 メモ

#devise導入メモ
deviseの導入時の流れを簡単にメモ:man_tone2:

##流れ

1. Gemのインストール
2. フラッシュメッセージの追加(飛ばしてもOK)
3. deviseのViewファイルのインストール
4. Userモデルの作成
5. Usersテーブルの作成
6. ヘッダーの非表示 (飛ばしてもOK)

参考 [devise公式GitHub](https://github.com/heartcombo/devise)

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

Gemfileにdeviseのgemを追加

“`
gem ‘devise’
“`

“`
$ bundle install
“`

deviseのインストール

“`
$ rails generate devise:install
“`

####2. フラッシュメッセージの追加(飛ばしてもOK)

“`
<% if flash[:notice] %>

<%= flash[:notice] %>
<

元記事を表示

Active Admin 管理者画面からユーザー作成できない

## 経緯
“`
rails g active_admin:resource user
“`
を実行し、

“`
class DeviseCreateUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" t.string :reset_password_token t.datetime :reset_password_sent_at t.datetime :remember_created_at t.timestamps null: false end add_index :users, :email, unique: tr

元記事を表示

WSL上で実行したRSpecにエラー(NotImplementedError:fork() function is unimplemented on this machine)が出る問題の解決法

ポートフォリオ作成のために勉強目的で作成していたプログラムでRSpecがエラーで動作しなかったので解決方法を記載します。

結論から先に書くとWSL1にはUbuntu 18.04をインストールしましょうということです。

#環境
– ホストOS:Windows 10 64bit
– 仮想環境:WSL1
– ゲストOS:Ubuntu 20.04 LTS
– Ruby:Ruby2.6.6
– Rails:Rails5.2.4.3

**使用しているGem**

– better_errors
– byebug
– capybara
– factory_bot_rails
– pry-byebug
– rspec-rails
– spring-commands-rspec
– sqlite3
– webdrivers

全部だと多いのでテストグループに記載しているgemのみです

#エラー内容と解決方法
まずはWSL1上で開発していたプログラムをRSpecを使ってテストを開始しました。

しかし**NotImplementedError:fork() function is unimple

元記事を表示

チャットアプリ制作

個人の学習の知見を広げるため、チャットアプリを制作しました。

## アプリの概要

・ユーザーの登録ができる
・ユーザーがグループを作成できる
・グループを指定して、メッセージを送ることができる

## 使用技術

・Ruby
・Ruby on Rails
・JavaScript
・MySQL
・AWS
・nginx
・unicorn
・Capistrano

## 本番環境のリンク

[18.178.232.222
](http://…)

## githubのリンク

https://github.com/mitsugu3/ChatSpace

## 感想

アプリ制作の流れを掴むことができた。
AWSで、本番環境にあげるのが
シークレットキーなどの知識が必要だったので難しく感じたが、
検索記事を参考に自走することができた。

元記事を表示

slickでスライドショーをお洒落に実装したかった。

##スライドショーを実装するためにslickを導入
詰まりまくったことを解決したので投稿

##環境
rails : 6.0.3.2
ruby : 2.6.6
Docker, docker-compose

##参考URL
http://kenwheeler.github.io/slick/

##先にできていること
jQueryの導入

##slick導入編

###slick本体をインストール

“`ruby:qiita.rb
$ docker-compose run –rm web npm i slick-carousel

なんやかんや

40 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
“`

##applocation.html.erbのhead要素に追記

“`ruby:qiita.rb Active Admin リソースの削除

## 結論

“`
$ rails destroy active_admin:resource モデル名
“`
これで削除できます。

ググってもなかなか出てこなかったので、書きました。

元記事を表示

RailsでGoogleMapsAPIを表示・ピン表示まで

#はじめに
過去に自分のポートフォリオでGoogleMapsAPIを利用していましたが、流れを忘れていたのでリマインドです。

#環境

rails 5.2.3
ruby 2.6.3

#今回すること
・現在地情報から経度緯度を取得しマーカーを表示する。
・取得した一覧情報をjson形式に変え、マーカーとして地図上に配置。
・地図の表示

###表示させるコントローラー作成、今回アクション名はsearchで。

“`ruby:spaces_controller.rb
def search
@spaces = Space.all
end
“`

###モデルの作成、住所を入力後緯度経度を自動取得させる。

“`ruby:space.rb
class Space < ApplicationRecord geocoded_by :address after_validation :geocode, if: :address_changed? end ``` ```ruby:schema.rb create_table "spaces", force: :cas

元記事を表示

Ruby on Rails チュートリアル(第4版) 第12章

##12.1.1 演習
1.この時点で、テストスイートが greenになっていることを確認してみましょう。
 省略

2.表 12.1の名前付きルートでは、_pathではなく_urlを使うように記してあります。なぜでしょうか? 考えてみましょう。ヒント: アカウント有効化で行った演習 (11.1.1.1) と同じ理由です。
 メールでURLを送付するから。

##12.1.2 演習
1.リスト 12.4のform_forメソッドでは、なぜ@password_resetではなく:password_resetを使っているのでしょうか? 考えてみてください。
 よく分からなかったので、[Railsのform_forにシンボルを与えるときはどのようなときか?](https://ja.stackoverflow.com/questions/18099/rails%E3%81%AEform-for%E3%81%AB%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E3%82%92%E4%B8%8E%E3%81%88%E3%82%8B%E3%81%A8%E3%81%8D%E3

元記事を表示

deviseのビューファイルに自動でbootstrapのスタイルを適用する

## 結論
“`
$ rails g devise:views:bootstrap_templates -f
“`
これで全てのdeviseのビューファイルに、自動でbootstrapのスタイルが適用される。
アカウント.png
ログイン.png
パスワード.pngsessionを使い遷移元の1つ前のページに戻る方法

## こんな人におすすめ
こういうことがしたい人。
戻るボタンを押してブラウザの2つ前のページに戻りたい。
![200724_session_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644314/7ad69f92-f05c-108d-90a3-8ae5a6b67634.png)

## 環境

“`
ruby 2.5.1
Rails 5.0.7.2
“`
## さっそく結論
`session`を使いましょう。

## 今回の経緯

– 購買機能のあるWEBサイトを作成していた(payjpを利用)
– 商品の詳細を表示してそのまま購入できる機能を持たせた
– ただし**クレジットカードを登録していない場合**は以下のページ遷移としたい

![200724_session_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/644314/7ad69f92-f05c-108d-90a3-8ae5a6b67634

元記事を表示

OTHERカテゴリの最新記事