- 1. 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集
- 2. 選択肢の「その他」を選んだ時のテキスト入力
- 3. 【Rails】 FullCalendar カレンダー内でのドラッグによるイベント新規作成方法
- 4. [git rebase] ブランチにmasterの情報を持ってきて作業するにはどうすればいいの?
- 5. 脱Webpacker Rails
- 6. [RuboCop] UnknownEnvironment 警告の解決方法
- 7. Railsでシンプルな検索機能を実装する
- 8. RubyでStackdriver Monitoringにカスタム指標を書き込む
- 9. Action Cableへのidの受け渡し
- 10. 【Ruby】スクレイピングでメタ情報取得したい時
- 11. [初学者]simple calendarを日本語化 rails
- 12. sidekiq を停止するbashスクリプト作った
- 13. Railsチュートリアル 第6章
- 14. Railsチュートリアル 第8章
- 15. GoogleMapAPI Distance Matrix Service (2点間の移動を求める)
- 16. 初学者によるプログラミングMemo #20 素数判定
- 17. Ruby の module 名にはどんなものがあるか
- 18. ローカルでエラー:Access denied for user ‘root’@’localhost’ (using password: NO)の対処方法 mysqlのrootユーザーのパスワード設定なしで利用可能にする。
- 19. たった30分でわかるcredentials.yml.enc[rails5.2] – 環境変数を定義する使い方 –
- 20. チェリー本の読書メモ
「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集
## はじめに
テストコードを書くことは重要です。
テストコードがないアプリケーションよりもテストコードがあるアプリケーションの方が望ましいことは間違いありません。ですが、テストコードも書き方を間違えると、アプリケーションが壊れているのに正しく検知できないテストを書いてしまう可能性があります。
この記事ではそんな「アプリケーションが壊れているのに正しく検知できないテスト」のコード例を「〜するべからず(〜してはいけない)」の形式で紹介し、その修正方法を説明していきます。
サンプルコードはRailsアプリケーションをRSpecでテストする場合はを想定したものになっていますが、基本的な考え方自体は他の言語やテスティングフレームワークでも適用可能なはずです。
### おことわり:RSpecに詳しいみなさんへ
本記事ではRSpecに不慣れな人がこの記事を読むことも想定して、あえてRSpecらしいテストコード(RSpecに詳しくないと理解しづらいコード)を避けている部分があります。
“`ruby
# たとえば、こんなふうにbe_truthyを使ったり・・・
expect(user
選択肢の「その他」を選んだ時のテキスト入力
フォームで選択肢を実装した場合、その他項目を設けてその他が選択された時はテキスト入力を必須とする実装をしたい時がある。
割とどこにでもある実装だが、バリデーションも含めてちゃんと実装しようとすると、「あれ、どうやるんだっけ?」となったのでメモとして残す。# 概要
例えば会員登録するユーザーの職業情報を得るために、いくつか選択肢を用意し、選択肢に当てはまらない場合はフリーテキスト入力を必須となるようにしたい。
その場合、フリーテキスト欄をその他が選択された場合だけ表示、それ以外の場合は非表示という実装をJavaScriptで行う以外に、Modelのvalidationにも記述する必要がある。
選択できる職業は、エンジニア、マーケッター、デザイナー、オペレーション、マネジメント、その他の6種類とし、その他が選択された時だけフリーテキスト欄入力を必須とする。## Schema
テーブルのカラムには、下記の2つのカラムをつける。(カラムの追加方法などはここでは省略)
db/schema.rb“`ruby
create_table “users”, force: :cascade
【Rails】 FullCalendar カレンダー内でのドラッグによるイベント新規作成方法
# はじめに
Rails アプリケーションにて、 FullCalendar カレンダー内でのドラッグをするとイベントを新規作成できる方法について説明します。
scaffold で Eventモデルを作成しているため、最低限の作業量でカレンダーに機能を追加する方法を実現しています。### イメージ
赤色の矢印方向へドラッグすると、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/a4c69f44-9dac-d832-a849-86af8e4fbaf9.png)
新規でイベントが作成できる方法について説明します!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/91b1245b-07d6-affb-8fc9-6d215efcdf85.png)
#### 関連リンク
関連リンクを下記に載せておくので、必要であれば参考にしてください。。* 【Rai
[git rebase] ブランチにmasterの情報を持ってきて作業するにはどうすればいいの?
**やり方や仕組みを記述したちゃんとした記事はたくさんありますのでリンクをご参照ください。**
ブランチで作業してるけど、作業中に他のメンバーがマスターにマージしてマスターの情報が
新しくなった!
という時に、作業中の自分のブランチにマスターの最新情報を追加して自分がマージ
した時のコンフリクトを最小限に抑えたい&マージされた内容をもとに実装をしたい
と言ったことを考え使うコマンドがリベースという認識でおります。
(もっと他にあると思いますが、自分なりの解釈です)##環境
■GithubDesktop使用
■ターミナル
■プルリクはしていません(プルリクあげてるものはGithubでプルリクをcloseしています)
[プルリクエストをクローズする](https://help.github.com/ja/github/collaborating-with-issues-and-pull-requests/closing-a-pull-request)
■commitはしてます猿とおんなじレベルの自分でも理解できるように自分なりに噛み砕いて記述します。
実行したこととエラーについて
脱Webpacker Rails
## Rails + Webpack
Rails6.0からデフォルトでWebpacker(WebpackをRailsでラップしたGem)が搭載されていますが、無駄に処理がわかりにくくなっており、使い勝手がよくありません…
脱Webpackerをして、RailsにWebpackを導入してみます。
以下にボイラーテンプレートを置いておくので、よければ参考にしてください。https://github.com/Tak-Iwamoto/rails-webpack-boiler-template
## 1. Rails関連
– 以下のGemは使用しないので削除する。“` Gemfile
//
gem ‘sass-rails’, ‘>= 6’
gem ‘webpacker’, ‘~> 4.0’
gem ‘turbolinks’, ‘~> 5’
//
“`– app/assets, app/javascriptを削除する。
– asset precompileを無効にする。
config/application.rbに以下の設定を追加し、
assets precompileを
[RuboCop] UnknownEnvironment 警告の解決方法
対象 ver: rubocop (0.71.0)
## テストで Rubocop が警告を吐く [ C: Rails/UnknownEnv: Unknown environment staging?. ]
Rails アプリに staging 等の環境を追加して `Rails.env.staging?` といった処理を書くと、RuboCop に警告されます出力されたログ ※一部を省略しています
“`
$ rails rubocopInspecting 50 files
…………………C……………………….Offenses:
app/controllers/hoge_controller.rb:51:60: C: Rails/UnknownEnv: Unknown environment staging?.
if Rails.env.production? && Rails.env.staging?
Railsでシンプルな検索機能を実装する
RailsでGem等を使わず、余計なメソッドを作ったりもせずにとにかくシンプルに検索機能を実装する方法です。
今回はtitleというカラムを持つpostsテーブルを検索するという状況設定で話をします。
#フォームを作る
index.htmlに検索フォームを作ります。
検索はテーブルに変更を与えないため、form_tagを使用します。“`erb:view/index.html.erb
<%= form_tag('/search', :method => “get”) do %>
<% end %>
}
“`#コントローラーに検索用のアクションを定義する
2行目で検索フォームから送信された値をkeywordというパラーメーターで受け取っています。
3行目ではtitleに@keywordを含む列を検索し、@postsに代入します。“`ruby:posts_controller.rb
def search
@keyword = p
RubyでStackdriver Monitoringにカスタム指標を書き込む
とあるRuby製のシステムの監視で、Stackdriver Monitoring の**カスタム指標**を使う機会があり、Rubyからカスタム指標を扱う方法を調査した。
# カスタム指標とは
Stackdriver Monitoring の[カスタム指標](https://cloud.google.com/monitoring/custom-metrics?hl=ja)を使うと、独自の指標を Stackdriver で収集、モニタリングできるようになる。つまり、Metrics Explorer の以下のようなあたりに項目が追加され、その指標のグラフ化や、アラートの基準として使うことができるようになる。
前述のシステムでの使用例としては、バッチ
Action Cableへのidの受け渡し
[Action Cableの設定でつまずいたこと](https://qiita.com/kazama0119/items/755e8ff6f77aafb830d7)をする際につまずいたので備忘録も兼ねて共有します。
##わからなかったこと
`channel.rb`の`speak関数`が実行した際に、user_id と chatroom_id を含むテーブルを作成したいが、`channel.rb`で id を取得する仕方がわからない##コードの説明
###html.erbですること
1.属性値として`data_user` と `data_room` を設定する
2.その値として`current_user.id` と `@chatroom.id` を与える
(current_userにはログイン中のユーザー情報。@chatroomには、現在いるチャットページの情報が入っています。)“`html.erb
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた