- 1. 【Rails】Deviseのサインアップページが編集できない、反映されない
- 2. Rails+ReactのDocker環境(TechpitさんのUberEats風SPAアプリ)
- 3. Rails + ransackでセレクトボックスからscopeを選択して検索条件にする方法
- 4. heroku本番環境でerror Command “webpack” not found.やActionView::Template::Error(Webpacker can’t find)を解決
- 5. 【Rails】Aws::S3::Errors::RequestTimeTooSkewed への対処
- 6. 脳筋が岡山県内のジムを検索するサービスを開発しました(ポートフォリオ、Rails+AWS+Docker)
- 7. Rails7でdevise_token_authをインストールする
- 8. Rspec導入で躓いた話
- 9. Railsのバージョンを変える方法
- 10. ?【初学者用】deviseを使ってユーザー管理機能を実装しよう!【Ruby on Rails】
- 11. 【PostgreSQL】A server is already running の対応
- 12. Gemネイティブ拡張機能のビルドに失敗
- 13. 説明変数(要約変数)のメリット・デメリットと、発展例
- 14. cloud9でrailsの環境構築をする
- 15. 【備忘録・Rails】deviseを用いた管理者機能の実装
- 16. Railsにメールが2通来るお問合せ機能を作ってみた
- 17. Heroku でのDBをリセットしシードデーターを投入する手順
- 18. RailsとVueの組み合わせで’Hello Vue’がうまく行かなかったときの備忘メモ
- 19. AWS/Rails デプロイ後の『502』エラー奮闘記
- 20. docker-composeでrails7の開発環境を作る
【Rails】Deviseのサインアップページが編集できない、反映されない
# 起きている問題
“`app/views/users/registrations/new.html.erb“`などを編集してるにも関わらず、変更が反映されない。
エラーも表示されない# 解決方法
`config/initializers/devise.rb`の
“`
# config.scoped_views = false
“`
を
“`
config.scoped_views = true
“`
に変更、#も取る見つからない場合はctrl(もしくはcommand) + Fでファイル検索できる。
変更後サーバーを再起動させる
以上
Rails+ReactのDocker環境(TechpitさんのUberEats風SPAアプリ)
# 概要
Railsチュートリアルを完走し終えまして、
次何しようかなと考えていたところに「完走者向け発展教材(Techpit)」を見つけたので、教材に挑戦しています。「RailsとReactでUberEats風SPAアプリケーションをつくってみよう!」
https://www.techpit.jp/courses/138ただ、PC上に展開したくなくてDocker上で動作するようにしました。
# ソースコード
Dockerfile
“`Dockerfile
FROM ruby:2.7.2
RUN apt-get update -qq && apt-get install -y build-essential nodejs postgresql-client libpq-devRUN apt-get update && apt-get install -y curl apt-transport-https wget && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add – &&
Rails + ransackでセレクトボックスからscopeを選択して検索条件にする方法
## はじめに
ransackでよくある`name_cont`や`articles_title_start`のような条件では表現できず、scopeを使わないと検索できないケースで、なおかつセレクトボックスから任意の検索条件を選択できるようにする検索フォームを作ってみました。
## アプリの仕様
テスト管理アプリケーションです。生徒を表すStudentモデルと、試験の結果を格納するExamモデルがあります。
“`ruby
class Student < ApplicationRecord has_many :exams, dependent: :destroy end ``` ```ruby class Exam < ApplicationRecord belongs_to :student end ``` DBには以下のようにデータが格納されているとします。 **studentsテーブル** | id | name | |----|-------| | 1 | Alice | | 2 | Bob | | 3 | Carol | **exam
heroku本番環境でerror Command “webpack” not found.やActionView::Template::Error(Webpacker can’t find)を解決
※これはメモ的なものなのでクオリティは担保できませんのであらかじめご理解いただきたく存じます。
https://teratail.com/questions/eelxqk0ads5nv3
テラテイルのほうでも質問をしていて、自力で解決できたのでどうやって解決できたかを自分なりにまとめてみました。
dockerのnodeのバージョンを確認したほうが良い。とのアドバイスは@NaokiM03さんにしていただき、バグの発生環境の切り分けに大いに役立たせていただきました。本当にありがとうございました。# 前提
docker開発環境でRailsとVueを用いた簡易的なアプリを
herokuにコンテナデプロイしています。を参考にコンテナデプロイをしてみました。
https://devcenter.heroku.com/ja/articles/build-docker-images-heroku-yml
自分の場合はさらに、
アプリケーションのルートディレクトリに heroku.yml ファイル
【Rails】Aws::S3::Errors::RequestTimeTooSkewed への対処
## S3へのリクエストタイムが違いシードが流せない
Railsの本番環境でシードデータを入れる時に、
S3とのtimeがかけ離れているというニュアンスのメッセージが出現した。“`
[sirius@ip-10-0-11-191 diary_app]$ rails db:seed RAILS_ENV=production
Start inserting first seed “user” …
rails aborted!
Aws::S3::Errors::RequestTimeTooSkewed: The difference between the request time and the current time is too large.
“`
EC2インスタンス上では`JST`(日本標準時)を指定しているので、`date`でそれ確かめてみると、たしかに、実際の時間が10:00なのにインスタンス40分近くずれていることがわかった。これがシードデータを流すときに、S3バケットにアクセスした際に時間差がおおきすぎるのでエラーが生じたのだろう。
“`
[sirius@
脳筋が岡山県内のジムを検索するサービスを開発しました(ポートフォリオ、Rails+AWS+Docker)
## はじめに
・この記事はポートフォリオとして開発した、岡山県内のジム検索サービス「Gymseek」の紹介記事です。
・現在はAWSの無料会員期間終了のため、サービスを閲覧することはできません。
https://github.com/omeinu/gymseek
## 目次
– 自己紹介
– 利用方法
– 使用技術
– AWS構成図
– 機能一覧
– ER図## 自己紹介
初めまして!
私は、元消防士の駆け出しエンジニアです。
29歳で岡山→東京へ上京しました。エンジニアとして働き始めて1ヶ月が経ちましたので、ここらで転職用に開発したポートフォリオを記録に残しておこうと思い、初めて記事を書かせていただきました。
## 利用方法
トップページ
Rails7でdevise_token_authをインストールする
## 遭遇したエラー
“`
$ bundleFetchings gem metadata from https://rubygems.org/………..
Resolving dependencies….
Bundler could not finde compatible versions from gem “rails”:
In Gemfile:
rails (~> 7.0.1)devise_token_auth was resolved to 0.1.21.alpha2, which depends on
rails (~> 4.1.4)
“`rubygemsに上がっているdevise_token_authがRails7をサポートしていないためインストールができない
## 解消法Gemfileに以下のように`devise_token_auth`を追加する
“`yaml
gem ‘devise_token_auth’, ‘>= 1.2.0’, git: “https://github.com/ly
Rspec導入で躓いた話
# 概要
既存のRailsプロジェクトにRspecを導入したらつまづいたので解決方法を共有します
1人でも多くの人の役にたてればと思います。# はじめに
### 使用する環境
– MacOS(M1)
– Rails 6.1.5
– Ruby 3.1.0
– yarn 1.22.17
– Homebrew 3.4.8### はじめにアプリケーションを作成するディレクトリを作成
“`shell
$ mkdir rails_Rspec_app
$ cd rails_Rspec_app
“`### railsプロジェクトの作成
“`shell
$ rails new rails_Rspec_app
“`### プロジェクトへ移動
“`shell
$ cd rails_Rspec_app
“`
### サーバー起動“`shell
$ rails s
“`
http://localhost:3000 にアクセスしてこの画面が出たら成功ですがダウンロードされることがしばしば起こっています。。。(多くは、初心者のバージョン指定忘れですが、稀に起こっています?)
今回は、その解決策を書いておきます!!?# 解決策
## 手順
1. railsをアンインストールする
1. railtiesをアンインストールする
1. 再度railsのバージョンを指定してインストールする## 実際の手順
### 1. railsのアンインストール
以下のコマンドを実行し、アンインストールします。
“`terminal:ターミナル
gem uninstall rails
“`
### 2. railtiesのアンインストール
次に、以下のコマンドを実行します。
“`term
?【初学者用】deviseを使ってユーザー管理機能を実装しよう!【Ruby on Rails】
## はじめに
プログラミング初学者の私がアウトプットとこれから学習される皆様の参考になればと思い投稿しています。
まだ、マークダウン記法も不慣れな初学者ですので、間違い等があれば指摘いただけると幸いです。## この記事を見てできるようになること
Ruby on Railsのgemであるdeviseを使用して、ユーザー管理機能を実装できるようになります!## deviseとは?
ユーザー管理機能(例:ログイン、ログアウト、新規登録)を簡単に実装するためのGemです。## deviseの導入
まずGemfileを編集します。追記する場所はGemfileの最後の行で構いません。
“`:Gemfile
gem ‘devise’
“`
:::note warn
**⚠注意**
**device**としないこと!
私はこれでかなりの時間を消費しました\:cry:
:::使用するアプリディレクトリを開き以下のコマンドでgemをインストールします。
“`:ターミナル
bundle install
“`
次にローカルサーバーを起動or再起動させます。
サーバーを起動していなか
【PostgreSQL】A server is already running の対応
## エラー内容
Railsアプリを実行している中でpostgresqlへの書き込みが永遠に終わらない状況に直面した。
Contorl + C でシャットダウンしようとしても効かず、仕方なくターミナルを強制終了。その後にアプリを立ち上げようとすると以下のメッセージが表示された。
“`
ynamiki@YoheinoMacBook-Pro sora % rails s
=> Booting Puma
=> Rails x.x.x.x application starting in development
=> Run `rails server –help` for more startup options
A server is already running. Check /Users/ynamiki/Desktop/sora/tmp/pids/server.pid.
Exiting
“`
※soraはprojectフォルダ起動しようとしているPostgreSQLが既に走っていると認識されており、それとぶつかって起動できないらしい。QiitaにはPumaサーバーが
Gemネイティブ拡張機能のビルドに失敗
## スペック
– macOS Monterey 12.3.1
– Rails 7.0.2.3
– Bundler version 2.3.7## 実行したコマンド
`bundle install` のコマンドを実行したら下記のエラー内容が返ってきました。## エラー内容
“`
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.current directory:
~~~ 省略 ~~~
rake aborted!
Could not find MIME type database in the following locations: [“/usr/local/share/mime/packages/freedesktop.org.xml”,
“/opt/homebrew/share/mime/packages/freedesktop.org.xml”, “/opt/local/share/mime/packages/freedesktop.org.xml”,
“/usr/s
説明変数(要約変数)のメリット・デメリットと、発展例
## はじめに
この投稿では説明変数と要約変数は同じものとして扱った上で、
**メリット・デメリットの解説** と、**説明変数を更に発展させた例**を解説していきます。## **説明変数・要約変数とは何か?**
長くて複雑な処理や、意図が分からない処理を理解しやすくするために
**あえて定義する変数**のことです。## 説明変数の導入例
* サンプルコードは、「最近公開された記事」を取得する処理を題材にしています。
「最近」の定義は、「3日以内に公開されたかどうか」で判定しています。
* サンプルコードにはRuby及びRuby on Rails, RSpecを使った書き方を採用しています。**Before**
“`ruby
def hoge
Article.where(publication_start_at: 3.days.ago..Time.current).each do |article|
# 何かの処理を行う
end
end
“`**After**
“`ruby
def hoge
# (訳: 最近公開された記事)
rec
cloud9でrailsの環境構築をする
cloud9でrailsの環境開発を行う際にすることをまとめた。まずはターミナルで
“`
$rails new sample app
“`
と打ち込む。ここのsample appは好きなファイル名でOK!
その後
“`
$cd sample app
“`
で移動したのち
“`
$rails s
“`
でサーバー起動します。無事起動できれば終了です。しかし,以下のようなエラーが出てくるかもしれません。
対処方法としてはGemfileを編集します。
Gemfileに以下を追記します。
“`ruby:Gemfile
gem ‘sqlite3’, ‘~> 1.3.6’
“`
修正前

ここからは、管理者機能を実装していきます。
まずは既存のusersテーブルにデータ型がboolaen型のadminカラムを追加するためにmigrationファイルを作成します。“`zsh:ターミナル
% rails g migration add_admin_to_users admin:boolean
“`※**boolean型**:真理値の「真 = true」と「偽 = false」という2値をとるデータ型
続いて作成したマイグレーションファイルを編集していきます。
以下のように記述します。“`rb:2022XXXXXXXXX
Railsにメールが2通来るお問合せ機能を作ってみた
自分のポートフォリオにお問合せ機能が欲しくなり、実装してみました。
こちらの記事を参考
https://qiita.com/japwork/items/145645e281b81d9bf92c開発環境
ruby ‘2.7.5’
gem ‘rails’, ‘~> 6.1.4’,
OS: macOS Catalinaまず最初にmailerを作成します。
“`
rails g mailer ContactMailer
“`
そして、送信先と件名を指定します。
自分の場合は、メールの送信先と送信元の二箇所にメールを送りたいため、
2つ作っています。
“`
class ContactMailer < ApplicationMailer default from: 'noreply@example.com' default to: 'admin@example.com' layout 'mailer' def send_mail(contact) @contact = contact mail(from: contact.email, to:
Heroku でのDBをリセットしシードデーターを投入する手順
“`
この記事の環境
mac OS
Rails 6.0.3
ruby 3.0.1p64
“`gitの変更内容をherokuにpushsする
“`
git push heroku step5:master
“`新たにカラム追加やデータ内容を変更する為。データーベースリセットをする 。
“`
heroku pg:reset -a myapp
“`マイグレーション実行
“`
heroku run rake db:migrate
“`seedデータ投入
“`
heroku run rails db:seed
“`おまけ
データーベースの詳細が取得できるコマンド
heroku pg -a アプリ名
“`
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 1/20
PG Version: 14.2
Created: 2022-04-11 15:
RailsとVueの組み合わせで’Hello Vue’がうまく行かなかったときの備忘メモ
## 背景
書籍『【Rails x Vue.js】メモアプリを作成しながらモダンな開発を学ぼう!』
を参考にVueを導入しようとするも、Hello Vue!になかなかたどり着けなかったため、備忘メモ## 環境
Rails 6.1.5.1
vue ~~3.2.33~~ → 2.6.14 ※今回のエラーの原因## 起きていた事象
以下記載があるViewページへアクセスしても、何も表示されない自称が発生
`<%= javascript_pack_tag 'hello_vue' %>`コンソールに以下の表示有り。
`”export ‘default’ (imported as ‘Vue’) was not found in ‘vue’ RAILS`## 解決方法
rails new のあとにpackage.jsonを以下の通り編集。“`diff_json:package.json
– “vue”: “^3.2.33”,
– “vue-loader”: “^17.0.0”,
– “vue-template-compiler”: “^2.6.14”
+ “vue”: “^2
AWS/Rails デプロイ後の『502』エラー奮闘記
## 概要
先日、[「AWS – Capistranoを使ってデプロイした際のエラー奮闘記」](https://qiita.com/iloveomelette/items/3c0f2dd3faa2fcefc948)を書きました。
今回は、そのデプロイ後に起きた「**502**」エラーの対処法を述べていきます。**デプロイには成功したのに、アプリが表示されない**、といった方の参考になれば幸いです。
前提として、デプロイにはCapistranoを利用しています。
構成は以下の通りです。– macOS Monterey 12.3.1 (M1)
– Ruby 3.1.1
– Rails 6.1.5
– nginx
– puma
– MariaDB 10.6.7
– EC2(Amazon Linux 2 AMI / t2.micro)
– RDSこんな感じです。
## 「502」エラーとは
そもそも「502」エラーとは何なのでしょうか。
>502エラーとは、Webサーバで起きるエラーの種類の一つで、目的地のWebサーバが機能していないことを、経路途上にある中継サーバ(プロ
docker-composeでrails7の開発環境を作る
現在rails7で使える情報がないので記す。webpackerがなくなったので構築するための
ノウハウも変わっている。## 5つのファイルを準備する
“`ruby:Gemfile
source “https://rubygems.org”
gem “rails”, “~> 7.0.2”, “>= 7.0.2.4”
“`“`
$ touch Gemfile.lock
“`“`Dockerfile:Dockerfile
FROM ruby:3.1.2
RUN apt-get update -qq \
&& apt-get install -y nodejs npm \
&& rm -rf /var/lib/apt/lists/* \
&& npm install –global yarnENV APP_NAME=myapp
ENV TZ=Asia/TokyoWORKDIR /${APP_NAME}
COPY Gemfile /${APP_NAME}/Gemfile
COPY Gemfile.lock /${APP_NAME}/Gemfile