- 1. All users
- 1.3.1. 【Rails×LIFF】 モテたい人向けのマッチングアプリ完全攻略サービス 「マッチングアプリマスター」 を作りました。 (男性向け) 【個人開発】
- 1.3.2. テーブルにないカラムにも値を入れて送信できる件
- 1.3.3. 【RSpecエラー】validate_uniqueness_ofを使うとテストが通らないとき
- 1.3.4. RailsからGoogleスプレッドシート連携させる際に認証でつまづいた点(2021/10時点)
- 1.3.5. git push heroku masterをしたら、Precompiling assets failedが表示された時の対処法
- 1.3.6. 【備忘録】git pushでのerror “src refspec main does not match any”
- 1.3.7. [Rails]暗黙的レンダリングでハマった
- 1.3.8. 【Ruby on Rails】よくあるエラー集
- 1.3.9. 【Rails】コントローラーの処理を共通化したい
- 1.3.10. 駆け出しエンジニアの「今すぐ質問したい!!」を解決するサービスをリリースしました
- 1.3.11. ユーザー管理機能初期手順②!
- 1.3.12. Railsチュートリアル2週目を終えて
- 1.3.13. railsチュートリアル第10章 ユーザー一覧のテスト
- 1.3.14. railsチュートリアル第10章 サンプルのユーザー ページネーション
- 1.3.15. railsチュートリアル第10章 ユーザーの一覧ページ
RailsにRedisを接続するシンプルなやり方
イントロダクション
他の記事が初心者のためにわかりやすくし過ぎていたり、自分が理解した部分だけ書いていて分かりにくかったため記述した。
前提
Redisインストール済みであること(Macならbrewでインストールする)
参照: https://qiita.com/sawa-@github/items/1f303626bdc219ea8fa1
Redis接続方法
Railsの新規プロジェクト作成
↓
Gemfileに「gem ’redis-rails
【Rails】Herokuでのお問い合わせフォームの作成方法
## お問い合わせフォームの実装
利用環境
・ruby 2.7.3
・Rails 6.1.4## 前提
お問い合わせフォームでメールを受信するためのメールアドレスを作成
ここではGmailを登録する前提で進めます。## Gmailアカウントの設定
・2段階認証に設定する
・アプリで利用するためのパスワードを作成
リンク先:https://myaccount.google.com/u/3/security## ActionMailerの設定
本番環境のみでの設定とします。
開発環境でのメール確認に興味がある方はこちらを参考にしてみてください。
https://github.com/fgrehm/letter_opener_web“`terminal:ターミナル
touch config/initializers/mail.rb
“`“`ruby:config/initializers/mail.rb
if Rails.env.production?
# 自身のドメインに置き換えてください
host = “Herokuのサブドメイン.herokuap
railsチュートリアル第10章 管理ユーザー
##ユーザーを削除する
###管理ユーザー
特権を持つ管理ユーザーを識別するために、論理値をとるadmin属性をUserモデルに追加“`
ubuntu:~/environment/sample_app (updating-users) $ rails generate migration add_admin_to_users admin:boolean
Running via Spring preloader in process 3171
invoke active_record
create db/migrate/20211016122254_add_admin_to_users.rb
““####boolean型のadmin属性をUserに追加するマイグレーション
db/migrate/[timestamp]_add_admin_to_users.rb“`rb
class AddAdminToUsers < ActiveRecord::Migration[6.0] def change add_column :use
railsチュートリアル第10章 パーシャルのリファクタリング
###パーシャルのリファクタリング
railsの便利なツールを使ってコードを整理する####indexビューに対する最初のリファクタリング
app/views/users/index.html.erb“`rb
<% provide(:title, 'All users') %>All users
<%= will_paginate %>
<% @users.each do |user| %>
<%= render user %>
<% end %><%= will_paginate %>
“`
####各ユーザーを表示するパーシャル
app/views/users/_user.html.erb“`html
<%= gravatar_for user, size: 50 %>
<%= link_to user.name, user %>“`
####indexページの完全なリファクタリング
app/views/users/index.html.
【Rails×LIFF】 モテたい人向けのマッチングアプリ完全攻略サービス 「マッチングアプリマスター」 を作りました。 (男性向け) 【個人開発】
# サービス概要
![マッチングアプリマスター トップページのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840723/5b55db01-0083-8a4f-1a8a-a2c37478f7c7.png)
対応端末は`iPhone X 以降(スマホ)`を推奨しております。
LIFFアプリ(LINEで動くWebアプリ)なのですが、外部ブラウザ(SafariやChrome)からも開くことが出来ます。
※ 二極化URL:https://dating-apps-master.com/top
Github:https://github.com/ryuki7/dating-apps-masterマッチングアプリを利用しているが女性と上手くいかない、女性の扱い方がわからない、女性との出会いが無くて困っている人に
目的別に適したマッチングアプリを導き出し、そのアプリごとのテクニックやコツを全て指南して、モテ男(マッチングアプリマスター)への道標となる
マッチングアプリ完全攻略サービスです。
テーブルにないカラムにも値を入れて送信できる件
#はじめに
ECサイトを作ってみましたが、以下のイメージのように、お届け先をいくつかの選択肢の中からチェックボックスで選ぶような場面でどうすれば良いのか少し戸惑ったのでまとめておきます。![スクリーンショット 2021-10-28 21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2214201/ef84a14b-06e5-f07f-b945-e66d192478ed.png)
#分からなかったこと
選択肢に値を持たせて、その値によってコントローラーで処理を分けるところまでは想像がついたのですが、今回で言うと、注文テーブルに選択肢(option)カラムはないのでどうすれば良いのか戸惑いました。
とりあえず、`option = 0`なら「ご自身の住所」、`option = 1`なら「登録済みの住所から選択」として以下のように書いてみました。“`ruby:orders/new.html.erb
<%= form_with model: @order, url: or
【RSpecエラー】validate_uniqueness_ofを使うとテストが通らないとき
##環境
Ruby 3.0.2
Rails 6.1.4.1##状況
バリデーションのテスト実行時に下記のエラー
デフォルトでは大文字と小文字を区別している“`model.rb
validates :email, uniqueness: true
“`“`spec.rb
it { is_expected.to validate_uniqueness_of(:email) }
“`“`
Expected Employee to validate that :email is case-sensitively unique,
but this could not be proved.
After taking the given Employee, setting its :email to ‹”dummy
value”›, and saving it as the existing record, then making a new
Employee and setting its :ema
RailsからGoogleスプレッドシート連携させる際に認証でつまづいた点(2021/10時点)
# はじめに
よくあるRailsアプリケーションからGoogleスプレッドシートに連携するのを実装したかったのだが盛大につまづいたのでポイントをメモ
大まかな手順としては以下などを参考にしてください
https://techblog.hacomono.jp/entry/2020/10/21/095900## OAuth 同意画面のアプリケーションの種類で「その他」が選択肢にない
![スクリーンショット 2021-10-28 18.08.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27192/2dfbedf8-6225-5466-ea10-c9451d341a0c.png)「その他」がないなら「ウェブアプリケーション」だろうなぁと思ってたら落とし穴。
承認エラーになります
![スクリーンショット 2021-10-28 18.03.42.png](https://qii
git push heroku masterをしたら、Precompiling assets failedが表示された時の対処法
**結論**
–
webpackerをインストールしていませんでした。**エラー文**
–“`ruby:ターミナル
remote: ! Precompiling assets failed.
#省略
error: failed to push some refs to ~~~
“`**解決までの流れ**
–赤字で書かれていた上の2つの文をそれぞれGoogleで調べましたが、自分にあった対処法が見つけられませんでした。
色々と悩みましたが、ログを上から順に見ていくことにしました。
そうすると、大事なことが書かれている部分を発見しました!“`ruby:ターミナル
#省略
remote: webpack binstubs not found.
remote: Have you run rails webpacker:install ?
“`「webpackないよ? rails webpacker:installした?」 と言われていました。
なので、
“`ruby:ターミナル
rails webpacker:i
【備忘録】git pushでのerror “src refspec main does not match any”
rails学習中につき、よくやってしまうので備忘録として残しておきます。
私と同じような初学者の方の参考になれば幸いです。“`
% git push -u origin main
“`を実行したときにこのようなエラーが出たら
“`
error: src refspec main does not match any
error: failed to push some refs to ‘https://github.com/[githubアカウント名]/[githubリポジトリ名].git’
“`mainをmasterに変えて
“`
% git push -u origin master
“`を実行すればよい!
[Rails]暗黙的レンダリングでハマった
## 概要
開発環境とrspecで、APIレスポンスがなんか全然違う・・・開発環境だとステータスコード204なのに、rspecだと500どういうこと?
ということがあったので調査したことまとめ。## 前提
参考: [ActionController::ImplicitRender](https://api.rubyonrails.org/classes/ActionController/ImplicitRender.html)以下のメソッドを使った明示的なレスポンスを返さないコントローラーのアクションメソッドに対して「暗黙的なレンダリング」がなされる。
– render
– respond_to
– redirect
– head## 暗黙的なレンダリング
### パターン①
https://railsguides.jp/api_app.html
でapiのアプリケーションを構築した場合(= ApplicationControllerをActionController::API から継承している場合)は、204 No Content
が返るらしい
### パターン
【Ruby on Rails】よくあるエラー集
# Routing Error
まずはrailsの中でroutingがどのような役割をもっているか理解する必要があります。
・[Routingとは](https://railsguides.jp/routing.html)
![S__29761599.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2165607/6dbee024-2cdc-4f25-5c83-6078c4cdee79.jpeg)
それではエラーについて解説します。
**Routing Error**
routes.rbで定義したルーティングに存在しないURLにアクセスされた場合に起きるエラーです。**原因**
routes.rbに記述されているものが間違っている。**解決策**
routes.rbに記載されているものが、コントローラー名とアクション名とマッチしているか確認する(スペルミスなどが考えられます)# Syntax Error
**SyntaxError**
コードの中にRubyの文法エラーがあるときに発生します。S
【Rails】コントローラーの処理を共通化したい
##環境
Ruby 3.0.2
Rails 6.1.4.1##共通化する前
UsersControllerとHomeControllerともに同じコードがあるので共通化したい。
“`posts_controller.rb
class PostsController < ApplicationController def index @post = current_user.post end end ``` ```home_controller.rb class HomeController < ApplicationController def index @post = current_user.post end end ``` ##共通化した後 共通化したいコードをconcerns下にメソッドとして定義する。 ```concerns/common_action.rb module CommonAction extend ActiveSupport::Concern def set_posts @posts = c
駆け出しエンジニアの「今すぐ質問したい!!」を解決するサービスをリリースしました
## はじめに
駆け出しエンジニアのみなさん、分からないときにすぐ聞ける環境がありますか?プログラミング学習において大切なことの一つに、「学習を継続していくこと」があると思います。
しかし、実際にはエラーで立ち止まる日々で時間だけが過ぎていくことも。・質問したいことはあるけどどう質問すれば良いかわからない
・わからないことがわからない..
・テキストで質問してもすぐに回答がこないし..
・今すぐ単発で相談したいけど、そんな環境がないそんな時に**「Tech Spot」**ならzoomを使用して自分が学びたい分野のメンターに質問ができます。
[https://techspot.jp/](https://techspot.jp/)
[](https://techspot.jp)## アプリの概要
プログラミングに関する質問・回答サービス
ユーザー管理機能初期手順②!
#①.deviseのビュー作成!
前回の続きです!
deviseを使用してログイン機能を実装すると、自動的にログイン画面とサインアップ画面が生成されます!
deviseでログイン機能を実装すると、ログイン/サインアップ画面が自動的に生成されますがビューファイルとしては生成されません!
これは、deviseのGem内に存在するビューファイルを読み込んでいるためです!
deviseのビューファイルに変更を加えるためには、deviseのコマンドを利用して、ビューファイルを生成する必要があります!
#②.rails g devise:viewsコマンド
deviseに用意されたビューファイルをコピーし、app/viewsの配下に配置してくれるコマンドです!
HTMLを修正できるため、カスタマイズ可能になります!
deviseのコマンドで、devise用のビューファイルを生成します!
下記がコマンドです!
“`php
ターミナル
% rails g devise:views
“`上記の作業でdevise用のビューファイルを生成することができました!
#③.ストロン
Railsチュートリアル2週目を終えて
#概要
Railsチュートリアル2週目を終えたので、感想を書こうと思います。##かかった期間
10/10 ~ 10/27 (24~26を除く、約2週間)
合計:約63時間1週目では約48時間かかったので、2週合計で110時間ほど費やしました。
##開発環境
1週目からクラウドIDEではなくローカル環境で開発に挑戦しました。– Macbook Pro(13-inch, M1, 2020)
– Mac OS Big Sur 11.6
– VSCode (Visual Studio Code – Insiders 1.62.0)
– Ruby 3.0.2p107
– Rails 6.1.4.1##1週目と2週目の間にやったこと
1週目を終えた時点で「Rubyのコードが読めない」「なにが書きたいのかわからない」と気づきました。恥ずかしながら。Rubyの基礎力がかなり不足していたのです…。Rubyの力を養うために、「たのしいRuby」で文法をメインに勉強しました。# 2週目で心がけたこと
1週目では上記の通りコードを読めないことに加え、**コードに対するコメント**を全然
railsチュートリアル第10章 ユーザー一覧のテスト
###ユーザー一覧のテスト
今回のテストでは、ログイン、indexページにアクセス、最初のページにユーザーがいることを確認、
ページネーションのリンクがあることを確認
テスト用のデータベースに31人以上のユーザーがいる必要
####fixtureにさらに30人のユーザーを追加する
test/fixtures/users.yml“`yml
michael:
name: Michael Example
email: michael@example.com
password_digest: <%= User.digest('password') %>archer:
name: Sterling Archer
email: duchess@example.gov
password_digest: <%= User.digest('password') %>lana:
name: Lana Kane
email: hands@example.gov
password_digest: <%= User.digest('pa
railsチュートリアル第10章 サンプルのユーザー ページネーション
###サンプルのユーザー
ユーザーを一気に作成fakerは実際にいそうなユーザー名を作成するgemです
####GemfileにFaker gemを追加する
Gemfile“`
source ‘https://rubygems.org’gem ‘rails’, ‘6.0.3’
gem ‘bcrypt’, ‘3.1.13’
gem ‘faker’, ‘2.1.2’
gem ‘will_paginate’, ‘3.1.8’
gem ‘bootstrap-will_paginate’, ‘1.0.0’
.
.
.
“`
サンプルユーザーを生成するRubyスクリプトを追加
####データベース上にサンプルユーザーを生成するRailsタスク
db/seeds.rb“`rb
# メインのサンプルユーザーを1人作成する
User.create!(name: “Example User”,
email: “example@ra
railsチュートリアル第10章 ユーザーの一覧ページ
##すべてのユーザーを表示する
indexアクションを追加しましょう。
すべてのユーザーを一覧表示します。
・データベースにサンプルデータを追加する方法
・将来ユーザー数が膨大になってもindexページを問題なく表示ページネーション(pagination=ページ分割)の方法を学びます
・ユーザーの一覧
・ページネーション用リンク
・移動用の[Users]リンクのモックアップ管理者権限を新たに実装し、ユーザーの一覧ページから(管理者であれば)ユーザーを削除できる機能も実装
###ユーザーの一覧ページ
indexアクションを追加しましょう。
不正から守るためにテストを作成
####indexアクションのリダイレクトをテストする
test/controllers/users_controller_test.rb“`rb
require ‘test_helper’class UsersControllerTest < ActionDispatch::IntegrationTest def setup @user = users(:michael) @oth