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

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

退会確認画面 退会ステータス

**はじめに**
bootstrap導入済 
namespases使用
devaice導入
:blossom:boolean型で実装
________
今回の完成イメージ
![スクリーンショット 2023-07-20 23.47.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492906/3e8e4249-9f2c-b6fb-ea23-3b15bba2e2f7.png)
### :cherry_blossom: boolean型について
真偽値を表現するためのデータ型です。これは、主に論理的な真(true)または偽(false)のいずれかの値を持つことができます。

データベースでの使用例としては、ユーザーが商品の購入を希望しているかどうか、商品が在庫切れかどうかなど、二つの状態のうちどちらかを示す必要がある場合に使用されます。

Railsでは、これをデータベースのカラムに適用して、そのカラムがtrueまたはfalseの値を持つことができます。例えば、今回のis_deletedフィールドは、顧

元記事を表示

既存のRailsアプリをRansack 4に対応させる手順

## はじめに
Ransack 4.0.0では「検索可能な列」や「検索可能な関連モデル」をモデル内に予め定義しておかないと、以下のようなエラーが発生します。

“`
RuntimeError in Users#index

Ransack needs User attributes explicitly allowlisted as
searchable. Define a `ransackable_attributes` class method in your `User`
model, watching out for items you DON’T want searchable (for
example, `encrypted_password`, `password_reset_token`, `owner` or
other sensitive information). You can use the following as a base:
“`

![ng.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

顧客側 新規登録 

### はじめに
bootstrap導入済 
namespases使用
devaice導入
___________
今回の完成イメージです
![スクリーンショット 2023-07-20 19.57.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492906/230e22b6-61d8-9de0-77b4-00cc2a19a8aa.png)

“migrateファイル“
以下のようになってればOK!
足りないものがあれば追加してください。
“`diff_ruby
create_table “customers”, force: :cascade do |t|
t.string “email”, default: “”, null: false
t.string “encrypted_password”, default: “”, null: false
t.string “reset_password_token”
t.datetime “reset_pas

元記事を表示

プログラミング半年おにいさんが贈る、プログラミング初学者さんへ

今回はたくさんの人に支えられながらプログラミングを半年やってきた僕が、当時の自分を思い出しながら初学者さんへ向けて、モチベーションなどを少しでも上げてもらえればいいなと思い記事を書かせていただくことにしました!
 

果たしてどれだけの初学者さんがQiitaを読んでいるかは分かりませんが、少しでも多くの方に役に立っていただければと思います。
 

いくつか章があるので気になったところだけ読んでください。
 

ここで言う初学者とは、生まれたてのヒヨコに加えて、生まれようとしているヒヨコも含まれています。
 

もう成熟したヒヨコには今回のお話はあまり役に立たないかもしれないです。
 

そしてまた、僕がちょっと歩けるようになったヒヨコに過ぎなくても、それでも良いと言うのならこの先も読み進めてください。
 

完成した鶏さんがいる場合は、ぜひ僕に餌を与えてください。

## ここで簡単な自己紹介

* プログラミングをやりだして半年ほど経ちました。
* HTML, CSS, Ruby, Pythonをやっています。どれも好きです。
* 開発が大好きで、自分が欲しくなった機能などを作ったり

元記事を表示

rails APIのバージョンについて

#### RailsのAPIのバージョンについて
自分が参画した開発現場では一からサービスを作成しておらず、すでにリリースしているサービスの改修をしていました。その中でAPIの機能を使用して実装していたのでメモを残します。

#### RailsのAPIとは?
API専用アプリケーションを支援するRailsの機能のことであり
近年、さまざまなクライアント側フレームワークが登場したことによって、Railsで構築したバックエンドサーバ―を他のWebアプリケーションとネイティブアプリケーションの間で共有する手法が増えてきました。

たとえば、Twitterは自社のWebアプリケーションで パブリックAPI を利用しています。このWebアプリケーションは、JSONリソースを消費するだけの静的サイトとして構築されています。

多くの開発者が、Railsで生成したHTMLフォームやリンクをサーバー間のやりとりに使うのではなく、Webアプリケーションを単なるAPIクライアントにとどめて、JSON APIを利用するHTMLとJavaScriptの提供に専念するようになってきました。

#### コント

元記事を表示

顧客側 Topページ

### はじめに
・bootstrap導入済
・namespace使用
・device導入済

今回の完成イメージ
![スクリーンショット 2023-07-20 14.01.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492906/96407c88-13d4-f5ff-7e15-74a527db05ab.png)
テキストの背景に画像を指定して表示します。
新着商品を4件表示します。
_______

### コントローラー
“`public/homes_controller.rb
class Public::HomesController < ApplicationController def top @items = Item.order(created_at: :desc).limit(4) end end ``` @items インスタンス変数に、新着商品の情報を代入しています。具体的には、**Item.order(created_at: :desc).limit(4

元記事を表示

新卒エンジニアに捧げる! 新人でも貢献できるコードレビューの方法!

# はじめに

こんにちは。株式会社Relicのみけたです。
Railsのバックエンドエンジニアとして、弊社自社プロダクトの開発・保守に2年半携わっています。

おかげさまで弊社も規模が順調に拡大し、今年は新卒エンジニアがなんと11人も入社しました!
キャッチアップをしてもらい、互いに切磋琢磨をしながら会社を盛り上げていきたいと思っております。

https://www.wantedly.com/companies/relic/post_articles/503605

そこでその一助になればと、「**コードレビューで協力したいけれども、そもそもコード読むのむずいし、つまらないし、体質に合わない**」というあなたや、「**実装しなくちゃいけないから関係する周辺コードを読んだけれども何も分からないし、つらみがすごくて爆発しそう**」というあなたに向けて、**コードを読む上での方法論**をまとめてみました。(Railsを担当するサーバーサイド向け)

何かの参考になれば幸いです。

# 1. コードが読めない原因を特定しよう

目に前に繰り広がるアフリカの大自然のような大量のコードを眺めて

元記事を表示

管理者 商品詳細ページ

### :star2: 管理者の商品詳細ページの作成
bootstrap導入済 
namespases使用
_________
### :shamrock:コントローラー作成
アイテムを一つ取得して@item に格納
“`admin/items_controller.rb
ef show
@item = Item.find(params[:id])
end
“`

### :shamrock: views 詳細ページ作成
“`erb:abmin/items/show.html.erb

商品詳細

<%= image_tag url_for(@item.image), class: 'img-fluid', style: '

元記事を表示

はじめてのDockerでRails7の環境構築

[Dockerクイックスタート](https://docs.docker.jp/compose/rails.html)に倣いRails7の環境構築を行いました。
環境は以下の通りです。

* `Ruby: 3.2.2`
* `Ruby on Rails: 7.0.6`
* `Postgres: 12`

# 前提
* [Docker Desktop](https://docs.docker.com/desktop/)のインストールが必要です

# 本記事でわかること
* DockerによるRails7環境構築

# 作業ディレクトリの作成
作業用に任意ディレクトリ(本記事では`rails-docker`)を作成します。
“`terminal:terminal
# mkdir rails-docker
“`

# Dockerfileの作成
前項で作成したディレクトリに移動します。
“`terminal:terminal
# cd rails-docker
“`

次に`Dockerfile`を新規作成して以下を記述します。

“`dockerfile

元記事を表示

商品投稿 enum

### はじめに
**:shamrock:管理者側から商品を投稿して顧客の商品一覧ページに表示させます。**

ステータスはenumで実装しました。
bootstrap導入済み
devaice導入済み
____
migrateファイルはこんな感じ
“`diff_ruby
class CreateItems < ActiveRecord::Migration[6.1] def change create_table :items do |t| t.string :name, null: false t.text :description, null: false t.integer :price, null: false t.boolean :is_active, null: false, default: true t.timestamps end end end ``` ### :shamrock:モデルの設定 ```item.rb class Item < ApplicationRecord

元記事を表示

deviseの導入

https://github.com/heartcombo/devise
公式サイトより、Getting startedを参考にしながらdeviseを導入してみました。

gemファイルに追記、bundle installを実行
“`
gem ‘devise’
“`
次に、以下のコードを実行
“`
rails generate devise:install
“`

以下のファイルが作成される
“`
create config/initializers/devise.rb
create config/locales/devise.en.yml
“`

ファイルを作成すると、ターミナルに以下のようなメッセージが表示される。
“`

===============================================================================

Some setup you must do manually if you haven’t yet:

1. Ensure you have defined default ur

元記事を表示

An error occurred while installing pg (1.5.3), and Bundler cannot continue.

# 経緯
bundle installを行ったところ、エラーが発生しました。
“`
bundle install
Fetching gem metadata from https://rubygems.org/……….
Resolving dependencies…..
Using rake 13.0.6
Using racc 1.7.1
Using rack 2.2.7
(省略)
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
(省略)

Gem files will remain installed in

An error occurred while installing pg (1.5.3), and Bundler cannot continue.

In Gemfile:
pg
“`

表示の通りpgをインストールしましたが、上手くいきませんでした。
“`
$ gem install pg
“`

# 結果
下記を行ったところ、解決しました。
“`

元記事を表示

現場で使えるRuby on Rails5速習実践ガイドを読んで感じたこと

Railsの学習に際し、インプット教材にRuby on Rails5速習ガイドを選び今回読み終えたので全体の感想をまとめていきます。

# 初の実践には持ってこいの辞書

一通り読み終えて感じたのは、これは参考書であると同時に辞書引きができるようになっているものであると感じました。

どうしてそう思ったのかは以下の点を感じたからです。

– 開発の全体像を掴むことができる
– アプリケーションの作成から機能追加や削除を一通り学べる
– Rspecでのテスト技法が記載されている
– 概念への理解
– JSへの理解度の追求
– チーム開発の流れ
– バージョンアップへの対応の姿勢

Railsアプリケーションを作るのは簡単ではありませんし、今後ECサイトをHCの課題で制作していくわけですが、根本的な部分の理解度がないとそもそもアプリケーションを作れないでしょう。

どういう手段を用いて開発へ取り組むべきなのか、

またどういったステップで次へ行っているのかを明確にする時、

本書は開発経験がヒヨコな私のような駆け出しには必要な書籍であると感じました。

わからない

元記事を表示

SQLite3::BusyException: database is locked を解決した方法

# 背景
railsチュートリアルをやってる途中で `rails s` でサーバーを起動し、seedファイルの最初のユーザーでログインしようとしたら以下のエラーが発生しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3515182/e48be9fd-8722-9dfc-dd92-39b69d6e4a87.png)

# 原因
`rails s` でサーバーを起動する前に `rails c –sandbox` でコンソールを開き、
“`
> user = User.first
“`
と、最初のユーザーに対する操作を行っていたためでした。
sandboxオプションをつけると、操作したレコードにロックがかかってしまうみたいです。
今回はsandboxオプションをつけて開いた、コンソールを閉じずに、サーバーを起動させたため、
最初のユーザーのレコードにロックがかかり、ログイン時にレコードの操作ができなかったのだと思われます。

# 解決方法
`exit`または`quit`でrail

元記事を表示

【Qiita 初投稿】実務未経験の文系大学生がエンジニアインターンを始めてから半年経って学んだこと 3選

# はじめに

こんにちは。私は[Matcher株式会社](https://www.wantedly.com/companies/matcher)でエンジニアインターンをしています文系大学生の@ck_33です。

エンジニアインターン生として入社してから先月で半年が経ち、

・できるようになったこと
・学んでおいてよかったこと
・技術力を上げるために取り組んできたこと

などなど、この半年間で成長や課題を実感できるものが増えてきたので、一度振り返りをしつつ、共有していきたいと思います。

※もっとこうするといいかもなど実体験やアドバイスがあれば、ご指摘いただけると助かります?

# エンジニアインターンを始めるまで

まず、エンジニアインターンを始めるに至るまでの筆者のレベル感について、ざっと共有いたします。

#### 開発インターンを始めるまでの筆者

大学2年の夏頃からプログラミング(Ruby)の学習を開始し、[DMM WebCamp](https://web-camp.io/)というプログラミングスクールのメンターとして、主にRuby on Railsを教えながら、Web

元記事を表示

Railsデプロイ時のエラー:error Command “webpack” not found.

ElasticBeanstalkでRailsをデプロイ時に遭遇したエラーについて記載します。
誰かのお役に立てれば幸いです。

## 環境
– Elastic Beanstalk Ruby 3.6.7@Ruby 3.0 running on 64bit Amazon Linux 2
– Rails 7.0.4.3
– bundler_version: 2.2.33
– rake_version: 13.0.6

## エラー内容

>[INFO] Running command /bin/su webapp -c bundle exec /opt/elasticbeanstalk/config/private/checkforraketask.rb assets:precompile
[INFO] Found assets:precompile task in Rakefile
[INFO] Running command /bin/su webapp -c bundle exec rake assets:precompile
[INFO] Compiling…
Compilati

元記事を表示

rails view <% %> <%= %> 書き方

<% %>の場合は何も表示されないので、変数の定義などに用います。
一方<%= %>の場合では、Rubyコードの中身が表示されるため、変数の値などを実際にページ内に表示したい場合に用います。

### 例
“`
<% post1 = "今日からRailsの勉強するよー!" %>
<% post2 = "投稿一覧ページ作成中!" %>

<%= post1 %>
//今日からRailsの勉強するよー!を表示
<%= post2 %>
//投稿一覧ページ作成中!を表示

“`

元記事を表示

rails command 流れ 随時更新

## railsアプリケーションの準備 例
“`
rails new tweet_app
“`
## サーバー立ち上げ 
“`
rails server
“`
## トップページ自動生成
新しいページを作るコマンド
“`
rails generate controller home top
“`
– 「rails generate controller home top」を実行すると、
viewsフォルダの中に「homeフォルダ」と「top.html.erb」という
ファイルが作成されます。
– localhost:3000/home/top 検索
– Home#top
Find me in app/views/home/top.html.erb
と表示される
– 「home_controller.rb」というコントローラのファイルが作成され、ファイルの中に「topメソッド」が追加されます。
コントローラ内のメソッドを「アクション」と呼びます。
“`
class HomeController < ApplicationController def top

元記事を表示

共同開発 ルーティング nemespace

自分のメモ用程度に作成してます。
### :shamrock:namespaseを使用して顧客と管理者のルーティング作成

:star:**管理者用**
“`routes.rb
devise_for :admin, skip: [:registrations, :passwords], controllers: {
sessions: “admin/sessions”
}
namespace :admin do
get ‘/’ => ‘homes#top’
resources :items, except: [:destroy]
resources :genres, only: [:index, :create, :edit, :update]
resources :customers, only: [:index, :show, :edit, :update]
resources :orders, only: [:show, :update]

元記事を表示

Boolean型カラムをpresence: trueで設定したらfalseで保存出来なかった

# 前提条件

Userテーブルにnullを許容しないBoolean型のhoge_flagというカラムがあるとする。

“`ruby
create_table :users do |t|
t.boolean :hoge_flag, default: true, null: false
end
“`

migration後にuser.rbにvalidatesを追加

“` ruby
validates :hoge_flag, presence: true
“`

# データ保存時にエラーが出る・・・

上記を踏まえて、hoge_flagをfalseにしてみた!

“`
user = User.first
user.hoge_flag = false
user.save!
“`

結果
“`
Translation missing: ja.activerecord.errors.messages.record_invalid (ActiveRecord::RecordInvalid)
“`

あらら・・・

もう少し確認してみると

“`
user.valid?
=>

元記事を表示

OTHERカテゴリの最新記事