- 1. Log in
- 1.0.1. サービス設計について③!
- 1.0.2. 幹事をランダムに設定する
- 1.0.3. 投稿に対する空コメントでInvalid dateが出たときの対処法
- 1.0.4. RedmineをDocker+NGINX+WSL2上で動かす
- 1.0.5. 【Rails】N+1問題についてまとめた [includesメソッド]
- 1.0.6. 【Rails】faker gem を使用してseed.rbにダミーデータを作成する
- 1.0.7. 【Rails】I18nで日時のフォーマットを指定する方法
- 1.0.8. rails内(簡易チャットアプリ)でjavascriptを使った際にエラーが出た時の対処フロウ【自分用】
- 1.0.9. 【Rails】Sorcery gem [require_login] [not_authenticated]について
- 1.0.10. [Rails] current_user.idとは
- 1.0.11. rails migrate リセット(reset)できない Windows SQLite3
- 1.0.12. deviseユーザー情報をパスワードなしで更新するとき詰まった話
- 1.0.13. Refile::InvalidID エラーが起きた時のメモ
- 1.0.14. サービス設計について②!
【Ruby on Rails】初学者専用 デバック練習
Ruby on Railsの勉強を始めて3か月ほどがたちました。
自分でアプリケーションをつくっていくなかでたくさんエラーに悩まされました。そのため、railsを始める人に知ってほしいエラー処理を作りました。
是非使ってみてください!!コードはこちら↓
https://github.com/koya1616/debug1.gitそれでは手順を説明していきます。
# リポジトリをクローンしてみよう
クローンについての記事はこちらもみるといいかもしれないです!
・[Git clone から pushまで](https://qiita.com/H-Toshi/items/df55d5024d9c0e2cfe22)それではクローンしていきましょう
“`:terminal
$ git clone https://github.com/koya1616/debug1.git$ cd debug1
“`
簡単ですね。# dockerをつかってみよう
dockerは環境構築に使います。ぜひ使ってみてください。
・[dockerの使い方などなど](https://qiit
駆け出しエンジニアの「ポートフォリオどうしよう?」を解決するサービスをリリースしました
## はじめに
駆け出しエンジニアのみなさん、ポートフォリオ[^1]作成に悩んでいませんか?
[^1]: 駆け出しエンジニア界隈の「ポートフォリオ」とは、技術力などを示す個人開発サービスを指します。
駆け出しエンジニアにとっては、企画から開発まで自力でできる力を示すために、**いかにポートフォリオを作り上げるか**ということが重要です。
しかし、初めての人がゼロから1つのプロダクトを作り上げるのはとても大変です。– みんなはどんなポートフォリオをどんな技術で作っているんだろう?
– 自分と同じくらいの規模のプロダクトのソースコードを見てみたいそんな悩みを解決するために開発したのが、このポートフォリオ集約サービス**「Fledge Hub」**です。
**https://fledge-hub.com**
https://fledge-hub.com
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322882/77f8d061-be7d-b902-cf76-d967a
Railsテスト(RSpec)記事12選
#RSpecとは?
RspecとはRuby用のテストフレームワークです。RSpec は Gem パッケージとして提供されていますのですぐに導入できます。#記事
RSpecについて書かれている記事たちです。参照しやすいように一箇所にまとめました。https://qiita.com/tatsurou313/items/c923338d2e3c07dfd9ee
https://qiita.com/jnchito/items/42193d066bd61c740612
https://zenn.dev/fjsh/articles/b300fd2f8eec77
https://qiita.com/kskinaba/items/38b143e79bdfd44cc42a
https://qian-dao-zhen-yi.gitbook.io/rspec-style-guide/
https://qiita.com/yamaday0u/items/c3bf6036e11298771a99
https://zenn.dev/yukihaga/articles/816758ff6f0bd
railsチュートリアル第9章 [Remember me]をテストする
###[Remember me]をテストする
####テストされていないブランチで例外を発生する
app/helpers/sessions_helper.rb“`rb
module SessionsHelper
.
.
.
# 記憶トークンcookieに対応するユーザーを返す
def current_user
if (user_id = session[:user_id])
# ログイン中のidを代入する
# 永続セッション(ログイン中)にするため
@current_user ||= User.find_by(id: user_id)
# カレントユーザーまたは検索結果があったものを代入する
elsif (user_id = cookies.signed[:user_id])
# そうでなければ 書名付きクッキーを代入
raise
# テストがパスすれば、この部分がテストされていないことがわかる
# プログラムを強制的に終了させて、ログをみることができます。
railsチュートリアル第9章 [Remember me]のテスト
##[Remember me]のテスト
・チェックボックスのエラーを確認するため
・ユーザーを永続化するコードの中心部分が、実はまだまったくテストされていない
・チェックボックスが常にオンの状態になる。
####log_in_asヘルパーを追加する
test/test_helper.rb“`rb
.
.
.
# テストユーザーとしてログインする
def log_in_as(user)
session[:user_id] = user.id
# ユーザーidを代入させる
end
endclass ActionDispatch::IntegrationTest
# テストユーザーとしてログインする
def log_in_as(user, password: ‘password’, remember_me: ‘1’)
post login_path, params: { session: { email: user.email,
password: pa
railsチュートリアル第9章 [Remember me]チェックボックス
##[Remember me]チェックボックス
[remember me]チェックボックスでログインを保持する方法を解説####[remember me]チェックボックスをログインフォームに追加する
app/views/sessions/new.html.erb“`html
<% provide(:title, "Log in") %>Log in
<%= form_with(url: login_path, scope: :session, local: true) do |f| %>
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %><%= f.label :password %>
サービス設計について③!
#①.結論!
Ruby on Railsでは、DB設計が済んでしまえばマイグレーションファイルなどに記述をするだけでDBが利用可能になるので、より開発に近い設計だと言えます!
したがって、DB設計は詳細設計に分類されることがほとんどです!
DB設計について説明したいと思います!
#②.DB設計
DB設計とは、開発で使用するDB(データベース)の表を設計することです!
具体的に考える項目としては、「テーブル」や「カラム」、「関連付け(アソシエーション)」などです!
設計手順としては、まず保存する項目を洗い出します!
そして、どのようなテーブルがあれば管理しやすいかを考慮しつつ、その中でテーブル同士の関連付けを考えていきます!
#③.エンティティ
サービスで扱われる情報を整理します!
サービスで扱われる情報のことを、「エンティティ」と呼びます!
サービスで扱われるデータ自体のことですね!
例を出すと、以下のような物です!
・ユーザー管理に関する情報
・投稿へのコメントに関する情報
このような物になります!
次に、抽出したエンティティを関連性も含め具体化し
幹事をランダムに設定する
#前回投稿した記事の応用編
https://qiita.com/tkht2401/items/63406354e17566e3ae11
sampleメソッドを使って、より応用したBooleanの「true, false」を切り替えたいと思います。
**この記事が少しでも良かったと思ったらLGTMを押していただけたら嬉しいです!!**
##前提条件
group:memberrをたくさん持つ
member :たくさんのgroupに所属する
group_member : 中間テーブル**グループとメンバーは多対多の関係です!**
そして、グループに加入したメンバーの中からランダムに幹事を設定できること。流れとしては、
自動設定するを押すとグループに参加のメンバーの中から、
Role(役割)が、organizer(幹事)かregularにランダムに変わります。今回はsampleメソッドを使うので、少し制限もつけます。
①幹事は一グループにつき一人まで
②メンバーは二回連続で幹事にならない#イメージ図
![qiita_boolean.png](https://qii投稿に対する空コメントでInvalid dateが出たときの対処法
##目的
自作アプリで投稿にコメントができる機能を作成。
その際出てくるエラーの解決に時間がかかったので、解決までの考え方を備忘録として記事にしました。##環境
windows10 home
Ubuntu 20.04.1 on WSL2
rails 6.0.3
ruby 2.6.6##起きた現象
空のコメントを送信するとInvalid dateエラーが発生。
![eae5c07bf8195a5b11daa98e2106ada6](https://user-images.githubusercontent.com/69103382/138587293-696191b6-0d70-4411-96e9-b9912330c119.png)**コメントモデルのカラムは以下に記載**
* id
* content(コメントの中身)
* user_id(外部キー)
* micropost_id(外部キー)
* created_at
* updated_at##①ビューを確認
“`microposts/show.html.erb
<% @comments.each doRedmineをDocker+NGINX+WSL2上で動かす
# はじめに
Redmine をローカル環境で動かしたいと思い、せっかくなので Docker で構築することにします
また、公式 Redmine を `git pull` するだけで最新にしたかったので、Redmine のひとつ上のディレクトリに `docker-compose.yml` 等を配置することにします# バージョン
– docker desktop
– 4.1.1
– Windows 11 Pro
– 21H2
– Ubuntu
– 20.04.2 LTS
– Redmine
– 4.2.3.devel
– Ruby
– 2.7.4-p191 (2021-07-07) \[x86_64-linux\]
– Rails
– 6.1.4.1# 前提
– Docker で WSL2 の設定が済んでいること
環境は Docker + NGINX + WSL2 とします
今回紹介するソースは、以下のリポジトリにあります
# 手順
## 1
【Rails】N+1問題についてまとめた [includesメソッド]
#N+1問題とは何か
>ループ処理の中で都度SQLを発行してしまい、大量のSQLが発行されてパフォーマンスが低下してしまう問題のことです。
>日常生活で例えるなら、スーパーで商品を1点ずつお会計するようなもの。
それだけ無駄なことを行なっている状態を指します。https://qiita.com/massaaaaan/items/4eb770f20e636f7a1361
簡単にいうと、
DBからデータを取り出す際に大量のSQLが実行されてパフォーマンスが低下してしまう問題。**なぜ大量にSQLが実行されてしまうのか?**
テーブル間にアソシエーションが組まれているため。##解決方法
>N + 1クエリ問題を解決する
>Active Recordは、読み込まれるすべての関連付けを事前に指定することができます。これは、Model.find呼び出しでincludesを指定することで実現できます。includesを指定すると、Active Recordは指定されたすべての関連付けが最小限のクエリ回数で読み込まれるようにしてくれます。
https://railsguides
【Rails】faker gem を使用してseed.rbにダミーデータを作成する
#概要
**faker gem**を使用して、ダミーデータを作成し、**seed.rb**を使用してDBに反映させる#方法
**faker gem**を使用する
### faker gemでできること
文字列をランダムに作成してくれる“`:ターミナル
irb(main):001:0> Faker::Name.first_name
=> “蒼”
irb(main):002:0> Faker::Name.last_name
=> “藤田”
irb(main):003:0> Faker::Internet.email
=> “lakia@emmerich.info”
“`https://github.com/faker-ruby/faker
### インストールしたらseed.rbにデータを追加していく
`前提`
userモデルとboardモデルは **1対n**の関係になっている“`ruby:モデル
class User < ApplicationRecord authenticates_with_sorcery! has_many :boards,【Rails】I18nで日時のフォーマットを指定する方法
#概要
I18nを使用して、日時のフォーマットを表示したい#方法
#日本時間に設定する
“`ruby:config/application.rb
config.time_zone = ‘Tokyo’
config.active_record.default_timezone = :local
“`### 一文ずつ理解していく
東京にタイムゾーンを設定する“`
config.time_zone = ‘Tokyo’
“`>アプリケーションやアクティブレコードで使用するデフォルトのタイムゾーンの設定
https://railsdoc.com/page/config_time_zone
“`
config.active_record.default_timezone = :local
“`>データベースの処理の際に使うタイムゾーンを指定
「:utc」を設定すると、データベースに保存したりする時刻がUTC
デフォルトでは、「:local」https://railsdoc.com/page/config_active_record_default_
rails内(簡易チャットアプリ)でjavascriptを使った際にエラーが出た時の対処フロウ【自分用】
## 簡易チャットアプリ(rails)で起こったJSのエラー
[![Image from Gyazo](https://i.gyazo.com/0d188d6f1414f78de448c78264cc0fb9.gif)](https://gyazo.com/0d188d6f1414f78de448c78264cc0fb9)
①非同期通信でメッセージを送信すると、current_userの名前が「undefined」になる。
②imageがnullの時、ビューに表示されないための条件式(三項演算子)を以下のように書いたにも関わらず、imageが表示されてしまう。~~~message.js
function buildHTML(message) {
var image = message.image ? `` : “”;var html = `
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた