- 1. メモランダム Rails tutorial 第5章
- 2. railsで一覧ページに[gem kaminari]を導入する流れについてまとめてみた。
- 3. YouTubeっぽいコメント欄を作ってみよう!(返信機能追加)
- 4. 【rails】Active Storage
- 5. rbenvを使用したRubyのバージョン管理
- 6. gitにてローカルで修正を加えたファイルを元通りにする方法
- 7. 【Rails Tutorial12章】パスワード再設定機能の実装手順を整理してみました【中編】
- 8. macでruby on railsを動かすための備忘録
- 9. CRUD処理について
- 10. AWSのトラブルシューティングメモ
- 11. Docker+PostgreSQLで立ち上げたDBにPosticoでアクセスする
- 12. 【Rails Tutorial12章】パスワード再設定機能の実装手順を整理してみました【前編】
- 13. 【Rails】タグ機能を実装する方法(gem未使用)
- 14. rails 開発日記3 投稿機能
- 15. Railsチュートリアル第5章
- 16. フォームやボタンでのURL指定について
- 17. 【HowTo】Simple Calendar/カレンダーをお手軽に導入してみる(投稿機能付き)
- 18. railsチュートリアル 13章 初心者が意識すべき事
- 19. rails db:createのエラー解決
- 20. 【CircleCi】Railsアプリに導入(設定ファイルについて)
メモランダム Rails tutorial 第5章
# Rails tutorial 第5章
# レイアウトを作成する
– apurike-syonnnibootstrapフレームワークを組み込み、カスタムスタイルを追加する。
– home, aboutへのリンクをレイアウトに追加。
– パーシャル、 railsのルーティング、Asset pipelineについて学ぶ。+ Sass。ユーザーログインへの第一歩も。# 1.構造を追加する
– webアプリケーション = ユーザインターフェース
– モックアップをスケッチ。
– この時点でブランチを作成。### ナビゲーション
– サイトのレイアウトがいるに HTMLを追加。
– internetExplorerのHTML5サポート不備を回避するJavaScriptのHTML5shimというコード。
– header
– navbar、navbar-fixed-top、navbar-inverse– classラベルは何度も使える。
– idラベルは一度しか使えない。– container
– link_to
– オプションハッシュ#
– navタグには「その内
railsで一覧ページに[gem kaminari]を導入する流れについてまとめてみた。
#kaminariの導入の仕方
##1.Gemfileにkaminariを追加して保存。
“`Gemfile.
gem ‘kaminari’,’~> 1.1.1′
“`##2.kaminariをインストールする
`$ bundle install`##3.kaminariの設定ファイルを作成する
`$ rails g kaminari:config`##4.kaminariがページャで利用するテンプレートを作成する
`$ rails g kaminari:views default`##5.ページャを実装する
ページネーションさせたい場所に
“`app/views/books/index.html.erb
<%= @books.each do |book| %>
:
:
<% end %>
<%= paginate @books %> <"←これを追加">
“`
“`app/controllers/books_controller.rb
@books = Books.all.page(param
YouTubeっぽいコメント欄を作ってみよう!(返信機能追加)
# はじめに
こんにちは!今回はYouTubeっぽいコメント欄を作ってみようと思います!
色々調べていたのですが、似たような記事がなかったので自力で実装した部分が多いです(><) もっと良い方法があるかもしれないので、今後アップグレードしていければと思います。 それではいきましょう! # 完成イメージ ![exhoop_200420_reply.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487789/596291b7-72a8-1675-e23c-63c3141ccb2d.gif) ユーザーアイコンの実装については過去記事を参照ください。 https://qiita.com/naoki00m/items/6430ab0b62766b582c9a # 開発環境 - ruby 2.5.1 - Rails 5.2.3 - mysql - Haml 5.1.2 - Ruby Sass 3.7.4 # 前提条件 - 投稿に紐づくコメント機能が実装できていること(TECH CAMPでいうところ
【rails】Active Storage
# Active Storage
## active_storage_attachments
| id | name | record_type | record_id | blob_id |
|:——|———–|:————|———–|———|
| 1 | avatar | Taxonomy | 3 | 1 |
| 10 | eye_catch | Article | 13 | 10 |
| 14 | og_image | Site | 1 | 14 |
| 17 | favicon | Site | 1 | 17 |`record_type` model名
`name` has_one_attachedの関連付け
`record_id` articlesテーブルのid
`blob_id` active_storage
rbenvを使用したRubyのバージョン管理
この記事は、rbenvがインストールされている事を前提に書いてあります。
インストールに関しては他記事をご参照してください。# 目的
Rubyのバージョンを変えずに作業していると、簡単なrbenvのバージョン管理方法を忘れてしまいがちなので、すぐに思い出せるように簡潔にまとめました。### Rubyのインストール
今回はバーション2.5.7のインストールします。
他のバーションをインストールするときは「2.5.7」の部分を書き換えてください。“`ruby:ターミナル
# インストールできるRubyのバージョンを一覧表示
$ rbenv install -l# Ruby 2.5.7をインストール
$ rbenv install 2.5.7# インストールしたRubyのコマンドを使えるようにする
$ rbenv rehash# 既にインストールされているバージョンの確認
$ rbenv versions
“`### バージョンの変更
**PCの全体で使うバージョンの設定**“`terminal:ターミナル
$ rbenv global 2.5.7
gitにてローカルで修正を加えたファイルを元通りにする方法
# 変更前の状態を確認したいが、加えた修正は消したくない場合
stashコマンドで修正箇所の一時避難ができます。
ローカルのワーキングディレクトリの変更が一時避難されます。“`
# 変更を一時避難させておくコマンド
$ git stash
もしくは下記のコマンド。動作は同じです。
$ git stash save
“`
またわかりやすく名前を付けておきたい場合は以下のように名前を指定しておくと確認の手間が省けるから楽になります。特に名前の指定をしない場合は直前のコミットメッセージが名前として入るようです。“`
$ git stash save ○○の修正分
“`一度避難させた修正分を戻す時は以下のコマンドを使います。
“`
# まず戻したい変更ファイルを確認
$ git stash list
# 戻したい修正分を指定して適用する
$ git stash apply stash@{0}
“`
必要なくなったファイルは消しておきましょう。“`
$ git stash drop stash@{0}
“`# 変更前の状態に戻したい場合
### 各ファイル
【Rails Tutorial12章】パスワード再設定機能の実装手順を整理してみました【中編】
##はじめに
Railsチュートリアル12章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__
##前提
Railsチュートリアル1〜11章までの内容が完了していること。
特に、アカウント有効化機能が実装されている事。
##内容
Railsチュートリアル12章の__パスワード再設定機能の実装手順__を、前中後半の3回に分けて整理おります。
中編である今回は、__パスワード再設定メール送信機能の実装__を行っていきます!前編→[__パスワード再設定用のリソース作成__](https://qiita.com/kurawo___D/items/44b36354f36bbe238d6b)
後編→[__パスワード再設定機能の本実装__]()
##2.パスワード再設定用メールを送信する機能を実装する。
➡︎PasswordResetsコントローラのcreateアクションを動作させる部分まで完成させたので、次はパスワード再設定に関するメールを送信する機能を実装していく。➡︎今回はUserメイラーに追加されてい
macでruby on railsを動かすための備忘録
###macでruby on railsの環境構築の自分用の備忘録
##まずはHomebrewでrbenvをインストールしましょう。
rbenvはrubyのバージョン管理ツールとなります。macには最初からrubyが入っていますが、これを使えば簡単にバージョンを
切り替える事ができます。`brew install rbenv ruby-build`
インストール出来たか確認
`rbenv -v`
このように、バージョンが表示されます。
`rbenv 1.1.2`##つぎにrbenvにパスを通しましょう。
`echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile`
そして、ターミナルに設定を読み込ませ直しましょう。
`source ~/.bash_profile`##rubyをインストールしましょう。
現在インストールできるrubyを確認しましょう。
`rbenv install –list`バージョンの2.6.5をインストール
`rbenv install 2.6.5`確認してみましょう!
`rbenv versio
CRUD処理について
# CRUD処理とは
CRUDはcreate、read、update、deleteの頭文字をとった造語で、データベースの処理を表す言葉# 処理一覧
Create処理(データの追加)
“`ruby
User.create(name:”A”,age:21)
“`Read処理(データの読み込み)
“`ruby
User.all # データを全て取得
User.find(2) # 指定したidを取得
User.find_by(name:”A”) # 最初にヒットしたデータを取得
User.where(age:29) # 該当のデータ全て取得
“`Update処理(データの更新)
“`ruby
user=User.find(1)
↓
User.age=22
↓
user.save
“`Delete処理(データの削除)
“`ruby
user=User.find(1)
↓
user.destroy
“`
AWSのトラブルシューティングメモ
### Nginxの再起動
“`:ターミナル
sudo service nginx restart
“`### Unicornの再起動
“`:ターミナル
> ps aux |grep unicorn
# Unicornのプロセスidを確認する
> kill -9 (unicornのプロセスid)
“`### デプロイ
“`:ターミナル
bundle exec cap production deploy
“`## 本番環境で rails c
[ローカルのターミナルから本番環境のリモートサーバーにrails consle(rails c)する](https://qiita.com/yukiji/items/e64977741ed6062526cb)
Docker+PostgreSQLで立ち上げたDBにPosticoでアクセスする
# はじめに
前回記事でRails+PostgreSQL+docker-composeででローカル環境構築を行いました。前回記事-> https://qiita.com/Rick516/items/c9e829f48f3ee0be26df
今回は前回記事で立ち上げたDBにPosticoというツールで操作できるようにしたいと思います。
# 環境
– macOS Catalina 10.15.4
– ruby 2.6.3
– rails 2.5.3
– docker for mac 2.2.0.4
– PostgreSQL 12.2# Posticoとは?
Posticoは簡単にいうとPostgreSQLをGUIで直感的に操作できるツールです。
ぽちぽち入力していくだけでデータを追加できたり、コピーできたり、書き換えられたりできるので最高に便利です。
インストールはこちら -> https://eggerapps.at/postico/
今回は前回記事(https://qiita.com/Rick516/items/c9e829f48f3ee0be26df)で立ち上げた
【Rails Tutorial12章】パスワード再設定機能の実装手順を整理してみました【前編】
##はじめに
Railsチュートリアル12章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__
##前提
Railsチュートリアル1〜11章までの内容が完了していること。
特に、アカウント有効化機能が実装されている事。
##内容
Railsチュートリアル12章の__パスワード再設定機能の実装手順__を、前中後半の3回に分けて整理おります。
前編である今回は、__パスワード再設定用のリソース作成__を行っていきます!中編→[__パスワード再設定メール送信機能の実装__]()
後編→[__パスワード再設定機能の本実装__]()
##1.PasswordResetsリソースのモデリング。
●__新たなモデルは作らず、必要なデータだけをUserモデルに追加していく感じで進めていく。__
●__さらにPasswordResetsをリソースとして扱うために、RESTfulなURLを追加していく。__
➡︎パスワードを再設定するには再設定用のフォームが必要なので、ビューを表示させるためのnewアクシ
【Rails】タグ機能を実装する方法(gem未使用)
#はじめに
Railsアプリのタグ機能実装においてgemを使用するか迷いましたが、
なるべくブラックボックスは少ない方がよいと思い、gemなしで実装しました。
最低限の機能であれば意外と少ない工程で実装ができたので、今回記事にします。ユーザーが投稿する「本」(Bookモデル)について、「ジャンルタグ」(Genreモデル)を設け、
タグをクリックするだけでそのタグに該当する本を一覧で表示させるところまでです。誤った処理や冗長な処理がありましたら是非コメントお願いします!
#モデルの実装
「本」は複数の「ジャンルタグ」を持ち、逆に「ジャンルタグ」も複数の「本」を持つ
【多対多】の関係であるため、中間テーブル(BookGenreモデル)を設定します。各モデルに下記のとおり記載し各テーブルの関連付けをします。
“`ruby:book.rb(抜粋)
has_many :book_genres, dependent: :destroy
has_many :genres, through: :book_genres
“`“`ruby:genre.rb(抜粋
rails 開発日記3 投稿機能
# 投稿機能の実装
*この記事は技術や知識の共有目的ではなく、完全に自己満足のアウトプット用です。
<開発環境>
1. ruby 2.6.3
2. Rails 5.1.6
3. AWS Cloud9
4. GitHub
5. Heroku(予定)
6. sqlite3(develop環境)今回は投稿、投稿編集、投稿削除の基本的な動作を実装しました。
## 投稿
### postモデルの作成
“`
rails g model Posts content:text user:reference image:string
“`
postテーブルを作るときにreferenceを用いることでテーブルにuser_idカラムが自動で生成されます。
また、foreign_key: trueを記載することで外部キー制約をつけることができます。### モデルの関連付け
投稿の編集、削除機能を作る事前準備をします。
Postモデルに
“` belongs_to :user “`
Userモデルに
“` has_many :posts “`これでモデルの関連付けをし、Ra
Railsチュートリアル第5章
引き続きRailsチュートリアルを進めています。
演習の回答をまとめていますが、間違いやより良い書き方などあればコメントいただけると嬉しいです。#5.1 構造を追加する
##5.1.1 ナビゲーション
###演習1
Webページと言ったらネコ画像、というぐらいにはWebにはネコ画像が溢れていますよね。リスト 5.4のコマンドを使って、図 5.3のネコ画像をダウンロードしてきましょう8。“`
$ curl -OL cdn.learnenough.com/kitten.jpg
“`
###演習2
mvコマンドを使って、ダウンロードしたkitten.jpgファイルを適切なアセットディレクトリに移動してください (参考: 5.2.1)。“`
$ mv kitten.jpg app/assets/images
“`
###演習3
image_tagを使って、kitten.jpg画像を表示してみてください (図 5.4)。“`static_pages/home.html.erb
<%= image_tag("kitten.jpg") %>
“`
##5.1.2 Boo
フォームやボタンでのURL指定について
##編集機能のフォーム
`<%= form_tag("/memos/"+@memo.id.to_s, :method=>:patch) do %>`「え…idって数値じゃないの?なんで””から外すの?」
=>数値は“”で囲われることで文字列になるから@memoはインスタンス変数として使いたいから””で囲わない
=>囲うと**”@memo”**という**文字列**になってしまい、インスタンス変数としての機能が無くなるそのため、まずidを取得してから**.to_s**で文字列に変え、**+**を用いて文字列と連結させた
##削除機能のボタン
`【HowTo】Simple Calendar/カレンダーをお手軽に導入してみる(投稿機能付き)現在、個人アプリを作成しており、その中の機能として「トレーニングメモ機能」を実装することにしました。
スクールではカリキュラムになかった内容であったため、自身で色々と調べて実装したので、備忘録として記事にします。
皆様の実装に少しでも役立てていただければ、幸いです。本記事該当Github: https://github.com/Tatsu88-Tokyo/BulkFriends2
#実装に向けての考え
今回、「トレーニングメモ機能」を実装するにあたり、以下のことを考えました。
- 筋トレをする上で記録をつけることは、モチベーション維持に繋がる。
- 記録をつけるのであれば、日付別に記録をする必要がある。
- その記録を閲覧するときはできるだけ見やすい方がベター。以上の考えから、今回の「トレーニングメモ機能はカレンダーを使用して、日付ごとに記録をつけられるようにすることを目標としました。
そこで、色々と調べた結果、今回はgemの「simple_calendar」を使用した実装をすることとしました。
以下にて、実装方法などを記載していきます。#実装イメージ
まず、今回実装する
railsチュートリアル 13章 初心者が意識すべき事
#初心者がrailsチュートリアル13章で意識すべき事
1.has_many,belongs_toについて
2.S3を使って本番環境で画像アップロード
##has_many,belongs_toについて
ここは**Progate**からrailsチュートリアルに来た人は少し動揺するかもしれません。
というのも、**Progate**ではこれらを使わずにアプリの開発をするからです。
ただ、難しいものではなく**Progate**をしっかり理解しているなら、簡単に書けるようになったんだなくらいに思っていれば良いかと思います。
なので、全くわからない人は**ProgateのrailsⅨ**を復習するのがオススメです!
##S3を使って本番環境で画像アップロード
ここは、railsチュートリアルに書いてあるとおり難しいです。
https://qiita.com/ryuchan00/items/8e414562b7122e7ec4fbhttps://qiita.com/creativival/items/ab94430e6d56e7063efa
この二つのサイトにはかなり助けられました。
rails db:createのエラー解決
非同期通信を学習するために、サンプルとしてToDoリストを管理するアプリを作成しようとしたところ、データベースを作成する段階で以下のようなエラーが出た。
ので、その備忘録として残しておこうと思う。“`
tech-camp@A-458 memo_app % rails db:create
rails aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime.
See https://github.com/rails/execjs for a list of available runtimes.
/Users/tech-camp/projects/todo_app/memo_app/config/application.rb:7:in `‘
/Users/tech-camp/projects/todo_app/memo_app/Rakefile:4:in `require’
/Users/tech-camp/projects/todo_app/memo_app/
【CircleCi】Railsアプリに導入(設定ファイルについて)
## Qiita投稿の背景
Railsアプリの静的コード解析テストに「RuboCop」、単体テストと統合テストに「RSpec」を使用しています。
上記二つのツールを学習を進める過程で、CIツールというものに巡り合いました。調べていくと、使わない手はないと思い、また開発環境に「Docker」を導入していたこともあり、早速Railsアプリに導入してみました。
YAMLベースで設定することができるので、そこまで難度は高くないと思いましたが、自分の備忘録、アウトプットによる知識の定着も兼ねて記録します。## この記事の対象者
– Dockerの概念をなんとなく知っている方
– テストの概念について理解している方
– CircleCIのアカウントがあり、GitHub(Railsのリポジトリ)を連携している方## 環境
– ruby 2.5.1
– Rails 5.2.4.1
– Mysql 5.6.43
– 静的コード解析テストに「RuboCop」、単体テストと統合テストに「RSpec」## CircleCIって何?
– 「 CircleCI 」 → CIツールの中の一種– 「