- 1. ActiveRecordで、実際に発行されているSQLのクエリを標準出力に出す
- 2. 【Rails6】SNS(Twitter)シェア機能の実装
- 3. link_toネストの際に青い点が出現!消す方法
- 4. Rails チュートリアル 第5章 備忘録
- 5. 自己紹介とよくあるエラーについて
- 6. RailsにVuetifyを導入したプロセス
- 7. 副業×AWSでわりと人生変わったエンジニアの話
- 8. form_forについて
- 9. 【祝!出港】お気持ちほっこりサービス「それゆけ はこぶね かんしゃ丸」
- 10. Herokuコマンドまとめ
- 11. RuboCopの起動が遅い問題の対策としてのrubocop-daemon
- 12. 【Rails】閲覧しているファイルのインスタンス変数、ローカル変数を確認する
- 13. Railsを使ってブックマーク機能をAjax化
- 14. rails heroku エラー録
- 15. FactoryBotで外部キーの値はどうやって作り出すんだ〜(泣
- 16. [Ruby on Rails] kaminariの使い方
- 17. Rails の credentials.yml.enc と master.key の関係性について(undefined method `[]’ for nil:NilClass (NoMethodError))
- 18. 【rails】railsとjsを用いて「いいね機能」を実装してみた
- 19. [メモ] ?で終わるメソッド
- 20. Railsと別で書いていたscssをRailsに入れようとしたら、SassC::SyntaxError in Users::Sessions#newが出た件について
ActiveRecordで、実際に発行されているSQLのクエリを標準出力に出す
ActiveRecord::Base.logger = Logger.new(STDOUT)
【Rails6】SNS(Twitter)シェア機能の実装
#はじめに
記事の閲覧・検索ができるアプリケーションの作成中です。
今回記事の内容をSNS(Twitter)でシェアできる機能を実装しました。備忘録のため記述します。#環境
Ruby on Rails ‘6.0.0’
Ruby ‘2.6.5’
FontAwesome導入#viewファイルの編集
data-text=”~”などでオプションをつけることで、ツイートに表示されるテキストの設定などができるようです。
#参考
https://www.howtonote.jp/twitter/button/index4.html
こちらの記事を参考にさせていただきました。ありが
link_toネストの際に青い点が出現!消す方法
#はじめに
link_toを使用してパスを指定したら、font awsomeの下に変な青い点が表示されるようになってしまいました。
![スクリーンショット 2020-12-24 10.54.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864210/79edbb2c-9073-2a67-8a80-f473b444e9af.png)
今回はこの謎の青い点を消していきたいと思います。#原因
この青い点の正体はなんでしょうか?
link_toで要素をネストしたら表示されるようになったので、aタグにデフォルトでついている下線ではないかと考えました。#解決策
まずはfont awsomeの右下に表示されているので`iタグ`に`text-decoration: none;`を付けてみましたが変化なし。次に`aタグ`に`text-decoration: none;`を付けてみましたがこちらも変化なし。
ここでaタグにデフォルトでついている下線ではない可能性も疑いましたが、他の可能性が思いつかな
Rails チュートリアル 第5章 備忘録
第5章の備忘録
##環境
Rails 6.0.3
Ruby 2.6.3##目次
[1 Railsヘルパー](#1-railsヘルパー)
[2 BootStrap導入](#2-bootstrap導入)
[3 partial](#3-partial)
[4 アセットパイプライン](#4-アセットパイプライン)
[5 ルートURL解説](#5-ルートurl解説)
[6 レイアウトリンクのテスト解説](#6-レイアウトリンクのテスト解説)###1 Railsヘルパー
####1.1 link_to
“`rails
<%= link_to "Sign up", signup_path, class: "btn btn-lg btn-primary" %>
“`
第1引数はリンクテキスト
第2引数はURL
第3引数はオプションハッシュ(必須ではない)
最終的にaタグが生成される####1.2 image_tag
“`
<%= link_to image_tag("image.jpg", alt: "image", width: "300px"), "https://e
自己紹介とよくあるエラーについて
こんにちは!
まず簡単な自己紹介をさせて頂きます。プログラミング初心者のmizutaniと申します!
メーカー向けの営業を2年ほど経験した後、本格的に学習を始めました。
元々プログラミングは好きで、大学生の頃から簡単なHTML,CSS,Javascriptの書籍を読んで、学習したりしていました。
きっかけは大学2年生の時に参加したインターン。
ビジネスコンテストで優勝したことで、ビジネスアイデアを考えるのは面白いと思い、そこから学習開始。
テックアカデミーで1ヶ月フロントエンドを学んだこともありました。しかし周りの影響で、大手志向になり、新規ビジネスとは無縁の会社に。
営業は楽しかったし、成績も良かったのですが、思い切ってチャレンジすることにしました笑ただrubyは触り始めて2ヶ月ほど。
毎日試行錯誤しながら取り組んでいます。そんな自分が書くテーマは
##「よく初心者が陥るエラー」です。最近プログラミングを学ぶ人が増えていることは嬉しいことです。
単純に仲間が増えるという意味で励みになるのですが、
エラーで嫌になってしまう人も多いと思います。
(自分も高校生の頃、
RailsにVuetifyを導入したプロセス
## 背景
vue, vuetifyをインストールするぐらいならすぐ終わるだろうと思ってましたが、意外と手こずったので、次に同じエラーを起こさないように、備忘録として残しておきます。## 前提
vue(webpack)がインストールされている。
書きました→[Rails内にVueを導入](https://qiita.com/kazumawada/items/fd1f352c58a938d69de4)## 方法(というかプロセス)
最初はこのqiitaを参考にしました。
https://qiita.com/onoblog/items/e1a94fde9ed50f451d13
その後、Vuetifyを読み込んだら、コンソールでエラー確認。Vuetifyのパーツが読み込まれていなかった。v-toolbarが読み込まれてない。
“`vue
Vue warn]: Error in render: “TypeError: Cannot read property ‘smAndDown’ of undefined”
“`これが同じの6こくらい。
“`vue
vue.es
副業×AWSでわりと人生変わったエンジニアの話
# はじめに
何を書こうか迷ってたんですが、ちょうど副業始めて1年ほどたったので、どういうきっかけで始めたか、何をしてるのか、やってみたメリットなどを書いていこうと思います。
なぜ**副業×AWS**なのかというと、自分が副業をやっていく中で普段AWSに触れていることが強みになっていたので、単に副業だけじゃなく**AWS**も混ぜてみました。
これから副業を始めようと思っている人、特に本業で役割が変わってあまりコード書けなくなった人に参考になれば。# 自己紹介
本業ではSREという部署でCloud Architecture Grpというチームを持っており、自社サービスである[COMPANY](https://www.works-hi.co.jp/products)のクラウドネイティブ化を推進しています。
主にクラウドプラットフォームとしてはAWSを利用しているため、日常的にAWSのサービスに触れる機会が多いです。
そんな本業の傍ら、3社で副業やってます。(20名規模ぐらいのベンチャー)
それぞれ– 介護事業所向けSaaS
– 外食向けSaaS
– 会議改善SaaSなので会社
form_forについて
##概要
特定のモデルを編集・追加したい時に使う。##使い方
“`ruby:new.html.erb
form_for [引数] do |f|
~
end
“`引数にはモデルのインスタンスを指定。(@reviewなど)
##メリット
formを投稿した際に自動で切り替えてくれること
DBへの保存まで行えること##form_tagとの使い分け
form_forはDBに保存したい内容がある時に使用
form_tagはDBに保存しなくていい時に使用##一例
“`ruby:new.html.erb
form_for [@review] do |f|
f.text_field :name
end
“`これで
“`ruby:new.html.erb
“`
と同義になる。f.htmlタグ :カラム名
で記述する。
form_for内におけるメソッドはformに使用するhtmlタグの分だけある。
【祝!出港】お気持ちほっこりサービス「それゆけ はこぶね かんしゃ丸」
ハッピーメリークリスマス! こんにちは、オンライン英会話サービスを提供する株式会社ベストティーチャーでRailsエンジニアとして元気に働く たわら です。
本記事は[クソアプリ Advent Calendar 2020](https://qiita.com/advent-calendar/2020/kuso-app)の24日目の記事です。
# 悪の情報って伝播しやすいですよね
悪の連鎖ってありますよね。悪口・悪事の情報がまた同じような情報を引き寄せてしまうというような。「弱いものたちが夕暮れ、さらに弱いものを叩く」なんてブルーハーツの詞もあります。こういうときにボクは頭を抱えてしまいます。悪の連鎖に対して、一人の人間としてどう立ち振る舞ったらいいのだろうかと。
そしてボクは、アプリを作ることにしました。
# 善の情報を伝播させればいいのでは?
かの村上春樹は小説かエッセイのどこかで「いつの時代も善と悪が半々だと認識している。人間の中でも半々」うんぬんと語っていました。たしか。そして、かのカート・ヴォネガット・ジュニアは小説かエッセイのどこかで、「なるべく人生の良い面だ
Herokuコマンドまとめ
# はじめに
コマンドをまとめておくと便利だと思いこの記事を作成した。
また、前提としてHerokuアカウントを作成しているということ。
#Herokuを使う理由
通常デプロイには多くの時間と費用がかかるがHerokuは基本無料でデプロイの手間が少ないから。
# まとめる内容
・Herokuインストールコマンド
・ログインコマンド
・アプリケーション作成コマンド
・MySQLを使用できるコマンド
・暗号化した値の管理
・Heroku上にデプロイ
・マイグレーションファイルを実行
・公開したアプリケーションの確認
・デプロイ後のエラー##Herokuインストールコマンド
コマンド“`
brew tap heroku/brew && brew install heroku
“`
バージョンを確認コマンド“`
heroku –version
“`
##ログインコマンド
“`
# ログインコマンド
heroku login
“`
下記の表示が出ればログイン成功。“`
Logged in as sample@sample.com
“`
##アプリケーション作
RuboCopの起動が遅い問題の対策としてのrubocop-daemon
この記事は [Opt Technologies Advent Calendar 2020](https://qiita.com/advent-calendar/2020/opt-technologies) 17 日目記事です
これもまた遅刻しました。何一つ間に合っていない(死)16 日目の記事は @checche さんの 分析コードの書くコツ or 統計モデリングの実装(未公開) です
18 日目の記事は @___uhu さんの そろそろ競馬AIができそう(未公開) です—
RubyのLinter兼Formatterとしてデファクトの[RuboCop](https://github.com/rubocop-hq/rubocop) というgemがあります
割とお世話になるんですが、フロントエンドでPrettierやESLintを使ってファイルの保存の度にLint/Formatを実行していた身からすると起動が遅すぎてとてもじゃないけどファイルの保存の度に実行できるような状態じゃありませんでした
世の中には同じような課題感を持った人がいたらしく、[rubocop-daemon
【Rails】閲覧しているファイルのインスタンス変数、ローカル変数を確認する
# 結論
“`ruby
Rails.logger.info(self.instance_variables)
Rails.logger.info(binding.eval(“local_variables”))
“`
上記のコードで、インスタンス変数とローカル変数をINFOログとして出力できる。
はじめて見るプロジェクトで、全体像や使える変数を確認したい時に。# 解説
Railsのcontrollerにしろ、viewファイルにしろ、
self.instance_variablesの値をインスタンス変数@varの形で利用できる。
bindingオブジェクトは[こちら](https://uxmilk.jp/33886#:~:text=Binding%20%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A8%E3%81%AF%E3%80%81%E5%A4%89%E6%95%B0,%E6%83%85%E5%A0%B1%E3%82%92%E8%A1%A8%E3%81%99%E3%82%AA%E3%83%96%E3%
Railsを使ってブックマーク機能をAjax化
#はじめに
Railsアプリで実装したブックマーク機能を同期処理から非同期処理に変更する方法を紹介します。非同期通信とは一言で表すと、
**「画面は再読み込みしないけど、画面の表示は変えるよ」**
となるかと思います。より一般の人が非同期通信を利用する例を述べると、Twitterの投稿に「いいね」をする時とかが挙げられます。
Ajaxに関する説明は既にネット上でたくさんの参考文献がありますので、本記事で詳しい説明はしません。
もしAjaxについて知らなければ、下記に参考記事を記載しますので先にそちらをまずは読んでください。[初心者目線でAjaxの説明](https://qiita.com/hisamura333/items/e3ea6ae549eb09b7efb9)
#同期通信でのブックマーク機能
掲示板の投稿アプリにAjax機能を追加します。
(投稿にはダミーテキストを使っているのでタイトルや内容は無視してください)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810
rails heroku エラー録
久しぶりにHerokuにpushしようとしたらエラーが、、
“`
…
remote: —–> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: rake aborted!
remote: ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
…
remote:
remote: Caused by:
remote: OpenSSL::Cipher::CipherError:“`
`ActiveSupport::MessageEncryptor::InvalidMessage`
これはrailsのmaster.keyが原因のエラーぽいHerokuに登録しなければいけないぽいので
“`
heroku config
FactoryBotで外部キーの値はどうやって作り出すんだ〜(泣
#はじめに
先日投稿した、テストコードに関するエラーで少し進展したので、記録しておきます。先日の投稿↓
「[RSpecを使ってテストコードを書いているが、うまくいきません](https://qiita.com/TerToEer_sho/items/8967b4cd04737602b0e9)」##検証結果
仮説2はおそらく関係がないことがわかりました。
ヘルパーメソッドを
`number_field`から`text_field`に変えても、課題の解決には繋がりませんでした。依然として、うまく保存ができないため、仮説1の外部キーに関わる部分でエラーが発生していると考えられます。
モデルで外部キーであることをバリデーションしていることで、単にIDを入力するだけでは、主キーを見つけられないことが原因だと考えられます。##最後に
引き続きテストコードがうまくいくように検証を続けて行きます。
[Ruby on Rails] kaminariの使い方
#kaminariとは?
rubyのgemの一つで、ページネーションを作るためのものです。#kaminariのインストール
以下を `Gemfile` に追加します。
“`
gem ‘kaminari’
“`ターミナルでインストールします。
“`
$ bundle install
“`
#コントローラーにページネーションのコードを追加“`
class PostsController < ApplicationController def index @posts = Post.all @posts = Post.page(params[:page]).per(15) end end ``` `page(params[:page]).per(15)` の部分でページあたりいくつ表示させるかを設定します。 ページネーションが表示されるのは、表示される数が設定した数より多い場合です。 #ビューファイルにページネーションのコードを追加 ビューでページネーションを表示させる場所に追加します。 ``` <%= paginate @posts
Rails の credentials.yml.enc と master.key の関係性について(undefined method `[]’ for nil:NilClass (NoMethodError))
職場で運用している Rails で作成した、顧客と収益アプリの公開用 clone を作成する際に、題名のところでハマったのでメモ用として残しておきます。
## 経緯
1. GitHub のプライベートリポジトリからローカルにソースコードを clone
2. プライバシー情報を削除後、`.git`ファイルを削除して、アプリ名(folder 名)を`_v2`へと変更
3. `git init`して、リモートリポジトリへプッシュ
4. CircleCi と連携させて、master に merge されたタイミングで自動テストを組む
5. RDS を本番環境の db にしたいので、ローカルで`credentials.yml`に、RDS の情報を打ち込む設定を行う(このとき、`credentials:edit`コマンドを一度使用して、なぜか一度 credential ファイルを削除、`credeitials:edit`コマンドで再作成という謎の手順を踏んでいます)
6. ECR にコンテナデプロイして、ECS のタスクを実行しようとしたところ、ECR のコンテナが起動していない
7. 開発用
【rails】railsとjsを用いて「いいね機能」を実装してみた
# 今回はrailsとjsでいいね機能を実装していきたいと思います
** また最後におまけでユーザーがいいねした投稿を表示できるような機能も実装していきます**
jsを読み込んだりする説明は割愛!
**参考にさせていただいた記事**
https://techtechmedia.com/favorite-function-rails/
https://qiita.com/hayabusa3703/items/2b916e652a1dc85bb6e3##### 完成予想図
![スクリーンショット 2020-12-22 21.34.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653881/197c1930-4b7e-3226-a255-f1457299f362.png)
##### 下準備
ユーザーはたくさんの投稿にいいねをして、投稿もたくさんのユーザーにいいねされるので
likesテーブルを中間テーブルにした、ユーザと投稿の多対多のテーブル構造
“`
rails g m
[メモ] ?で終わるメソッド
勉強用のメモ代わりとして記事にさせていただきます。
#?で終わるメソッド
Rubyのメソッド名は?で終わらせることができる。?で終わるメソッドは慣習として真偽値を返すメソッドになっている。“`ruby
# 空文字列ならtrue、そうでもなければfalse
”.empty? #=> true
‘abc’.empty? #=> false# 引数の文字列が含まれていればtrue、そうでもなければfalse
‘movie’.include?(‘mo’) #=> true
‘movie’.include?(‘at’) #=> false# 奇数ならtrue、そうでもなければfalse
3.odd? #=> true
4.odd? #=> false
“`?で終わるメソッドは自分で定義することができる。
“`ruby
# 2の倍数ならtrue、それ以外はfalseを返す
def multiple_of_two?(n)
n % 2 == 0
end
multiple_of_two(1) #=> false
multiple_of_two(2)
Railsと別で書いていたscssをRailsに入れようとしたら、SassC::SyntaxError in Users::Sessions#newが出た件について
# 目次
* はじめに
* 実行環境
* 理由
* 解決方法
* まとめ# はじめに
今回は別で書いていたscssをrailsに入れようとしたら
background-color: $color-basic;
のところで
Error: Undefined variable: “$color-basic”.
というエラーが出た。# 実行環境
この記事は以下の動作環境で動作確認しています。
* ruby (2.7.1)
* rails (6.0.3)# 理由
* application.scss(css)内のデフォルトでいる“`
*= require_tree .
“`
が、**app/assets以下の全てのcssファイルを読み込んでいる**
ので、
読み込む順番がずれて、
$colorを指定したmiximファイルが先に読み込まれていなかったから。
`*が前に書いてあって、コメントアウトされている様に見えるけれど
ナ●シカの巨神兵の様に奴らは生きている…!!`***
# 解決方法
今回はstyle.scssに
“`scss:style.sc