- 1. fly.ioのビルドをやり直す。(備忘録)
- 2. Hotwire勉強会ログ (1) Turbo
- 3. Hotwireへようこそ
- 4. puma-dev 環境での RubyMine を使ったデバッグ方法
- 5. プログラミングが副業になるロードマップ
- 6. 【Vue】railsにVueをインストールしてみた。
- 7. 画像をクリックしてファイルを選択して即時変更する
- 8. Vue3、Rails7系を使って「Hello Vue」を表示させるまで
- 9. AndroidのPush通知でFcmpush gemを使ってみた
- 10. 複数チェックボックス付き投稿・一覧表示・検索機能【RubyOnRails】
- 11. 【個人開発】今のあなたの感情に合った音楽を提案、私はこんな感情の状況のときに、こんな曲を聴くよ!を共有できるアプリを作りました!
- 12. Fly.ioにRailsアプリをデプロイした時に色々なエラーが出たので解決した
- 13. RailsのCurrentAttributesをより有害にするGemを作ってみた
- 14. シンプルな管理者機能【RubyOnRails】
- 15. Reactで永続性を持たせる方法
- 16. 遷移前のリクエストを使ってリダイレクト
- 17. devise_token_authを使ってGETリクエストをすると/omniauth/sessionsへリダイレクトする
- 18. 構造化データについて
- 19. devise導入していれば使えるauthenticate_user!について
- 20. railsにおけるテーブル修正の流れ
fly.ioのビルドをやり直す。(備忘録)
railsをfly.ioにデプロイする時の備忘録です。
ビルドからやり直そう??ってなった時のメモ書き的なやつです。
ちゃんと調べたら一発でやり直すコマンドとかあると思うので、急いでる人向けです。半ば強引に消しているので、ご自分のアプリはしっかりコピーを取っておいてください。
# STEP1. fly.ioのページから自分のdb関連を消す
1-1.まずはDashboardを開きましょう
https://fly.io/dashboard1-2.開いたらApps内の内容(スクショ赤線範囲内)を消していきましょう
一度もリリースしたアプリがない方は全て消して大丈夫です。
![apps_range.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1874115/9ecd3fb3-e904-3280-1f9e-413fd9bd88c4.png)
`消すやつを選択`→ `サイドバーのsettings` → `Delete app` → `ファイルの名前を打ち込んで「Yes, delete it」`
Hotwire勉強会ログ (1) Turbo
# はじめに
Rails 7から標準となったHotwireについて勉強会をしました。前半はTurboで後半がStimulusです。場所はSENQ六本木のスカイテラスで、晴れていたのですが少し寒かったかもしれません。
https://www.senq-web.jp/office/roppongi
Railsで有名な万葉さんもHotwireをやっていくそうです。
https://note.com/everyleaf/n/ncc0b77578c58
私の場合は最近のRailsのJavaScriptの機能は使っていなくて、Turbolinksはオフにすることが多かったです。Rails 7ではHotwireが標準になってrails-ujsもフェードアウトしていきそうなので、ここは観念して勉強しようと思いました。
そしてForkwellさんのDHHへのインタービュー動画を見たことも影響しました。
【Vue】railsにVueをインストールしてみた。
# バージョン情報
* ruby 3.0.0
* rails 6.1.6.1
* yarn 1.22.19今回は、ここからVue3を導入していく。
# インストール
インストールコマンドは以下の通り。
“`
$ yarn add vue@next vue-loader@next @vue/compiler-sfc
“`
これを実行すると以下のように出力されてインストール成功。5分とかからない。
“`
yarn add v1.22.19
[1/4] Resolving packages…
[2/4] Fetching packages…
[3/4] Linking dependencies…
[4/4] Building fresh packages…
success Saved lockfile.
success Saved 12 new dependencies.
info Direct dependencies
├─ @vue/compiler-sfc@3.2.45
├─ vue-loader@17.0.1
└─ vue@3.2.36
info All d
画像をクリックしてファイルを選択して即時変更する
意外と参照できる記事がなかったので記述(基本的すぎて書いてないだけかも…)
通常の場合は“`ファイルを選択する“`ボタンを押して、submitボタンを押すことで変更が適用されます。
これを画像をクリックして、ファイルを開いたと同時に変更が適用されるようにしていきます。# 求める挙動
画像をクリックしてファイルを選択して即時変更する![qiita_file.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77737/84b7e8f9-8160-9f1f-a699-247fa0218072.gif)
# 実装手順
①「ファイルを選択」を押して、ファイルを選択して、submitを押せば画像が変更できるようになる
②画像をクリックして、ファイルを選択して、submitを押せば画像が変更できるようになる
③画像をクリックして、ファイルを選択して、submitを押さなくても変更が即時適用される# 実装
### ①「ファイルを選択」を押して、ファイルを選択して、submitを押せば画像が変更で
Vue3、Rails7系を使って「Hello Vue」を表示させるまで
Vue3、Rails7系を使って、何かアプリを作ってみたいなぁと思い、環境構築の段階で
学んだことを備忘録として残そうと思いました。# 環境
ruby 3.1.0
Rails 7.0.4
vue@3.2.41
# railsの初期化railsの初期化(アプリ作成)
“`ruby
raiils new sample_app
“`
# vueの初期化**次にvueを導入していくが、いきなりつまりポイント**
railsの標準に搭載されているwebpackerでvueを導入していくつもりが・・・
“` ruby
rails webpacker:install: vue
=> Don’t know how to build task ‘webpacker:install:vue’
“`コマンドが使えない・・・
[曰く](https://github.com/rails/webpacker/issues/3052) rails7系 では、vueのインストールコマンドがなくなっているっぽい。というか、[引退宣言](https://github.com/rails
AndroidのPush通知でFcmpush gemを使ってみた
# はじめに
皆様、こんにちは!
佐久間まゆちゃんのプロデューサーの[@hiroki_tanaka](https://note.com/hiroki_tanaka)です。最近、Railsアプリから送信しているAndroidアプリ向けのPush通知をGCMからFCMに移行しました。
その際に[fcmpush](https://github.com/miyataka/fcmpush)というFCM送信処理を扱うGemを使用したので、使い方を紹介させてください。# 利用環境
– Ruby 2.7.2
– Rails 6.1.7# FCM通知とは
FCMとはFirebase Cloud Messagingのことで、サーバからAndroidアプリにPush通知を送信できるようにするサービスです。
FCMを使用してPush通知を送信することで、ユーザーにアプリのアピールやイベント毎のお知らせなどを行うことができ、アプリへの再訪率や定着率の向上に繋げることができます。FCMの前身としてGCMという通知処理がありましたが2019年4月にサポート終了しているため、2022年現在ではGCMの
複数チェックボックス付き投稿・一覧表示・検索機能【RubyOnRails】
## 目標
– __投稿する際に事前に用意した選択肢からチェックボックスを生成、チェックをつけさせ、その情報をデータベースに保存する。__
– __投稿を一覧表示した際にチェックを付けた項目も見れるようにする。__
– __投稿する際に付けたチェックをもとに投稿を検索することができる。__## 環境
– Ruby 3.0.4
– Rails 6.1.7## 前提
– 投稿機能実装済み。
– 今回は関係ないですが、User機能、いいね機能も実装済みなので、そこら辺の記述は読み飛ばしてください。## 完成形
##### コントローラー(投稿を扱うもの:今回はtweet_controller.rb)
“`ruby:tweet_controller.rb
class TweetsController < ApplicationController before_action :authenticate_user! @@selections = ["てつや","しばゆー","ゆめまる","りょう","むしめがね","としみつ"] #中略 def index
【個人開発】今のあなたの感情に合った音楽を提案、私はこんな感情の状況のときに、こんな曲を聴くよ!を共有できるアプリを作りました!
![ogp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457972/600c041f-17cf-466f-7421-45bed4284ecb.png)
▼サービスURL
https://www.your-song.site▼github
https://github.com/Hiro929/your_song## はじめに
早速ですが、みなさん、音楽を聴こうとしたとき、何の曲聴こうかなと悩んだことありませんか?
私の場合、ハマっている曲があれば、それを聴くことが多いですが、そうでない場合は「どうしようかな〜」となることが多いです。
また、悲しい時(落ち込んだ時)など、何聴こうかな〜となることが多いです。
そういった時に、おすすめの曲を提案してくれるものがあればいいなと思いました。また、自分はこの曲に助けられているから聴いてみて!とオススメできて、ユーザーの方が落ち込んでいる方などの助けを少しでもできるようにしたいと思い、本サービスを作りました。## サービス概要
主な機能は、2
Fly.ioにRailsアプリをデプロイした時に色々なエラーが出たので解決した
# 環境
– OS
– エディション Windows 10 Home
– バージョン 21H1
– OS ビルド 19043.2130
– `ruby –version` -> `ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]`
– `rails –version` -> `Rails 6.1.7`
– `flyctl version` -> `flyctl.exe v0.0.435 windows/amd64 Commit: c5149629 BuildDate: 2022-11-22T16:41:44Z`
# 背景
HerokuのPostgres無料プラン終了に伴い、HerokuにデプロイしていたRailsアプリをFly.ioにデプロイし直しました。
基本的には以下の記事を参考にデプロイしましたが、記事内に出てこないエラーに遭遇したので、どのように解決したかを書いていきます。
[Fly.ioでデプロイする手順(Window) – Qiita](https://qiita.co
RailsのCurrentAttributesをより有害にするGemを作ってみた
## なんでこんなGem作った?
こんにちは!合同会社イービルマーシャンズと合同会社Sampo Development代表のサンポです。
フィンランドから台湾経由で日本に来ました。
(このGemは一切Evil Martiansと関係ありません)CurrentAttributesは有害と言われる時もありますが、より有害にできないか、という想いから今回のGem作りを始めました。
面白そうなので、もっと便利に使えるようにしました。
RubyGemsは[ここ](https://rubygems.org/gems/super_current)で、ソースは[ここ](https://github.com/sampokuokkanen/SuperCurrent)で確認できます。
## CurrentAttributesとは何か?
ActiveSupport::CurrentAttributesはRailsの便利機能の一つです。
グローバルで使える値を設定できるので、値を渡さないといけないことが少なくなります。
そしてリクエストごとに自動的にリセットされるので、データの漏洩も心配なし!(
シンプルな管理者機能【RubyOnRails】
## 目標
__事前に設定した管理者用パスワードを打ち込んだ場合のみ、管理者用メニューを見れるようにする。__## 環境
– Ruby 3.0.4
– Rails 6.1.7## 方針
管理者用ログインボタンから管理者用パスワード入力画面(`admin_session`)に遷移させ、入力した内容を`admin_authentication`に送り、事前に`.env`上に用意しておいたパスワードと一致したときのみ、メニュー画面(`admin_index`)を表示(リダイレクト)させる。一致しない場合は管理者用パスワード入力画面(`admin_session`)を表示(リダイレクト)させる。## 完成形
##### コントローラー(トップページを扱うもの:今回はhello_controller.rb)
“`ruby:hello_controller.rb
#前略def admin_session
enddef admin_authentication
if params[:input_password] == ENV[
Reactで永続性を持たせる方法
今回はログインの時などでReactで永続性を持たせる方法について紹介します。
### Reactで永続性を持たせる方法
結論から言うと、localstorageを使えば大丈夫です。
これ以外の方法もありますが、今回はlocalstorageを使用します。
localstorageでは、ローカルのStorageオブジェクトにアクセスでき、そこに
保存することができます。sessionStorageと違いは、sessionStorageだと保存されたデータはセッションが終わる(ブラウザを閉じる)と同時に消去されることです。
localstorageだと、キャッシュなどを削除しない限りは残るので安心です。
“`javascript
const SignIn: SubmitHandler= (email: any) => {
alert(“ログインしました”);
signInWithEmailAndPassword(auth, email.email, email.password)
.then((userCr
遷移前のリクエストを使ってリダイレクト
# request.referer
遷移元のurlを取得する
“`
request.referer
“`
https://qiita.com/takazi/items/9b1c82d8fcc602df8a1a# これを使って一つ前のページにリダイレクトする
“`rb
redirect_to(request.referer)
“`
成功。# 感想
これでよかったのだろうか?
結果これで自分の中の問題は解決された。
これを参考にできるかは微妙だ。
devise_token_authを使ってGETリクエストをすると/omniauth/sessionsへリダイレクトする
`http://localhost:3000/admin/auth/sessions`へGETリクエストをaxios経由で行うと、意図せず`http://localhost:3000/omniauth/sessions` へリダイレクトしてしまう。
以下がログ。
“`
Started GET “/admin/auth/sessions” for ::1 at 2022-03-04 17:51:33 +0900
Started GET “/omniauth/sessions?namespace_name=admin&resource_class=AdminUser” for ::1 at 2022-03-04 17:51:33 +0900ActionController::RoutingError (No route matches [GET] “/omniauth/sessions”):
“`こんなときはroute.rbを以下の通り変えてあげると解決する。
“`diff_ruby:config/routes.rb
namespace :admin do
mount
構造化データについて
# 構造化データとは
## appleのmacbookについて説明したいけど、、
appleのmacbookの情報をWebページで紹介しようとした時、人間の目ではりんごとmacbookの区別がつきますが、
検索エンジンが理解する言語は人と異なるため、別途説明がないと、りんごに関する情報のWebページだと認識するかもしれません。もちろんmetadata等に明確に情報が明記されていれば、検索エンジンもコンテンツの内容を把握してくれると思いますが、
そうではない場合は意図したように認識してくるない可能性があります。
| ページ名|説明したい内容|
|——-|:———-:|
|appleMacbook.html|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2350392/0dc1436f-1dc4-0765-9eba-4e5c25935cf4.png)
|apple.html|![image.png](https://qiita-image-store.s3.ap-n
devise導入していれば使えるauthenticate_user!について
# はじめに
備忘録です。## authenticate_user!とは?
主に2つ理解する必要があります。・deviseのメソッドである
・ユーザがログインしているかどうかを確認し、ログインしていない場合はユーザをログインページにリダイレクトする。## authenticate_user!の使い方の一例
before_action :authenticate_user!, except: [:show, :index]
基本的にはbefore_actionと一緒に使います。上記のコードの意味としては、
全てのアクションの前に、ユーザーがログインしているかどうか確認する。
ただし、showアクションと、indexアクションが呼び出された場合は、除くよ。という意味になります。基本的にindexアクションや、showアクションはログインされていなくてもみられるアプリが多いためです。
(Twitterはログインしていなくても、ツイートの一覧、ツイートの詳細は見ることができる)## 参考記事
https://qiita.com/gogotakatak
railsにおけるテーブル修正の流れ
# はじめに
テーブル設計を誤り、実行する中で間違いに気がついたとき、どのようにテーブルの修正を行えば良いかわからなくなってしまったため、記録に残す。
誤っている解釈があれば、ご指摘お願いします。## テーブルの修正で気にかけること
– マイグレショーンファイルのstatusをup→downへ変更
rails db:migrate:statusでstatus状況を確認→rails db:rollback
– モデルの削除
rails d model モデル名
(マイグレーションファイルも同時に消される)