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

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

Webpacker::Manifest::MissingEntryError 解消法

rails sを実行したところ下記エラーが発生
Webpacker::Manifest::MissingEntryError in Blogs#index

その解決方法を記載していきます。

# 結論

結論から言うと、webpackerをコンパイルすれば直ります。
コンパイルするまでの過程を記載していきます。

①テキストエディタから、gemfileを探し、webpackerのバージョンを確認
②バージョンを5.0に更新
③コマンドを実行
④コンパイル
⑤rails s

順に詳しく説明していきます。

# webpackerのバージョンを確認

“rails s”を実行するためには、”webpacker”のバージョンを5.0にアップしなければならないようです。
バージョンアップする場合は”terminal”で実行するのではなく、”text editor”の中から”gemfile”を探し、バージョンを確認してください。

# バージョンを5.0に更新

webpackerのバージョンが5.0になっていない場合は、書き換えます。

“`gemfile.
変更前: gem ‘web

元記事を表示

【Rails】Running via Spring preloader in process…が表示されコマンドが動作しない

# 開発環境
Rails 6.1.4
ruby 2.6.3

# 目次
– 実例
– springとは?
– 対処法

# 実例

`rails g devise:install`コマンドで`devise`をインストールしようとしたところ、
下記コマンドが出てきて正常に動作しない状態になりました。

“`ruby:ターミナル
$ rails g devise:install
Running via Spring preloader in process 23800
#中略
Run `rails generate –help` for more options.
“`

# springとは

`spring`とは、アプリケーションをバックグラウンドで実行し続けることで、
開発をスピードアップするRailsアプリケーションプリローダーです。
変更を加えるときにサーバーを再起動する必要をなくしてくれるものだそうです。

といいつつも、プロセスが残っていたりすると今回のような問題が発生します。

# 対処法

まずは、springの状態を確認します。

“`

元記事を表示

Rails link_toで関数を渡す

# 背景
レシピ共有アプリ制作にて以下のような問題がありました

“`ruby:モデル
class User < ApplicationRecord has_many: recipes has_one: list end class Recipe < ApplicationRecord belongs_to: user has_many: ingredients end class Ingredient < ApplicationRecord belongs_to: recipe end #これは買い物リストのモデルで、追加したいレシピの材料をリストテーブルに保存します class List < ApplicationRecord belongs_to: user end ``` 買い物リストにレシピの材料を追加するときに、 パラメーターの中にレシピの情報を追加したかったのですが、 親子関係ではないのでルーティングのネストをせずに実現したい。。。 迷った末見つけた方法をここに残します ```ruby:ルーティング post '/lists', to: 'lists#c

元記事を表示

【Rails】フラッシュメッセージの空白を消したい時

フラッシュメッセージの余白を消したい!

めちゃくちゃ邪魔↓
![スクリーンショット 2022-07-13 17.38.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602337/5db6b191-da85-6f9e-b4a3-3a7c3b156ae4.png)
“`erb:application.html
<% if notice %>

<%= notice %>

<% end %>
<% if alert %>

<%= alert %>

<% end %>
“`

if文でサクッと消しちゃいます。

元記事を表示

ZoomAPI(Server-to-server OAuth)でミーティング設定更新の自動化(Update a meeting)してみた!

[バヅクリ](https://buzzkuri.com)CTOの合原です。
[前回](https://qiita.com/kieaiaarh/items/c604541b08ef19135025)投稿では、zoomAPIを使って、Zoomミーティングを作成するアプリケーションを作ってみました。

いいタイミングでこちらのキャンペーンも開催しているので、今回ももちろん、相乗りさせていただきました :sweat_smile:
https://qiita.com/official-campaigns/engineer-festa/2022

上記作成したところ、すぐさま、
「新規作成&既にできているZoomミーティングのレコーディング設定を自動化したい」、
という要望が挙がり、それならば!と、
前回作成したアプリケーションに、今回は、[Zoom Meeting update API](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingUpdate) を利用して、機能拡張してみま

元記事を表示

【Rails】任意のErrorをthrowする。

メモとして残します。

# ■やり方

`raise “エラーメッセージ”`

“`ruby
begin
raise “エラーメッセージ” unless hoge.present?
rescue StandardError => e
#エラーの処理
end

“`

以上

元記事を表示

Ruby 練習問題4 ~特定条件のみに呼応するプログラムの作成~

こんにちは、プログラミング初学者”fujitacoma”です!

今回は、Ruby練習問題シリーズの4回目です。
Dateクラスを使用し、曜日を呼び出すプログラム問題です!

それでは早速始めます!

# 問題
今日の曜日を表示するコードをDateクラスを使用して記述してください。

ただし、金曜日だった場合だけ以下のように表示の内容を変えてください。

(出力内容)
「今日は月曜日」
「今日は金曜日だ !!!」

## ヒント
### Dateクラス
DateクラスとはRubyの標準ライブラリの機能です。Dateクラスを使うには以下一文を記述します。
“`ruby
require “date”
“`
次に、Dateクラスを用いて「今日の曜日」を取得する場合は以下のように記述します。
“`ruby
Date.today.wday
“`
`wday`は曜日を0(日曜日)から6(土曜日)の整数で取得することができる
Dateクラスに用意されているメソッドです。

たとえば、以下のように使うことができます。
“`ruby
require “date”

day = Date.tod

元記事を表示

【Rails】テーブルの作成手順

Railsでテーブルを作成する機会があったので、自分でやったやり方をまとめる。

## ①コマンドを実行

“`
$ rails g model Test(任意のモデル名)
“`
※`g`はgenerateの略。
間違えた場合は
“`
rails d model user(任意のモデル名)
“`

で削除できる。

コマンドを実行すると、以下ファイルが自動で作られる。
①モデルのクラスファイル(app/models配下に作られる)
②マイグレーションファイル(db/migrate配下に作られる)
③テスト系のファイル(この辺は導入しているテストツールで異なる?)

## ②マイグレーションファイルを編集

生成されたマイグレーションファイルを修正し、テーブルの中身のカラムを作成するため設定をしていきます。
マイグレーションのファイル名は、生成日時が自動でつき、コマンドで実行したモデル名の複数形で名前がつきます。
例:`20220711090757_create_tests.rb`

“`Ruby
class CreateTests < ActiveRecord::Migrat

元記事を表示

【VSCode】Solargraphの導入【Ruby】

## 拡張機能をインストールする
solargaphの拡張機能をVSCodeにインストールします。

https://marketplace.visualstudio.com/items?itemName=castwide.solargraph

## gemをインストールする
solargraphをグローバルインストールする場合には以下のとおりインストールします。

“`:ターミナル
$ gem install solargraph

# グローバルなgemのdocumentを生成。
$ yard gems
“`
`bundle exec`しないように`settings.json`に以下のように記述します。

“`settings.json
“solargraph.useBundler”: false
“`

bundlerでinstallする場合には以下のとおりインストールします。

“`:Gemfile
group :development do
gem “solargraph”
end
“`

“`bash
$ bundle install

# プロジェクト

元記事を表示

【Ruby on Rails】トップに戻るボタンの作成

# 目標

よくWebページで見るトップへ戻るボタン(画像右下)を作成します。

![Pagetop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730324/caaf94d0-a965-823b-b2ff-bfb22e672df9.png)

# 開発環境
Rails 6.1.4
ruby 2.6.3

# 目次
– Viewページの作成
– CSSファイルの作成
– jQueryの定義(jsファイルの作成)

## Viewページの作成

まずトップへ戻るボタンとして使用したい画像を用意します。
今回は下記の画像使用。

![arrow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730324/773d73b8-46c9-4b3e-0167-94bd61858604.png)

下記のように記述します。

“`html:index.html

元記事を表示

【JS、rails】要素の外側をクリックすると、その要素が閉じる

# 実装したいこと
クリックすると要素が変化し、要素外をクリックすると要素が元に戻るという機能を実装します。

今回の例は、自分のオリあぷに実装したものです。
検索フォームにホバーするとアンダーバーが表示されます。
検索フォームをクリックすると、アンダーバーの表示が維持されます。
検索フォーム以外をクリックすると、アンダーバーが消えます。
わかりにくいですがGifを参照ください。
https://gyazo.com/a36d20cbf9d2dd2b66f00d4b73b437b3
# 結論
JavaScriptを利用します。
“`javascript:JavaScript
function search_box() {
const search_box = document.querySelector(“#search-box”); // クリックした時にイベントを発火させるための要素を取得
if (!search_box) return null; // 目的の要素がないページでは何も処理しないようにする。⇨ページの挙動がよくなる
const line = doc

元記事を表示

Ruby On Rails7.0.3でscssファイル適用時の’cannot load such file — sassc’エラー

rails7.0.3でアプリケーション作成中に、’cannot load such file — sassc’のエラーメッセージが…

調べてみると以前のversionはデフォルトでinstallされていた`gem “sassc-rails”`が、rails7からデフォルトでコメントアウトされているとのこと。

Gemfileを確認してみると46行目あたりに
“`ruby:Gemfile
45 # Use Sass to process CSS
46 #gem “sassc-rails”
“`
との記載が、これを以下のように修正

“`ruby:Gemfile
45 # Use Sass to process CSS
46 gem “sassc-rails”
“`
`bundle install`します。
その後サーバーを再起動すると、無事解決しました!

元記事を表示

ActiveRecord で find_each しながら map したい

大きなデータを扱うときに使う `find_each` ([doc](https://api.rubyonrails.org/classes/ActiveRecord/Batches.html#method-i-find_each)) しながら値を集めたいとき

“`ruby
processed = []

User.where(‘age > 30’).find_each do |user|
# user に対するなんらかのバッチ処理

processed << user.id end processed ``` みたいにやっていたけど、 `find_each` は `Enumerator` かえすので普通にメソッドチェーンを使えば良い気がする。 ```ruby processed = User.where('age > 30′).find_each.map do |user|
# user に対するなんらかのバッチ処理

user.id
end
“`

元記事を表示

最新版のruby-buildを入れているとRubyをインストール出来ない問題の対処法(暫定版)

こんにちはRUNTEQで開発TA(エンジニア & 講師の補佐)をしているふぁらおです
今回は昨日(2022/07/12)から受講生がはまっているエラーがなかなか初学者にはしんどそうなので解決法を書いていきます
新しいruby-buildを入れると起こるようです(私のは`ruby-build: stable 20220710 (bottled)`)

### 環境(intel版でも発生を確認しています)
OS: macOS Monterey(12.4)
チップ: Apple M1

### エラー内容
rbenvでrubyをインストールしようとすると`Installing openssl-1.1.1q…`と出た後にエラーが出てインストールが出来ない

#### 実際のターミナル
“`
❯❯❯ RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.5.1
Downloading openssl-1.1.1q.tar.gz…
-> https://dqw8nmjcqpjn7.cloudfront.net/d7939ce614029c

元記事を表示

devise_token_auth導入時にURLを変更する方法

導入そのものについては参考になる他記事がたくさんあるので省略。

## 他記事でよく見かけたroutes
“`
Rails.application.routes.draw do
namespace :api do
namespace :v1, defaults: {format: :json } do
mount_devise_token_auth_for ‘User’, at: ‘auth’, controllers: {
registrations: ‘api/v1/registrations’,
sessions: ‘devise_token_auth/sessions’
}
end
end
end
“`
この記述で「[post]/api/v1/auth」ならユーザー作成、「[post]/api/v1/auth/sign_in」でログインになる。

使えることは使えるんだが、authがユーザー作成、sign_inでログインは直感的じゃないので、ユーザー作成なら「[post]/api/v1/us

元記事を表示

管理ユーザが一人もいなくなってしまわないように、更新・削除の制御をする

## 開発環境
macbook air(M1)
rails 6.0.3
ruby 3.0.1

## 状況

+ 一般ユーザーと管理ユーザーが存在するrailsアプリケーション
+ gem等使用せず開発する
+ 管理ユーザが一人もいなくなってしまわないように、更新・削除の制御をしたい
+ users tableのカラムはname, email, password_digest, adminの構成
+ adminはboolean型で管理

## コード例
データベースに登録されている最後の管理者が自身の管理権限を更新、削除出来ないよう、modelにコールバックを設定する。
“`Ruby:model/users.rb
before_update :admin_cannot_update
before_destroy :admin_cannot_delete

private

def admin_cannot_update
throw :abort if User.where(admin: true).count == 1 && self.admin_change == [true

元記事を表示

【Railsエンジニア向き】Phoenixでコンソールからモデル操作をやってみよう【ハンズオン】

## Elixirのコンソールで随分苦しんだので

Phoenixを触ってはみたものの、モデル操作辺りでコンソール操作がうまくいかず、すっかり打ちひしがれているそこのアナタ!

PhoenixもRailsのようにサクサク触ってみたいではなくないですか?

ただ・・・Phoenixのやつ、Railsコンソールみたいにサクサク実験できる段階になるまで少し前提条件が存在するようです。

実際、コンソールで挙動を試そうとしてググっても、何通りも書き方が出てきたり、そのとおりにやってみても言うこと聞かない事が多くて、コンソールの操作に本当にイライラします。

ここでは、そんな状況から脱するための前提条件をステップを踏んで紹介していきたいと思います。

## ここでやること

– アプリ立ち上げ
– モデル作成
– 新規データーの作成
– DBへの登録(insert)

## 前提条件

MacOS 12.3.1 (Apple M1)
Elixir 1.13.4 (compiled with Erlang/OTP 25)
Phoenix installer v1.6.10
psql (Postg

元記事を表示

【Rubocop】.rubocop.yml設定例【Rails】

## .rubocop.yml設定例
“`.rubocop.yml
require:
– rubocop-performance
– rubocop-rails
– rubocop-rspec

AllCops:
NewCops: enable

Layout/EmptyLinesAroundAccessModifier:
EnforcedStyle: only_before

Layout/IndentationConsistency:
EnforcedStyle: indented_internal_methods

Layout/LineLength:
Max: 80

Style/AsciiComments:
Enabled: false

Style/Documentation:
Enabled: false

Style/FrozenStringLiteralComment:
Enabled: false

Style/StringLiterals:
EnforcedStyle: double_quotes
“`

## 各項

元記事を表示

RailsでActive Hashを使ってカテゴリを作る

RailsでActive Hashを使ってカテゴリを作る方法を紹介します。

こちらの記事
https://qiita.com/satoka_com/items/183d22541c3a54e0d878
を参考にしました。

最初にGemfileに、
“`
gem ‘active_hash’
“`
を記載して、
“`
$ bundle install
“`
します。

自分の場合だとrecruitmentモデル(求人ページ)にカテゴリを持たせたいと考えているので、
そこにActive Hashを使ってカテゴリを作っていきます。

最初にJobategoryモデルを作成します。
“`Ruby
#job_category.rb
class Category < ActiveHash::Base self.data = [ { id: 1, name: 'サンプル' }, { id: 2, name: 'サンプル2' }, { id: 3, name: 'サンプル3' } ] include ActiveHash::Associations has_many :r

元記事を表示

【Rails】リロードをしないとJavaScript (jQuery)が動作しない

今回はスクールでも頻発している
”リロードしないとjQueryが動かない問題”について記事にしていこうと思います。
かくいう私も見事この沼にハマり、かなり悩まされました、、、

# 開発環境
Rails 6.1.4
ruby 2.6.3

# 目次
– 原因
– 対処法
– 対処法(番外編)

## 原因
私の場合、FontAwesome導入時にjQueryのコードを追記していたのですが、
なぜかそれが削除されており、jQueryが作動しないという状況でした。

## 対処法

下記のコードを追記します。

“`ruby:config/webpack/environment.js
const webpack = require(‘webpack’)
environment.plugins.prepend(
‘Provide’,
new webpack.ProvidePlugin({
$: ‘jquery/src/jquery’,
jQuery: ‘jquery/src/jquery’,
Popper: ‘popper.js’
})
)
“`

元記事を表示

OTHERカテゴリの最新記事