Rails関連のことを調べてみた2022年08月11日

Rails関連のことを調べてみた2022年08月11日
目次

本番環境でBootstrapが反映されない時に解決した方法

## デプロイはできたが…
本番環境にデプロイすることはできたが、Bootstrapだけが反映されてない、、という不具合をなんとか解消できた話です。

## 原因
恐らく、Bootstrapの最新版を使っていたための不具合でした。

## なぜ最新版だと不具合が生じるの??
色々なものが日々アップデートされていますが、それらは全ての環境下で挙動を確認されているか、というとそうではないからです。
そのため、最新版を使っていればいい、というものではなく常にその時の安定版というものがありますので安定版を使うようにしましょう。

## 公式ドキュメントには…

公式ドキュメントには、Bootstrap5.2.0(最新)が安定版となりました!というブログが掲載されています。
これで動くはずだ!と思ってしまいますが、先輩エンジニアさんの方々の意見をしっかり聞くようにしましょう😭

https://blog.getbootstrap.com/

![スクリーンショット 2022-08-11 11.10.16.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

モデルのカラムを日本語化するときに書く activerecord attributesについて(自分用)

https://techracho.bpsinc.jp/kotetsu75/2019_09_26/80592

元記事を表示

Rails クラスメソッドとscopeっていったい何が違うのよ!

# はじめに
駆け出しエンジニアの私にとって実務のコードはメソッドだらけでなかなか読み進めることが難しいです。
メソッドに出くわしたら、検索して書かれている場所を特定してアルゴリズムを理解して、また次の行へ・・・
そんな中次のようなメソッドがあり、コードの内で検索をかけるのですが、なぜかメソッドが見つからないことがありました。
~~~ ruby
モデル名.hoge
~~~
メソッドといえば
~~~ ruby
def hoge

end
~~~
この形が一般的です。
ですが、探してもどこにも見つかりません。
ただmodelにこんな記述がありました。
~~~ ruby
scope :hoge, -> { where.not(category_id: 3)}
~~~

どういうことだ・・・。このhogeは実はメソッドではいのか・・・?
scopeってなんだ・・・と思い、調べてみることにしました。
その内容を備忘録として残したいと思います。
もしも、おかしな点や間違いがありましたら、教えていただけると幸いです!

# 環境(自分のPC)
Ruby 2.7.1
Rails 6.0.5

#

元記事を表示

【Rails】Devise ゲストユーザーログイン機能

ポートフォリオにゲストユーザーログイン機能を下記の記事で無事に実装できました。
本当に詳しく書かれていて本当に助かります。。。
この記事では、復習を兼ねて少し解説していきます。

https://qiita.com/take18k_tech/items/35f9b5883f5be4c6e104

ルーティング

“`ruby:config/routes.rb
devise_scope :user do
post ‘users/guest_sign_in’, to: ‘users/sessions#guest_sign_in’
end
“`
:::note
**devise_for**と**device_scope**の違いは?
:::
**devise_forについて**
>Includes devise_for method for routes. This method is responsible to generate all needed routes for devise, based on what modules you have defined in

元記事を表示

【個人開発】楽しみながら滑舌を鍛えることができるWebアプリ『早口言葉選手権』をリリースしました⚾🏏

![hayakuchi-championship-toppage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2381497/cefba2f6-d185-5122-7c6a-eebd68b5a378.png)

若い方からお年寄りまで、スコアを競いながら楽しく滑舌を改善できる、早口言葉採点サービスをリリースしました。

▼サービスURL
https://hayakuchi-championship.com/
▼GitHub
https://github.com/tomo-kn/hayakuchi-championship
▼Twitterアカウント

※使用しているAPIの都合上、このサービスは現在、**PCまたはAndroid端末のChromeブラウザ**でのみプレイ可能です。

# はじめに
こんにちは![駆け出しエンジニアのとも](https://twitter.com/tomokn5)と申します。
突然ですが、皆さんは自身の滑舌や話し方に

元記事を表示

ENVの意味がわからなかったけど調べたら簡単だった。

はじめに

githubで有名なgemのコードを読んでみると、全く知らない文字列が羅列していて、そもそもどんな風にコードを読めばいいかわからないと言うことを何度も経験しました。
プログラミングを始めたばかりは(まだまだ初学者ですが。。)わからないものが羅列していると何が何やら訳が分からなくなり、単純に恐くて手をつけたくないと思ってしまっていました。
でも一つ一つの単語を調べて理解が少しできると怖さが激減するんだな、ということを経験の中で知ることができました。

少しでも疑問に感じたことはそのままにせず調べて、備忘録としてアウトプットをしていこうと思います。

ENV.fetch(“~”)の文字列が怖かった

現在ポートフォリオを作成している中で、twitter apiを使ってtwitterのアカウントでログインができる機能を実装しています。

その機能のためにネットの記事を参考にしていた際に、下記のコードが出てきました。
~~~
ENV.fetch(“TWITTER_KEY”)
~~~
いつもコードを書くときは大抵小文字なのに、ENVは大文字と言うだけで少し怖っ、、と思ってしま

元記事を表示

【Rails】コントローラ作成方法メモ

## 0. 環境
macOS Monterey 12.3.1
ruby 3.1.2
rails 6.1.6

## 1. コントローラ作成方法

以下のコマンドを入力する。

“`bash:ターミナル
rails g controller (コントローラ名) (アクション名1) (アクション名2)…
“`
作成例

“`bash:ターミナル
rails g controller users index show
“`

## 2. 特定のディレクトリ下に作成する時

コントローラ名にパスを付けて入力する。

“`bash:ターミナル
rails g controller api/v1/users index show
“`

または

“`bash:ターミナル
rails g controller api::v1::users index show
“`

## 3. 作成コマンドを取り消したい時

`g(generate)`を`destroy`に置き換える。

“`bash:ターミナル
rails destroy controller users index s

元記事を表示

【入門】データベース設計まとめ

## はじめに

今回はデータベース設計について学び直したので内容をまとめていきます。

自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。

実務では**Next.js×TypeScript**を利用したフロントの開発をメインで行っています。

直近の開発案件で**Rails**を使ったサーバーサイドの開発を担当することになり、DB設計を触ったのですが体系的な理解をしていなかったので苦戦をしました。

実装はできたものの、データベース設計を「**なんとなくの理解**」で終わらせないように、体系的に学び直しました。

データベース設計の学習に関しては下記の書籍を参考に進めました。

– [スッキリわかるSQL入門](https://www.amazon.co.jp/dp/4295013390/ref=as_sl_pc_as_ss_li_til?tag=sutabaopen-22&linkCode=w00&linkId=b6412edf27bcf35bf1c290b7854f0013&creativeASIN=4295013390)

元記事を表示

【Rails】Action Mailerのプレビュー時に発生したエラーの解決方法

## 環境

OS: macOS Bir Sur
Ruby: 3.1.2
Rials: 7.0.3.1
rspec-rails: 5.1.2

## 発生した問題

Railsチュートリアルの11章を進めていた際、Action Mailerのプレビューコードを実装後に「[http://localhost:3000/rails/mailers/user_mailer/account_activation](http://localhost:3000/rails/mailers/user_mailer/account_activation)」を確認した際に「Unknown action **Mailer preview ‘user_mailer/account_activation’ not found**」というエラーが発生した。

## 原因と解決方法

原因はテストをデフォルトで使用されるminitestではなく、RSpecに変更したこと。
「rails generate mailer コントローラ名 アクション名」を実行した際に、デフォルトでは、*test/mailers/prev

元記事を表示

【Webアプリ】個人開発したWebアプリを公開

皆さんに使っていただきたく、こうして個人制作したWebアプリを公開します。是非フィードバックをいただけるとありがたいです!

# 概要
気軽に議論するためのプラットフォーム「yes or no」を作りました。議題を整理しながら、討論できるTwitterのようなものをイメージして下さい。yes or noにおいては、議題に対して賛成・反対のポジションを取ることでコメントの投稿をすることができます。
![スクリーンショット 2022-08-10 1.35.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2707093/5e7270da-0b27-e698-645b-53ce8d080b2e.png)
誰かが立てた議論には時間制限があり、それを過ぎるとコメントすることができません。
議題の作成やコメントにはユーザー登録が必要になります。
ユーザー登録する際のEmailですが、@を含めているのならどのような文字列でもいけます。忘れなければ問題ありません。

# URL
Webアプリ「yes or no」のU

元記事を表示

Rails7でSvelteを使えるようにする

Rails7でSvelteを使う方法ってないのかな?と探していたんですが、全く見つからなかったので自分で試行錯誤した記録をここに記します。

やったことの軌跡がわかるようにPRを作ってありまして、基本このコミットの通りにやれば使えるようになるはず。

https://github.com/yuki-noguchi/svelte-rails7/pull/1

# 手順

## rails newする
このとき、`-J`や`-j`オプションをつけて、javascript関連のファイルは生成されないようにしたほうが良いかもです。
後述しますが、`vite_rails`を使用するので、生成されるjavascript関連のファイルが邪魔になるかもです。
自分は`–minimal`をつけちゃいました。

## ‘vite_rails’を追加する

Gemfileに以下を追記して、

“`
gem ‘vite_rails’
“`

bundle install実行。

“`shell
bundle install
“`

さらに、初期化コマンドを実行。

“`
bundle exec v

元記事を表示

【Rails】ActionMailerでお問合せフォームを作ろう!!

# はじめに
お問合せフォームをActionMailerを使って実装する方法を調べ、実装した。

**完成予想図**
以下のようなものを作る。
①お問合せフォームの作成
![スクリーンショット 2022-08-09 22.46.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2684787/b96d1935-4119-26e2-bcca-33416e39bbc6.png)
②確認画面の作成
![スクリーンショット 2022-08-09 22.46.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2684787/8b1bb9c0-bf79-b113-c6af-a7f32dfa9f32.png)
③送信後、ホームへリダイレクト
![スクリーンショット 2022-08-09 22.43.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0

元記事を表示

[Rails6系] auth0を使用したSNSログイン機能をHerokuにデプロイするまで

### 前提
記事を書いている私は現役のエンジニアではなくエンジニアを目指して学習中の者です。
よって、気をつけてはいますが記述内容には誤った内容が含まれている危険性があります。
その為この記事は参考程度に読んで頂き詳しい内容は公式の記述を参考にすることをおすすめします。

### この記事で実装すること
auth0とdeviseを使用してRailsアプリで簡単にSNSログインができる機能を実装し、Herokuにデプロイするまでの手順を説明します。
deviseを使用してユーザーの新規作成ができるRailsアプリがあることを前提に進めていきます。

### 使用技術
Ruby 3.1.2
Rails 6.1.6
Heroku
Deviseでユーザー新規作成機能実装済み

### 実装手順
auth0への登録からRailsアプリへの連携までについても説明しますがこの辺については以下のQiita記事や公式のチュートリアルがとても分かりやすいので参考にして下さい。
[公式のチュートリアル](https://auth0.com/docs/quickstart/webapp/rails/int

元記事を表示

ruby on rails を AWS Cloud9で実施 5 QandAサイト作成 バリデーション追加まで

https://qiita.com/TaichiEndoh/items/35294ff656499d9bbf8d

https://qiita.com/TaichiEndoh/items/9c19319df04a279403a3

https://qiita.com/TaichiEndoh/items/057d35eff8cadbd434ba

https://qiita.com/TaichiEndoh/items/522e956d569e5bbd7b8d

# 前回の続きでQandAサイト作成します

環境 AWS Cloud9
environment type EC2
instance type t2.micro
platform ubuntu server 18.04 LTS

## 質問の編集機能を実装

まずはviewの表示を変更します

app/views/questions/edit.html.erb
を作成します

“`app/views/questions/edit.html.erb

Edit

<%= form_with model: @qu

元記事を表示

【ポートフォリオ作成2日目】githubのissue活用とrspecのセットアップ

# 概要
– githubのissue機能を使ってタスク管理をする。
– rspec(Ruby用のテストフレームワーク)を使ってTDD(テスト駆動開発)を行うための準備をする。
# githubでタスク管理
– [GitHubのissueを活用した個人アプリの開発手順を書いてみた](https://qiita.com/tkmd35/items/9612c03dc60b1c516969)
– [Githubにissueのテンプレートを作成する方法](https://note.com/koushikagawa/n/n0dcc592d3045)
# rspecのセットアップ
– [rspecをgemでインストール](https://zenn.dev/fu_ga/books/ff025eaf9eb387/viewer/f2c0c9)
# 参考
– [使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」](https://qiita.com/jnchito/items/42193d066bd61c740612)
– [Everyday Rails – RSpecによるR

元記事を表示

【Railsチュートリアル】しょっぱなからバージョンを間違えた話

どうもこんにちは
先日Railsチュートリアルを始めたtaku3ukatです。

Railsチュートリアルではver.6.0.4を使い、以下コマンドで指定します。

“`
rails _6.0.4_ new (任意の環境名)
“`
ただrailsのバージョン確認をすると6.0.5.1と表示されるではありませんか…

#### とりあえずRails 6.0.5.1を消してみる。
“`ruby:削除コマンド
gem uninstall railties -v ‘6.0.5.1’
“`

“`ruby:削除結果(ターミナル)
You have requested to uninstall the gem:
railties-6.0.5.1

rails-6.0.5.1 depends on railties (= 6.0.5.1)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN] y
Successfully uninstalled

元記事を表示

【ポートフォリオ作成1日目】開発環境とrailsアプリケーション作成

# 概要
Webエンジニア転職用のポートフォリオ作成の過程を記録する。
[Ruby on Rails チュートリアル](https://railstutorial.jp/)を1週した後のレベル感。
– PC:M1 MacBook Pro
– エディタ:Visual Studio Code
– ターミナル:iTerm
# rubyのインストール
– [homebrewでanyenvをインストール](https://brew.sh/index_ja)
– [anyenvでrbenvをインストール](https://github.com/anyenv/anyenv)
– [rbenvでrubyをインストール](https://github.com/rbenv/rbenv)
– [(参考)PATHを通すとは? (Mac OS X)](https://qiita.com/soarflat/items/09be6ab9cd91d366bf71)
# railsアプリケーションの作成
– [gemでrailsをインストール](https://guides.rubyonrails.org/gettin

元記事を表示

【Rails】joinした先のテーブルで昇順降順のソートもしたい

## bad

joinした先のテーブルでソートする場合

“`ruby
User.eager_load(:posts)
.order(‘posts.title’)
“`

という例をよくみるが、これだと文字列を使う&昇順・降順のソートができない。

## better

“`merge“`を使うことでjoinした先のテーブルで昇順・降順のソートができる。

“`ruby
User.eager_load(:posts)
.merge(Post.order(title: :asc))
“`

## 参考

https://railsdoc.com/page/model_order

https://qiita.com/shshimamo/items/bd8150598cf2a157b980

元記事を表示

記事作成テンプレート

“`
# 概要
– [リンクテキスト](URL)
– [リンクテキスト](URL)
# 1
– [リンクテキスト](URL)
– [リンクテキスト](URL)
# 2
– [リンクテキスト](URL)
– [リンクテキスト](URL)
# 参考
– [リンクテキスト](URL)
– [リンクテキスト](URL)
“`

元記事を表示

docker-compose buildで You must use Bundler 2 or greater with this lockfile.エラーが出る

docker-compose buildをしたときにエラーが発生したため備忘録として残しておきます。
ググってみてもよくある解決策で解決しなかった人のためになれば幸いです。

“`ruby:Dockerfile
FROM ruby:2.5.1

RUN apt-get update -qq && \
apt-get install -y build-essential \
nodejs\
mariadb-server\
mariadb-client

WORKDIR /portfolio

COPY Gemfile /portfolio//Gemfile
COPY Gemfile.lock /portfolio//Gemfile.lock

RUN gem install bundler
RUN bundle install

RUN mkdir -p tmp/sockets
“`

この状態でdocker-compose buidを実行すると以下のエラーが発生。

“`
=> ERROR [7/8] RUN bundle install

元記事を表示

OTHERカテゴリの最新記事