- 1. 【第2回】Railsのjoinsとleft_outer_joinsの挙動と違いをまとめた
- 2. 【M1チップ/Docker/Rails6/MySQL5】既存アプリをローカルでDocker環境を構築するまでの道程
- 3. Rails 個人的に覚えておきたいコマンド【初心者】
- 4. コントローラ作成~取り消し
- 5. モデル作成~取り消し
- 6. migrate~取り消し
- 7. Railsでブログシステムを作りたいPart1
- 8. Railsアプリに隠しコマンド・隠しページを実装してみる
- 9. Docker上のRuby on Rails 6をVisual Studio Codeでデバッグするまでの手順
- 10. Railsチュートリアル 第7章 リスト7.23のテストでArgumentError: wrong number of arguments (given 2, expected 1)
- 11. NoMethodErrorを解決した話 (Railsチュートリアル )
- 12. [Ruby on Rails] N+1問題の解決法(joinsメソッド+groupメソッド編)
- 13. AWS FargateでRailsアプリとSidekiqを動かすやり方
- 14. Fontawesomeを導入したら文字化けしていた
- 15. [ Rails & Nuxt ] AWS ECSを使ってデプロイをする
- 16. [ Rails & Nuxt ] Devise_token_auth とAuth Moduleでログイン認証機能を実装する
- 17. [ Rails & Nuxt ] Dockerで開発環境を構築する
- 18. ルーティングを書く順番
- 19. svnを使用したら、zshにコマンドがないというエラーが出た
- 20. 【Rails】bundle installができない時の解決方法
- 21. Railsアプリのリンクにショートカットキーを割り当てたいときに絶対に実現できる記事
- 22. 今更だけどdeviseのPrefixについて整理してみた
- 23. ransackで入力した値が、営業時間内か検索する。
【第2回】Railsのjoinsとleft_outer_joinsの挙動と違いをまとめた
前回はN+1問題が発生する状況とタイミングについて解説しました。
→[【第1回】RailsのN+1問題と解決するためのメソッド完全版](https://qiita.com/kurokawa516/items/6c6e895843e199c52ac2)
もしまだご覧になっていなければ、一読していただけると理解がスムーズになります。##本記事の内容
今回はN+1問題を解決するメソッドを5つ紹介していきます。1. joins
2. left_outer_joins <=(本記事ではここまで) 3. eager_load 4. preload 5. includes ##joinsメソッド SQLの``INNER JOIN句``が発行されます。(内部結合) 内部結合とは、指定したそれぞれのテーブルのカラムの値が一致するデータだけを取得する方法のことです。 内部結合についてはこちらを参考にすると理解しやすいです。 [内部結合を行う(INNER JOIN句)](https://www.dbonline.jp/mysql/join/index1.html) ###使い方 ```ruby
【M1チップ/Docker/Rails6/MySQL5】既存アプリをローカルでDocker環境を構築するまでの道程
### やりたいこと
既存アプリに対してローカル環境でのdocker導入### 環境
Ruby 2.6.5
rails 6.0
MySQL 5.6
M1チップ搭載MacOS### 遭遇したエラー
[1.ERROR RUN bundle install](#1-ERROR RUN bundle install)
[2.error Integrity check failed](#2-error Integrity check failed)
[3.ActiveRecord::NoDatabaseError](#3-ActiveRecord::NoDatabaseError)
[4.Aws::Sigv4::Errors::MissingCredentialsError in items#index](#4-Aws::Sigv4::Errors::MissingCredentialsError in items#index)###1.ERROR RUN bundle install
##### 発生したエラー
“`
Could not locate Gemfile
bund
Rails 個人的に覚えておきたいコマンド【初心者】
##操作取り消し系
コントローラ作成~取り消し
コントローラ作成 ※例
“`rails generate controller StaticPages home help“`
取り消し ※上記で作成された関連ファイルもすべて削除される。
“`$ rails destroy controller StaticPages home help“`モデル作成~取り消し
モデル作成※例
“` $ rails generate model User name:string email:string“`
取り消し※カラム名の指定は不要
“` rails destroy model User“`migrate~取り消し
migrate実行
“`$ rails db:migrate“`
1つ前に戻す
“`$ rails db:rollback“`
最初の状態に戻す
“`$ rails db:migrate VERSION=0“`
Railsでブログシステムを作りたいPart1
#1.なぜやるのか
・Web系企業に未経験で転職し一ヶ月たち、技術書インプットメインの自己研鑽に飽きた(とゆうか身についてない感じがした)
・もともとブログを運営したいと思っていたが、せっかくならWordPressを使わない(会社でつかっているRails)でやりたい
というモチベーションです。そのため、Railじゃないと実現できない機能があるから使うわけではなく、あくまでもRailsを勉強したいというのが先行しています。
#2.実現したいシステム
###概要
旅行先や飲食店、遊んだ場所を紹介するブログを作りたいと思っています。
想定読者は日本人と台湾人です。僕の彼女が台湾人なので台湾中国語対応のブログにしたいと思っています。###欲しい機能
・日本地図や台湾地図で記事をソート
・地図表示
・2ヶ国語対応
・リッチテキストエディター
・バックヤード(管理者画面)
・pc+sp対応
等々#3.開発環境(予定含む)
ruby 3.0
rails 6.1.3
MySQL
AWS(本番環境インフラ)←まだちゃんと調べてないのでざっくりです
bootstrap
rspec
ci
Railsアプリに隠しコマンド・隠しページを実装してみる
## 概要
Railsアプリを作っている際、特定のコマンドを知っている人だけが辿り着けるページみたいなものがあれば面白いなと思い調べてみたところ、JavaScriptを上手く使えば実装できる事がわかったので試してみました。
実運用できるレベルかどうかは別として完全に遊び心みたいな感じです。(URLを直打ちすれば普通に飛べちゃうみたいな野暮なツッコミは無しでお願いします(笑))
## 完成イメージ
![マイ-ムービー(7).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/3444aa18-c61b-b48c-0a1e-54adb58f1077.gif)
今回はかの有名な [コナミコマンド](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%8A%E3%83%9F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89) (上上下下右左右左BA)を入力した場合、隠しページにつながる導線をアラートメッセージで表示するような仕組み
Docker上のRuby on Rails 6をVisual Studio Codeでデバッグするまでの手順
# 必要なもの
Docker Desktop
Visual Studio Code今回の作業環境は以下になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/d4e8146f-3f4d-43ad-d6a7-e59104c4f379.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/a02cbc08-1e97-42df-32e1-19ee2df46c47.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/d56993c8-04d5-2630-75e5-a13124e19934.png)
# Docker ファイルを作成
“`dockerfile:Dockerfile
FROM ruby
RUN apt-get update
Railsチュートリアル 第7章 リスト7.23のテストでArgumentError: wrong number of arguments (given 2, expected 1)
# はじめに
Railsチュートリアル7章のリスト7.23のテストで
`ArgumentError: wrong number of arguments (given 2, expected 1)`
とエラーが出たので、解決した方法をまとめておきます。自分の環境
– ryby: 3.0.1
– rails: 6.1.3.2## エラーが出た原因
ruby3.0以上を使っていると、キーワード引数の書き方が変わったため、書き方の問題でひっかかったぽいです。## エラーがでたコードとエラーメッセージ
“`ruby
require ‘test_helper’class UsersSignupTest < ActionDispatch::IntegrationTest test "invalid signup information" do get signup_path assert_no_difference 'User.count' do post users_path, params: { user: { name: "",
NoMethodErrorを解決した話 (Railsチュートリアル )
Qiita初投稿です。宜しくお願いします。
今回は、NoMethodErrorの解決にかなりの時間を費やしてしまったので、紹介していこうと思います。**エラー文**
=
“`
NoMethodError (undefined method `log_in’ for ~~~~~)
“`**原因**
=
ApplicationコントローラにSessionヘルパーモジュールを読み込む際に、
helloメソッドに書き込んでしまっていたので、正常に動作していなかった。正)
“`application_controller.rb
class ApplicationController < ActionController::Base include SessionsHelper end ``` 誤) ```application_controller.rb class ApplicationController < ActionController::Base def hello include SessionsHelper end end ```
[Ruby on Rails] N+1問題の解決法(joinsメソッド+groupメソッド編)
# はじめに
今回ポートフォリオ(以後PF)制作で、
日本各地の名所を投稿できるサイトを制作しました。実際に製作したサイトと、コード(GitHub)は下記のURLからご覧ください。
・サイトURL : https://japansiteinfo.com (今後予告なく公開停止する場合があります。ご了承ください。)
・GitHubのURL : https://github.com/yuta-pharmacy2359/dwc_JapanSiteInfo_app今回は前回から引き続き「N+1問題」に関して、includesメソッドで解決できないものについて
`joinsメソッド`および`groupメソッド`を用いた解決法を紹介したいと思います。# 本題
### 1. 前回のおさらい&今回扱う問題
前回の記事(https://qiita.com/yuta-pharmacy2359/items/cf30a20fbea9347c0b72) では、`includesメソッド`で「N+1問題」を解決できない以下の6機能のうち、
**・(ユーザー詳細画面における)1人のユーザーが獲得
AWS FargateでRailsアプリとSidekiqを動かすやり方
FargateでRailsコンテナと別にSidekiqを動かしたかったので試してみました。
その手順を書いていきます。
なお、RailsにSidekiqを導入するやり方については、本記事では紹介しません。## 前提
RailsアプリをFargateで動かすまでにやり方については以下の記事に書いております。
https://qiita.com/hatsu/items/22e11e94a0a981d78efa
https://qiita.com/hatsu/items/a70d5c49a39561836751
### Sidekiqの設定確認
“`ruby
Sidekiq.configure_server do |config|
config.redis = { url: “redis://#{ENV.fetch(“REDIS_URL”, “localhost:6379″)}”, namespace: “sidekiq” }
endSidekiq.configure_client do |config|
config.redis = { url: “redis
Fontawesomeを導入したら文字化けしていた
Fontawesomeの導入は多分これが一番わかりやすい。
https://qiita.com/koki_73/items/fa6d31a3b54a84d19dcf
ローカルサーバーを立ち上げて、確認したら文字化けしていたので、なんでだろうと思ったら、読み込みの順番が悪かったみたい。
“`app/assets/stylesheets/application.scss
*= require_tree .
*= require_self
*/
@import “bootstrap”;
@import “font-awesome”;
@import “font-awesome-sprockets”;
“`こうしてたんですけど、正しくは
“`app/assets/stylesheets/application.scss
*= require_tree .
*= require_self
*/
@import “bootstrap”;
@import “font-awesome-sprockets”;
@import “font-awesome”;
“`こっちじゃ
[ Rails & Nuxt ] AWS ECSを使ってデプロイをする
| No. | タイトル |
|:-:|:-:|
| 1 | [Dockerで開発環境を構築する](https://qiita.com/15recruit15/items/85ab5bbf6b900c004186) |
| 2 | [ログイン認証を機能を実装する](https://qiita.com/15recruit15/items/9d6803ad4aa412848a4f) |
| 3 | 記事投稿機能を実装する |
| 4 | [AWS ECSを使ってデプロイする](https://qiita.com/15recruit15/items/73eea044288bfdbb4fa0) |
| 5 | Circle CIを使って自動テスト•デプロイをする |
—
##はじめに
Rails & Nuxtでポートフォリオを作成するシリーズの第4弾になります。
全5部構成でDocker,CircleCI,AWS等のモダンな技術を組み込んだ作品を完成させる予定です。本章ではAWSのECSを利用してアプリのデプロイを行います。
以下、完成イメージ
![AWS_インフラ.png](htt
[ Rails & Nuxt ] Devise_token_auth とAuth Moduleでログイン認証機能を実装する
| No. | タイトル |
|:-:|:-:|
| 1 | [Dockerで開発環境を構築する](https://qiita.com/15recruit15/items/85ab5bbf6b900c004186) |
| 2 | [ログイン認証を機能を実装する](https://qiita.com/15recruit15/items/9d6803ad4aa412848a4f)|
| 3 | 記事投稿機能を実装する|
| 4 | [AWS ECSを使ってデプロイする](https://qiita.com/15recruit15/items/73eea044288bfdbb4fa0) |
| 5 | Circle CIを使って自動テスト•デプロイをする|
—##はじめに
Rails & Nuxtでポートフォリオを作成するシリーズの第2弾になります。
全5部構成でDocker,CircleCI,AWS等のモダンな技術を組み込んだ作品を完成させる予定です。本章では簡単なログイン認証機能の実装を行います。
## 事前知識 or 参考資料
### Devise-token-aut
[ Rails & Nuxt ] Dockerで開発環境を構築する
| No. | タイトル |
|:-:|:-:|
| 1 | [Dockerで開発環境を構築する] (https://qiita.com/15recruit15/items/85ab5bbf6b900c004186) |
| 2 | [ログイン認証を機能を実装する](https://qiita.com/15recruit15/items/9d6803ad4aa412848a4f) |
| 3 | 記事投稿機能を実装する |
| 4 | [AWS ECSを使ってデプロイする](https://qiita.com/15recruit15/items/73eea044288bfdbb4fa0) |
| 5 | Circle CIを使って自動テスト•デプロイをする |
—##はじめに
※初投稿なので多少読みづらいのはご容赦ください!本記事は私がエンジニアとして就活するにあたり、ポートフォリオを完成させるまでの過程を簡単にまとめたものです。解説書というよりは手順書という感覚で読んで頂ければと思います。
全5部構成でDocker,CircleCI,AWS等モダンな技術を組み込んだ
ルーティングを書く順番
新規投稿ページの作成のため、ルーティングの設定で私は最初
get “posts/:id” => “posts#show” #showは投稿内容の詳細ページへのアクション
get “posts/new” => “posts#new” #newは新規投稿ページへのアクションと設定していた。
しかしリンクから新規投稿ページにアクセスしたところ下図のようなエラーが生じた。![スクリーンショット 2021-06-23 15.16.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1667538/16444dcb-9de8-461c-f3d8-4e6398890e33.png)
エラー内容を見ていると、どうやらPostコントローラーのshowアクションに関してエラーが生じているように見える。(NoMethodError in Posts#showより)
しかしアクセスしたリンクは新規投稿ページへのリンクだったはずである。どうしてこのようなエラーが生じてしまったのだろうか。
その理由はル
svnを使用したら、zshにコマンドがないというエラーが出た
自分は特にM1Macを使っているので、ネットによくあるコマンドを使った時によくこの手のエラーに遭遇する。
で、今回は
https://qiita.com/rau/items/1219327df8a9ded494df
この記事をもとに特定のディレクトリから直接ダウンロードしようとしたら、zshでコマンドがないとのこと。
結論、
“`
brew install svn
“`で解決。
要するにsvnがインストールされていないわけです。### 追記
svnはめちゃくちゃ便利。
Githubの特定のディレクトリからコマンド一発でダウンロードできるのはありがたい。。。。
【Rails】bundle installができない時の解決方法
超初心者向けです。
gemをインストールする際に`bundle install`を実行した時の、エラーの解決方法を紹介します。##エラー内容
“`ruby:ターミナル
Fetching source index from https://rubygems.org/
Retrying fetcher due to error (2/4):
Bundler::HTTPError Could not fetch specs
from https://rubygems.org/
Retrying fetcher due to error (3/4):
Bundler::HTTPError Could not fetch specs
from https://rubygems.org/
“`
bundle install を実行しところ、随分待たされた挙句に上記のエラーが発生。##試したこと
“`
gem update –system
“`
私の場合、試してもエラーが発生。
大体は解決するそうですが、、、##解決方法
PCを再起動、もしくは、通信環境が良いところで再度チャ
Railsアプリのリンクにショートカットキーを割り当てたいときに絶対に実現できる記事
shortcuts.jsという、アプリに自身で決めたショートカットキーを指定することができるjsのファイルが配布されているが、
どの記事もアラートを出すような内容だったから、今回はRailsの`link_to`をクリックするときのショートカットキーを作成していく。#【ステップ1】shortcuts.jsをゲット
http://www.openjs.com/scripts/events/keyboard_shortcuts/index.php
このサイトの`Code`というセクションでjsのコードが表示されるリンクがあるから、そこからコードをゲットする。その後に、そのコードをペーストした`shortcuts.js`を作成する。
一応コードも載せておく。“`js:shortcuts.js
shortcut = {
‘all_shortcuts’:{},//All the shortcuts are stored in this array
‘add’: function(shortcut_combination,callback,opt) {
//Provide a
今更だけどdeviseのPrefixについて整理してみた
# はじめに
deviseで自動作成されるルーティングである「sessions」「password」「registrations」に関する備忘録です。
Prefixによる処理の記述はよく行いますが、「Prefixを見ただけでどんな処理が実行されるか?」をパッとイメージできなかったので整理しました。
ミスがあれば、コメントで教えてください。# 開発環境
– Ruby 2.7.2
– Rails 6.1.3
– PostgreSQL 13.2# 事前準備
まずはログイン機能をもつサンプルアプリを下記コマンドで作成します。
DBはPostgreSQL、テストファイルは不要なので-Tを付けます。“`ruby
rails new sample -d postgresql -T
“`
`gem ‘devise’`の記述をGemfileに追加し、`bundle install`をします。次に、下記コマンドを実行し、ログイン機能に対応したUserモデルを作成します。
“`ruby
rails g devise:install
rails g devise User
rails
ransackで入力した値が、営業時間内か検索する。
#はじめに
現在デートスポットのレビューサイトを作成中です。
検索した時間が、営業時間内に入っていれば表示する検索機能を実装しようとしたら、なかなか実装できませんでした。
その実装方法を記事にしてみようと思います。#modelの概要
“`
create_table “date_spots”, charset: “utf8mb4”, collation: “utf8mb4_0900_ai_ci”, force: :cascade do |t|
t.integer “genre_id”
t.string “name”
t.datetime “opening_time”
t.datetime “closing_time”
t.datetime “created_at”, precision: 6, null: false
t.datetime “updated_at”, precision: 6, null: false
end
“`
始業時間(opening_time)と終業時間(closing_time)がデートスポットごとに決