- 1. users#index
- 2. users#new
- 2.0.1. ActiveRecord::Enum
- 2.0.2. find/ find_by/whereの違い
- 2.0.3. bundle install で `gem install mysql2 -v ‘0.5.3’ –source ‘https://rubygems.org/’ と言われてうまくいかない
- 2.0.4. [Tips]insertメソッドでコールバックを発火させずに単一のレコードを作成する(Rails)
- 2.0.5. 【もうやらかさない】開発DBのデータを全部消しちゃったお話(改善策もあるよ)
- 2.0.6. The resource ファイル名 was preloaded using link preload but not used within a few seconds from the window’s load event.
- 2.0.7. undefined method `permit’ for “1”:String に手こずった。
- 2.0.8. 初めてのウェブサービスに縦書きエディタを選んだ理由(2)
- 2.0.9. 完全未経験が2ヶ月半で一からWebアプリを作ったお話
- 2.0.10. [Rails]HerokuでRedis+Sidekiqを使用したActive Jobを実行させる
- 2.0.11. Userモデル、usersテーブル作成とバリデーション【10日目】
- 2.0.12. 議事録
- 2.0.13. Rails7をちょっと試す(turbo_frame_tag でページの表示を速くする編)
- 2.0.14. Gitコマンドでrbenv version ruby-2.7.4′ is not installedtというエラーが出る
- 2.0.15. Railsのコントローラ
- 2.0.16. RailsのbrakemanでSexpTypeErrorがでる
- 2.0.17. RspecでMissing host to link to!とエラーがでる
- 2.0.18. Rspecでuninitialized constant Rack::MiniProfileがでて実行できない
- 2.0.19. Railsのdevice_token_authでパスワード再設定で参考にした記事
WIP【Viewがレンダリングされるまでの技術とその理解 / Aaron Patterson 】Aaron PattersonさんがYouTubeで説明していたコードにビューを付けてみる
“`
.
├── app
│ ├── controllers
│ │ ├── action_controller.rb
│ │ ├── application_controller.rb
│ │ └── users_controller.rb
│ └── views
│ └── users
│ ├── index.html.erb
│ └── new.html.erb
├── application.rb
├── rack_router.rb
└── server.rb
“`“`html
users#index
“`
“`html
users#new
“`
“`ruby
require ‘socket’
require ‘./application’port = 3000
server = TCPServer.open(port)loop d
ActiveRecord::Enum
## Enum is 何
– enumは“列挙型“## 定義例
“` ruby
class Book < ApplicationRecord enum sales_status: { reservation: 0, # 予約受付中 now_on_sale: 1, # 発売中 end_of_print: 2, # 販売終了 } end ``` #### 保存のされ方 - シンボル、文字列、数値を渡しても戻り値が"now_on_sale"と表現される ``` ruby irb(main):001:0> Book.create(sales_status: :now_on_sale)
=> #irb(main):002:0> Book.create(sales_status: “now_on_sale”)
=> #irb(main):003:0> Book.create(sales_s
find/ find_by/whereの違い
## バージョン
– Ruby 2.6.6
– Rails 6.0.3## find/ find_by/whereの違い
### find
– 検索条件に引っかかる場合
“` ruby
pry(main)> Book.find_by(1)Book Load (0.2ms) SELECT `books`.* FROM `books` WHERE `books`.`id` = 1 LIMIT 1
=> #
“`“`ruby
pry(main)> Book.find(1).id ## データの中身を取得するとき
=> 1
“`– 検索条件に引っかからない場合
– “ActiveRecord::RecordNotFound“が発生
“`ruby
pry(main)> Book.find(1000)
Book Load (0.
bundle install で `gem install mysql2 -v ‘0.5.3’ –source ‘https://rubygems.org/’ と言われてうまくいかない
時間ないので、雑に忘備録として、一旦あげておきます
## 問題
“`Gemfile
gem ‘mysql2’, ‘~> 0.5.3’
“`こんな感じでGemfileに`mysql2`を入れようとしたときに
“`
bin/bundle install
“`
って入れても
“`
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v ‘0.5.3’ –source ‘https://rubygems.org/’` succeeds before bundling.In Gemfile:
mysql2
“`
こんなエラーが出るわけですよね。書いてある通りに
“`
gem install mysql2 -v ‘0.5.3’ –source ‘https://rubygems.org/
“`
と入れても
“`
ld: library not found for -lssl
“`
[Tips]insertメソッドでコールバックを発火させずに単一のレコードを作成する(Rails)
## コールバックを呼ばずにデータを作りたい
Railsでレコードを作成する時、コールバックを発火させずにデータを作成したい時が(基本的にない方がよいですが)ごく稀に存在します。
データを大量に作る時は、Rails6以降なら下記のように[insert_all](https://railsdoc.com/page/insert_all)を使うと良いでしょう。“`ruby
Article.insert_all([
# created_at、updated_atが存在しrecord_timestampsをfalseにする場合、attributesの中に書いておく必要があるので注意
{ title: “How to use qiita”, author_id: 1 },
{ title: “Why does elasticsearch use inverted index?”, author_id: 2 }
])
“`しかし、一つのレコードしか作らないのに`insert_all`を使うために配列を作るのは少々大仰な気がします。
## そこでinsertメソッド
【もうやらかさない】開発DBのデータを全部消しちゃったお話(改善策もあるよ)
## はじめに
どうも、もきおです。未経験から自社開発企業に入社して半年以上経ちましたがつい一週間前くらいに盛大にやらかしたのでその際のお話をしていきたいと思います。Slackでの会話
先輩「あれ?開発DBのデータ消えた・・・?」
メンバー「僕もDB見れなくなりました、、」
先輩「全部消えてるよね、、」この時ハンパない冷や汗をかいてました。心当たりがめちゃくちゃあったからです。
そう、開発DBのおそらく何千万というデータというデータを消してしまったのは紛れもなく自分でした。## なぜデータを消してしまったのか?
毎回テストを走らせるためにテスト用DBを作成しているのですが、テスト途中で止まってしまいそのまま進まないという事象が起きていました。
“`ruby:
rails db:create Rails_ENV=test
rails db:migrate Rails_ENV=test
“`
そのためmigrateが上手くできていないと感じ、一旦テストDBをリセットしようとしたら“test“を指定せず以下のコマンドを打ってしまい開発DBのデータを全てリセットしてしまった
The resource ファイル名 was preloaded using link preload but not used within a few seconds from the window’s load event.
## はじめに
RubyonRailsでアプリを開発していた時にjsを用いて写真プレビュー機能の作成時に起こったエラーです。
今回は2つの解決法を使って解説しましたので自分に合った解決法が見つかれば幸いです。### 使用する環境
– MacOS(M1)
– Rails 6.1.4
– Ruby 2.6.3
– yarn 1.22.17
– Homebrew 3.5.0### エラー文
「The resource ファイル名 was preloaded using link preload but not used within a few seconds from the window’s load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.」## 解決法1:特定のページでのフルリロードを実行する
Before
“`application.html.erb
<%= javascript_pack_tag "application"
undefined method `permit’ for “1”:String に手こずった。
# はじめに
本記事はプログラミング初心者が、railsの学習を進めながら、躓いた部分、解決した箇所、またそれらの解決方法を備忘録も兼ねてまとめているものです。
最初はprogate。そのあと、「現場で使える RubyonRails5 速習実践ガイド」(通称)「現場Rails」を参考に進めていきました。
そのため、記事の内容には誤りがある可能性があることをご理解ください。
誤りがあればお手数ですが、ご指摘いただければと思います。よろしくお願いします。# 環境
Ruby 3.1.2
Rails 7.0.3.1“`ruby:new.html.slim
– if @user.errors.present?
ul#error_explanation
– @user.errors.full_messages.each do |message|
li = message
dl
= form_with model: @user, url: ‘/users’, local: true do |f|
.form-group
f.label 名前
初めてのウェブサービスに縦書きエディタを選んだ理由(2)
# 1.はじめに
55歳を過ぎてWebの勉強を始め、[縦書きエディタ](https://www.sakubun.tokyo)を開発した[前回の記事](https://qiita.com/tategaki3/items/14266860629892376d29)が、思いのほかよく読まれたので、勝手に続編を上げさせてもらいます。コーディングも開発も技術系記事の執筆もなにもかも手探り。おかしい面も多々あることかと思いますが、遠慮なくご指摘ください。# 2.縦書きにこだわる理由
さて前回、縦書きエディタを開発した理由にGIGAスクールが関係していると書きました。児童・生徒が学校で使うChromebookのGoogle系ツールに縦書き機能がなく、国語の先生が困っているという話です。Googleは欧米の企業なので、Googleドキュメントなどが横書きなのは自然なことです。問題は日本語が縦書きも横書きもOKなことです。日本で出版される小説や文庫本、新書などは縦書きが主流ですが、技術系の雑誌や本はほとんどが横書きです。縦書きの文化を担ってきた出版、雑誌、新聞などのマスコミ業界はいずれも斜
完全未経験が2ヶ月半で一からWebアプリを作ったお話
# はじめに
ポートフォリオとして作成したWebアプリの紹介記事です。
アプリを作成する際に自分が何を考えて作成したのか、その過程をご紹介します。
苦労したことや楽しかったことなどもまとめましたので、是非最後まで読んでいただければと思います!# 簡単に自己紹介
* 商社の営業マンとして働く29歳
* ポートフォリオ作成前は、Progateで基礎学習、Railsチュートリアルを一通りした程度# アプリの概要と開発背景
### アプリ概要
* 自分の欲しいものを管理して支出予測するアプリです。
* サービス名は『Wantest』にしました。
* 欲しいものを登録して一覧化し、その合計金額を表示させます。### 開発背景
* アプリの制作理由
みなさんは欲しいものを買うか迷ったり、欲しいものを買ってみて後悔した経験はありませんか?
私自身、本を買っても読まなかったり、ゲームを買っても結局やらなかったりと、買って後悔した経験が多々あります笑。
このアプリはそんな経験を少しでも減らせればという思いで開発に至りました。* 誰のどんな課題を解決するか
**欲しいものを買うか迷っている
[Rails]HerokuでRedis+Sidekiqを使用したActive Jobを実行させる
### 前提
記事を書いている私は現役のエンジニアではなくエンジニアを目指して学習中の者です。
よって、気をつけてはいますが記述内容には誤った内容が含まれている危険性があります。
その為この記事は参考程度に読んで頂き詳しい内容は公式の記述を参考にすることをおすすめします。### この記事で実装すること
Redis+Sidekiqを使ってactive jobを実装してそれをHeroku環境で実装する手順を説明します。
ローカル環境では既に実装している前提で進めるのでローカルでの実装方法が気になる方は以下の記事を参考にして下さい。[Sidekiqってどんなキック?](https://dev.icare.jpn.com/dev_cat/sidekiq/)
[【Rails7】Redis+Sidekiq+Active Jobで指定した日時に非同期処理を行う](https://zenn.dev/yoiyoicho/articles/03863702867eb0)### 使用技術
Ruby 3.1.2
Rails 6.1.6
Redis
sidekiq### 実装手順
### 1,
Userモデル、usersテーブル作成とバリデーション【10日目】
# 概要
– Userモデルを作成
– usersテーブルを作成
– TDDでバリデーション# 1. モデルとマイグレーションファイルの作成
– `rails g model user`でモデルを作成
– 自動的にマイグレーションファイルが生成される
# 2.マイグレーションファイルの編集
– マイグレーションファイルの中身を編集
# 2. テーブル作成
– `rails db:create`でusersテーブルを作成
# 3. モデルの編集
– rspecでテストを書いてfailedを確認
– モデルにvalidation書く
– テストが通るか確認# その他
– bcryptをgemでインストール
– has_secure_passwordでパスワードをハッシュ化
– パスワードのカラム名はpassword_digestへ
– 一意性(uniqueness)のバリデーションはDBレベルでも行う# 参考
– [Ruby on Rails チュートリアル](https://railstutorial.jp/chapters/modeling_users?version=6.
議事録
# 研修が終わって
一ヶ月半ほどの研修を終えて早々、プロダクトの機能の追加を頼まれた僕は意気揚々とコーディングに取り掛かろうとしたが、まず最初に立ちはだかった問題が多かった。## 足りなかった知識
・linux
・TCP/IP(ネットワーク)
・git### linux
まず最初に環境構築をする上でコマンドラインで色々設定する上で指示をされるのだが、ssh接続のコマンドの細かいオプションやIPアドレスを調べるコマンドを知らずにため息を疲れる場面が多々あった。また権限に関してもとても重要であるのにも関わらずうまく指示通りのコマンドを打てなかった。### TCP/IP
基本的に指示をされる上で多くのカタカナが出てくるがほとんど理解できなかった。おそらくTCP/IPの知識が必要である。どのIPアドレスがどういうものなのかという理解がなかった。### git
gitに関しては共同開発をする上での最低限の知識コマンドを必要である。## rails
基本的なモデル、データベース操作の練習が足りない。どのようにコードを書いたらどのようなデータが取り出せるのかは、コードをひたすら
Rails7をちょっと試す(turbo_frame_tag でページの表示を速くする編)
## はじめに
Rails 7.0.0 には、 [Turbo](https://github.com/hotwired/turbo-rails) が組み込まれています。
今回はその中で、 `turbo_frame_tag` を試してみたいと思います。
`turbo_frame_tag` を使ってページの表示速度を改善してみます。以下のバージョンで確認しました。
– Ruby 3.0.2
– Rails 7.0.3.1## 前準備をする
今回は前準備に少し手間がかかります。
## Rails プロジェクトを作る
新しくRailsプロジェクトを作ります。このとき `
(データベースオプションを指定しているのに深い意味はありません。)“`shell
mkdir rails_sandbox
cd rails_sandbox
rails new . –database=postgresql
“`## model を2つ作る
`User` と `Book` の2つの model を作ります。
“`shell
bin/rails g model User nam
Gitコマンドでrbenv version ruby-2.7.4′ is not installedtというエラーが出る
# はじめに
この記事は2022年4月にまとめていた「細かいつまずいたことをメモしておく(4月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
Gitコマンドを叩くと以下のエラーが出るようになってしまった
“`
rbenv version ruby-2.7.4′ is not installed
“`またブランチを変更してもでてしまう
# 解決方法
これはovercommitをインストールしたことに起因していた
overcommitは.gitのホックに直接設定を書き込むためにブランチを変更してもその設定は引き継がれている
そのためブランチを変更して`overcommitがはいっていない状態`にしても動いてしまうのでエラーが発生するovercommitを追加したブランチを早くマージする必要がありました
Railsのコントローラ
### コントローラの作成コマンド
今回はBooksコントローラを作成します
“`ruby
rails g controller books
Running via Spring preloader in process 51297
create app/controllers/books_controller.rb
invoke erb
create app/views/books
invoke test_unit
create test/controllers/books_controller_test.rb
invoke helper
create app/helpers/books_helper.rb
invoke test_unit
invoke assets
invoke scss
create app/assets/stylesheets/books.scss
“`このように表示させる
RailsのbrakemanでSexpTypeErrorがでる
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
Brakeman実行すると以下のエラーが表示された
“`
/myapp $ brakeman
Loading scanner…
Processing application in /myapp
Processing gems…
[Notice] Detected Rails 6 application
Processing configuration…
[Notice] Error while processing /myapp/config/application.rb
[Notice] Escaping HTML by default
Parsing files…
Processing initializers…
/usr/local/bundle/gems/brakeman-4.7.2/lib/ruby_parser/bm_sexp_processor.r
RspecでMissing host to link to!とエラーがでる
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
Rspecを実行したところ`Missing host to link to!`というエラーが発生した
# 解決方法
test環境のデフォルトURLを追加すれば解決する
“`rb:/config/environment/test.rb
config.action_mailer.default_url_options = { host: ‘localhost:3000’ }
“`# 参考
https://qiita.com/daik/items/41a9bc8dec5ccec37f40
Rspecでuninitialized constant Rack::MiniProfileがでて実行できない
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
Rspecを実行したところ以下のエラーが発生した
“`
Failure/Error: require_relative ‘../config/environment’NameError:
uninitialized constant Rack::MiniProfiler
Did you mean? MiniMime
“`# 解決方法
`Gemfile`の`rack-mini-profile`に`require: false`をつけて、`/conifg/environment/rack-profile.rb`を編集する
“`Gemfile:Gemfile
gem ‘rack-mini-profiler’, ‘~> 2.0’, require: false
“`“`rb:/config/environment/rack-profile.rb
if de
Railsのdevice_token_authでパスワード再設定で参考にした記事
# はじめに
この記事は2022年2月にまとめていた「細かいつまずいたことをメモしておく(2月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 参考
https://footlog-blog.net/posts/20220103-the-event-of-no-redirection-by-resetting-the-password-of-devise_token_auth/