学習記録

アウトプット用に作りました

2021-01-01から1年間の記事一覧

ログイン後にログインページとサインアップのページに遷移できないようにする

ログインしているユーザーがログイン画面、またユーザー新規登録画面にアクセスできるようになっていたので修正していこうと思います。 どうやって直していくのか少し考えます、、、 ビューファイルでも、モデルでもなくコントローラをいじらないといけない…

パスにuser_idを含まない仕様にする

参考にしたサイト https://blog.takady.net/blog/2015/11/29/rails-routing-with-username-instead-of-id/ 現在のパスにuser_idが含まれているままだとアプリのユーザー数がわかってしまったり、もしデータベースからユーザー情報が消えてしまった場合、同じ…

お問い合わせ機能の実装

参考にしたサイト https://www.web-knowledge-info.com/wp/ruby-on-rails26/ お問い合わせのページはフッターにリンクを用意してどのページからもアクセスできるようにします。 <%= link_to "お問い合わせ", "#", class: "copylight-link" %> お問い合わせの…

PFのテーマカラーを選択できるようにする

PFのテーマカラーがデフォルトのピンクとブルー系の2つからユーザーが選択して設定できるようにしたいです。 進めていく手順 Userテーブルにcolorカラムを追加する ユーザー新規登録ページとプロフィール編集ページにフォームを追加 コントローラのストロン…

ransackを使ったユーザー検索機能の実装

ransackについては以前ブログで何度かまとめました。日付検索や、プルダウン表示などをまとめていたと思います。 今回はユーザー検索のページと検索結果のページを分けて表示していこうと思います。 まず最初にGemfileにransackを追加して、bundle installし…

seed_fuを使って初期データを作成

以前seed_fuを使ってデータを作成したことがあったのですが、そのときには出会わなかったエラーに遭遇したので、記録として残しておきます。 以前書いたブログ seed_fuを使って初期データを作成 - 学習記録 ユーザーテーブルと日記テーブルの初期データを作…

フォロー機能を実装する

ポートフォリオで使用するために一度試しに実装してみたいと思います。事前にユーザー登録、ログインはsorceryで実装済みです。 参考にしたサイト Railsでユーザーフォロー機能を実装する(Ajax使うよ)① - Qiita テーブル設計 ユーザーフォロー機能の実装の…

RailsでMySQL導入、絵文字対応させる

rails new rails newして新たなアプリケーションを作成しようとしたら、指定したrailsのgemがないというエラーが出ました。 $ rails _6.1.3.1_ new sample --database=mysql --skip-test Traceback (most recent call last): 2: from /Users/SAYO/.rbenv/ver…

MySQLをインストールする

Homebrewがインストールされているかを確認。 Homebrew 3.1.7がインストールされていることが確認できました。 $ brew -v Homebrew 3.1.7 Homebrew/homebrew-core (git revision aacf707e0e; last commit 2021-05-15) Homebrew/homebrew-cask (git revision …

simple_calendarを使ってカレンダーを実装

gemのsimple_calendarをPFで使おうかなと考えているので、PFで実装する前に練習で使用してみることにしました。 GitHub - excid3/simple_calendar: A wonderfully simple calendar gem for Rails 使用方法 まず最初にGemfileにsimple_calenderのgemを追加し…

時間指定してLINEbotでメッセージを送信するpush機能を実装

LINEbotでメッセージおうむ返しアプリケーションを作成 - 学習記録 上記の記事の作業を事前に済ましている前提で説明していきます。時間指定をしたいのでRakeタスクとwheneverを使って実装していきたいと思います。 また以前書いたRakeタスクについての記事…

LINEbotでメッセージおうむ返しアプリケーションを作成

LINEbotにチャットでテキストを送信すると、同じ内容のテキストを返信してくれるアプリケーションを作成していきます。 やることリスト LINE Developersの登録と設定 Ngrokをインストールしてローカル開発環境を構築 LINEbotの実装 dotenvを使ってenvファイ…

nil? blank? empty?の検証

nil? blank? empty?の使い分け 似てるけど全然違う、使い分けが曖昧だったのでまとめてみます。0、nil、""(空文字)、" "(空白)、{}(空ハッシュ)、[](空配列)を例にして検証してみます。 nil? nilの場合のみtrueになります。 それ以外はfalseです。 pry(main)…

色々知識メモ

何時間後などの時間指定の方法 現在時から見て一時間後(未来) DateTime.now.since(1.hour) 現在時から見て一時間前(過去) DateTime.now.ago(1.hour) content_tag content_tagはビューでタグを記載するときに使います。セキュリティー面でとても良い書き方で…

Active Storageで複数枚の画像を添付する

Active storageについては以前まとめたのでこちらを参照してください。 今回は画像を複数枚同時にアップロードできるようにしていきます、またアップロードされている画像を個別に削除できるような実装もしていきます。 複数枚の画像を添付する has_many_att…

Swiperを使ってスライダー機能を実装する

Swiperとは 画像をスライダー形式に表示する機能を実装するものです。公式サイトを見るとたくさんのスライダーのデザインの見本コードをあり、参考にすることで簡単に実装することができます。 参考 : Swiper Demos Swiperを導入 まず最初にCSSとJSでSwiper…

課題10で参照したサイト

昨日などの日付の表し方 Rails で1日前とか1週間前とか - /var/www/yatta47.log ActiveRecordで日付・時刻の範囲検索をシンプルに書く方法|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社 ActionMailerのプレビュー RailsのAct…

モデルのポリモーフィック関連付け

ポリモーフィック関連付けを使うと、ある一つのモデルが他の複数のモデルに属していることを、一つの関連付けだけで表現することができます。 ポリモーフィック関連付け 市内の学校の情報を管理するアプリを想定します。 まず最初に赤枠で囲った部分を説明し…

APIを使わずにTwitterとYouTubeの埋め込み処理を行う

APIを使わずにTwitterとYouTubeのURLを入力したら埋め込み用に変換されて、記事に反映することが今回の最終目標です。 準備 ユーザーが入力するメディアタイプとURLの値を保存するためのカラムを用意します。 identifierはURLを保存するためのカラムです。 i…

simple_formを使って簡単に入力フォームを作成

simple_formとは 最低限の記述でformを生成することができるgemです。 simple_formを使うための設定 まずGemfileにsimple_formのgemを追加してbundle installします。 gem 'simple_form' generatorを起動させるコマンド実行します。 $ rails generate simple…

応用編課題9で参照したサイト

画像を複数枚アップロードする方法 【Rails6.0】Active Storageを用いた単数枚、複数枚画像投稿の実装手順をそれぞれ解説|TechTechMedia simple_formを使ってる時のmultipule: trueの書き方 【Rails5】carrierwaveとsimple_formで複数の画像をアップロード…

Active Storage

Actrive Storageとは Actrive Storageとは、ファイルアップロードを行うための機能です。この機能を使うことでフォームで画像の投稿機能などを簡単に作ることができます。 また画像などのファイルのアップロードを簡単にするメソッドが使用でき、画像を保存…

Punditを使って権限の管理をする

Punditとは リソースに対して、どのユーザーであれば処理が許可されるのかを定義するgemです。 参考 : GitHub - varvet/pundit: Minimal authorization through OO design and pure Ruby classes コントローラの各アクションで authorizeリソースオブジェク…

RailsAdminを使って管理者機能を実装

RailsAdminとは 管理画面をテンプレート的に作成できるgemの一つです。 railsにはたくさんの管理画面を実装できるgemがありますが、中でも簡単でデザインがとてもスタイリッシュだったので、RailsAdminのgemを使ってみることにしました。 参考 : rails管理画…

FactoryBotのtransientとコールバック

transientとは transientは実際に作成するデータと直接関係無い新しいattributeを定義する機能です。そこで定義されたものは実際のmodelにはセットされません。追加データとして利用するのが一般的です。 FactoryBotで使うコールバックとは 下記4つのコール…

CSVを使ってrails db:seedで初期データを登録

CSVとは CSVとは「カンマで値を区切ったもの」が入っているファイルで、カンマ区切りファイルともいいます。ファイルの拡張子は .csvです。実際のファイルの中身は次のようになっています。 このファイルとrails: db:seedを使って大量の初期データをデータベ…

STI(単一テーブル継承)について

STI(単一テーブル継承) 単一テーブル継承は、オブジェクトの継承関係を1つのテーブルで表現します。テーブルにはサブクラスを判断するためのカラム(type)を持たせます。 もしも同じカラムをもつテーブルが複数ある場合に、一つのテーブルにまとめて管理す…

Active Recordのattributeを使った更新メソッド

attributeとは 属性のことです。必要に応じて、既存の属性の型をオーバーライドすることができます。 attribute更新メソッド これからさまざまな更新メソッドを見ていきたいと思います。 単一のattributeを更新する 指定した一つのattributeのみを変更したい…

応用編課題8で参照したサイト

Twitterの公式、埋め込みに関して ウェブサイトやブログにツイートを埋め込む方法 Twitter Publish Twitterの埋め込み TwitterのAPIを使わずに任意のツイートを埋め込む方法 - Sakura scope 【Twitter】埋め込み処理をAPIに投げずにローカルで行う - mizuff_…

一時間ごとにRakeタスクを実行する

今回行いたいことは、公開待ちになっているブログの記事を公開日時になったら自動で公開してくれるような実装をすることです。 ここで使う機能として3つあります。この3つを使って実装していくので少しややこしく感じますが、一つずつ説明していきたいと思い…