U-Yuri’s 健忘録

U-Yuri’s 備忘録

プログラミングを勉強しています。アウトプットに活用しているブログです。

【Rails】管理者用画面(お知らせ文編集ページ)を作成 gemなし

はじめに 自身で作成した'mudazero'アプリに、アップデート情報などを通知するお知らせ機能を追加したいので、管理者だけがお知らせを作成できる機能を実装したい。 大まかな流れ Userがadminかどうか判断 adminであればお知らせ作成画面を表示することがで…

【Rails】よくやってしまうミス

==を=にしがち!!!!! if current_user.admin == true

【Rails】ステータスコードを返す(401を返したい)

renderメソッドのstatusというオプションを使用。 render status: 401 今回の実装 class AdminController < ApplicationController def admin if current_user.admin = true render "admin" else render file: "#{Rails.root}/public/404.html", status: 401…

【Rails】テーブルの追加(sqlite3)

はじめに 管理者画面を作成するために、Userテーブルにadminの列を追加したい。 テーブルの追加手順 変更するためのファイルを新しく作成し変更していく形になる。 1. $ rails g migration クラス名 カラム名:データ型でカラム追加や削除のためのファイルを…

【Rails】外部キー制約の参照制約 (SQLite3::ConstraintException: FOREIGN KEY constraint failed)

はじめに delete機能を実装したが、デリートしたいテーブルを参照しているテーブルに影響が出るため「SQLite3::ConstraintException: FOREIGN KEY constraint failed」というエラーが出た。 そのため、まずは参照しているテーブルを削除する必要がある。 そ…

【Rails】formについて(外部キーやらIDやら)

<h2>ポケモン</h2> <% @pokemons.each do |pokemon|%> <%= form_with method: :post, model: @deck do |form| %> <input type="hidden" name="pokemon_id" value="<%= pokemon.id%>"> <%= pokemon.name %> <%= form.submit "追加" %> <% end %> <% end %> IDをひとつづつDBに格納したい。 name=key value=値になる 一つのフォームにひと…

【nginx】nginxのコマンド

主に使用するコマンド 起動 $ sudo service nginx start 再起動 $ sudo service nginx restart 設定ファイル $ sudo vim /etc/nginx/nginx.conf

【Rails】Active Storageで投稿した画像が大きすぎるというエラー(nginx)

Railsでの設定か、nginxでの設定であるため、まずはnginxのエラーログを見る。 $ sudo less /var/log/nginx/error.log #最新のログを見たいので、shift + g で最新のログへ 2024/04/25 22:42:43 [error] 2878351#2878351: *2304 client intended to send too…

【Rails】デプロイ-ドメイン当て-

$ sudo vim /etc/nginx/nginx.confでserver_nameを変更する。 server{ server_name 〇〇.com; #ここにドメインを入れる。 proxy_set_header X-Forwarded-Host $host; location / { proxy_pass http://127.0.0.1:3500; } } SSL化については以下の記事参考。 ⑤…

【Rails】サーバーの自動起動の設定

/etc/systemd/system/に〇〇.serviceファイルを作成する。※〇〇はなんでもいい(アプリの名前)。 [Unit] Description=Mudazero App #アプリの説明 After=network.target #ネットワークの準備ができた後 [Service] Type=simple User=debian #自分のパソコン…

【Rails】デプロイ①(サーバー内に複数アプリがある場合)

①SSHでさくらVPSで繋げる $ ssh debian@〇〇vs.sakura.ne.jp ②rails側のcomfig/puma.rbを編集しポート番号変更。 #3000になっていたのを、3500に変更(3000は違うアプリで使用しているので)。 port ENV.fetch("PORT") { 3500 } ③上記変更をGithubにpush ④$ …

【Vim】vimのあれこれ(コマンド)

#横にナンバーが表示されるコマンド(エラーがあるときに便利) : set number #コピペしたいとき : set mouse =

SSHでさくらVPSに繋げる

% ssh debian@〇〇.vs.sakura.ne.jp debian@のユーザ名を忘れないように。

【Rails】formのIDを含むactionの作成

<%= form_with model: @deck do |form| %> <h2>ポケモン</h2> <% @pokemons.each do |pokemon|%> <input type="checkbox" name="" value=""><%= pokemon.name %> <% end %> <h2>エネルギー</h2> <% @energys.each do |energy|%> <input type="checkbox" name="" value=""><%= energy.name %> <% end %> <%= form.submit "登録" %> <% e…

【Rails】よくやるミス(undefined method 'each'for nill:NilClass)

インスタンス変数を定義した場所(順番)をしっかり見ること。 renderより前に記述していないか確認!!!!

【Rails】フォームの未入力を阻止

フォームが空で送信されるのを防ぐために、空項目ではフォームの送信ができないようにする方法。 required: trueを記述することで制約できる。 <div><%= form.label :商品名 %> <%= form.text_field :name, required: true %></div> 参考記事:RailsのSelectフォームで…

【Rails】日本語化したら通貨表示がおかしくなった

devise-i18n、rails-i18nを導入したところ、通貨表示が「¥30000」→「30000¥」になってしまった。 config/locals/ja.ymlで設定できる。 config/locals/の中にja.ymlを準備(rails-i18n/rails/locale/ja.yml at master · svenfuchs/rails-i18n · GitHubをコピ…

【Rails】ログイン画面を日本語化

ログイン画面を日本語化するまで gemをインストールする まずはgemをインストールする。Gemfileに以下を記述。 gem "devise-i18n" gem 'rails-i18n', '~> 7.0', '>= 7.0.8' #自分のrailsのバージョンを確認 rails-i18n | RubyGems.org | コミュニティのgemホ…

【Rails】link_toの使い方

今回はdivで作成したbox自体にリンクをつけたい場合 link_to <% @wants.each do |want| %> <%= link_to(want) do%> <div class="box"> <div class="back_img"> <%= image_tag want.image.variant(resize_to_limit: [200, 200])%> <p class="under_text">¥<%= want.money %></p> </div> <%= want.name %> <small><%= want.category.name %></small></div>

【Rails】timestampを日本時間に変更する

timestampの時間をUTC(協定時)から日本時間へ変更 config/application.rbにconfig.time_zone = 'Tokyo'を追記する。 module Mudamuda class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version.…

【Rails】Active Storageを使用し、画像投稿のフォームを作成する

セットアップ % rails active_storage:install Copied migration 20240327082510_create_active_storage_tables.active_storage.rb from active_storage % rails db:migrate == 20240327082510 CreateActiveStorageTables: migrating ======================…

【Git】オリジナルコマンド作成

git のaliasの後にオリジナルコマンドを入力、その後元のコマンドを入力し実行。 % git config --global alias.co checkout 以下の方法で~/.gitconfigの[alias]部分に直接書き込むことも可能。 macuser@MacUser-no-MacBook-Air Pokeca % cat ~/.gitconfig [u…

【rails】複数の外部キーを設定しrubyでテストする方法

①テーブルの作成 $ rails g model Pokemon sinka:string name:string special:string hp:integer zokusei:string ②rails db:migrateでmigrateファイルを作成 ③db/migrate/~_create_pokemons.rbを編集 class CreatePokemons < ActiveRecord::Migration[7.0] d…

【sqlite3】元々あるテーブルに追加して外部キーを設定していく方法

■環境 ・rails ・sqlite3 ・あらかじめ外部キーを設定したいテーブルは作成済み ①テーブルを作成(カラムに何も入れずテーブルだけ作成) $ rails generate model Card_in_deck ②$rails db:migrateでテーブルを作成 ーーーーーーーーーーーFKの設定ーーーーー…

【code】ターミナルでVScodeを開く

いつもあるタイミングでcodeコマンドが使えなりその度検索するのでここに記録する。 ■環境 ・mac ・ターミナル ■手順 ①VScode上でmac: shift + command + P (WindowsではShift Ctrl + P) ②検索バーから「code」を検索しインストール 解決! 参考:ターミナ…

⑤Railsアプリをデプロイするまで【SSL】【Let’s Encrypt】

はじめに RailsアプリをさくらVPSにデプロイし、ドメインを当てるところまでできたので、今度はLet’s Encryptを使用しSSL化していきます。 環境 Rails さくらVPS Debian nginx SQLite3 Let's Encrypt から 発行料 無料の SSL/TLS サーバー証明書を取得する $…

④Railsアプリをデプロイするまで【ドメインを当てる】

はじめに 前回の続きです。 前回はGoogleドメインでサブドメインを作成しました。 今回はデプロイしたRailsアプリにサブドメインを当てていく作業です。 環境 Rails さくらVPSDebian nginx SQLite3 $ sudo vim /etc/nginx/nginx.conf 内のserver_nameを欲し…

③Railsアプリをデプロイするまで【Googleドメインでサブドメイン作成】

はじめに 前回の続きだが、現在のrailsアプリには現在さくらVPSの初期設定のドメインが当ててある。そこで当てたいドメインにサブドメインを作成しド面を当てていこうと思う。 サブドメインの作り方について都度検索しているのでここに備忘録として残してい…

nginxの操作など【debian】【備忘録】

nginxの設定を行うファイル $ /etc/nginx/nginx.conf nginxの設定チェック $ sudo nginx -t リロード $ sudo systemctl reload nginx 再起動 $ sudo systemctl restart nginx

②Railsアプリをデプロイするまで【nginx】【puma】

nginxのwelcomeメッセージが表示される(自分の作成したアプリではない) $ sudo vim /etc/nginx/nginx.conf 内の設定を変更(include /etc/nginx/sites-enabled/*;をコメントアウトに) include /etc/nginx/conf.d/*.conf; # include /etc/nginx/sites-enable…