Rails関連のことを調べてみた2020年01月15日

Rails関連のことを調べてみた2020年01月15日
目次

【Ruby on Rails】タイムゾーンの設定を日本時間に変更する方法

タイムゾーンの設定を日本時間に変更する方法です。

設定方法

`config`の中の`application.rb`内に下記のコードを追加。

“`ruby:config/application.rb

config.time_zone = ‘Tokyo’
config.active_record.default_timezone = :local
“`

これだけです。

元記事を表示

【Rails】開発環境で送信したメールを確認する

`letter_opener_web`という、ローカル開発環境で送信したメールを確認するgemがすごく便利だったのでまとめます。サーバーのログを辿らずに、ブラウザ上で良い感じにメールを見れます。

“`rb:Gemfile
group :development do
gem ‘letter_opener_web’
“`
“`terminal
$ bundle install
“`
“`config/environments/development.rb
# 以下2行を追加
config.action_mailer.default_url_options = { host: ‘localhost:3000’ }
config.action_mailer.delivery_method = :letter_opener_web
“`
“`config/routes.rb
# 以下3行を追加
if Rails.env.development?
mount LetterOpenerWeb::Engine, at: “/letter_opener”
end
“`
`loc

元記事を表示

超初心者が bundle exec を調べた結果

bundle user って何なんだ?
何かしらをインストールするときにこのコマンドを打っているけど、どういう意味なのかしら?
と思ったので、超初心者なりに調べて要約してみました。
この記事は以下の記事を参考にしています。
https://qiita.com/dawn_628/items/1821d4eef22b9f45eea8#bundler%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9Fgem%E3%82%92%E7%A2%BA%E8%AA%8D

## 前提
####僕のスペック
– プログラミング学習を始めて1ヶ月
– HTML/CSS/Javascript/Ruby/Railsをprogateで一応学習済
– Ruby on rails でポートフォリオを作成中

####開発環境
– 端末 : LENOVO ideapad 530S-14ARR
– OS : Windows 10 Home ver.1809
– シェル : PowerShell 5.1.1776

元記事を表示

Elastic Beanstalk デプロイする時にハマったところ(Rails)

# はじめに
Rails アプリケーションを Elastic Beanstalk を使ってデプロイするときにハマって時間がかかってしまったことを箇条書きにしてみました。
“Elastic Beanstalkはデプロイがすぐできる。”なんて嘘だーと一瞬思いましたが、ポイントさえ押さえておけば、本当に一瞬でデプロイできるようになりますので、ぜひ使ってみてください。

#### 関連リンク
Elastic Beanstalk 関連のリンクを下記に載せておくので、必要であれば参考にしてください。。

* ElasticBeanstalk Blue-Green Deployment
* https://qiita.com/syukan3/items/28eba7462c26409773e6
* AWS ElasticBeanstalk 環境を切り替える方法(EB CLI)
* https://qiita.com/syukan3/items/1a44c879ab44e45ca748

# Elastic Beanstalk
## ハマったところ
* 文字コード(日本語の場合、utf

元記事を表示

Rails MySQL データ型をdecimalにしているのに小数点を扱ってくれなくて困った話

# 目的

– DBに格納されている数値に少数の値を足そうとして詰まりまくったところをまとめる

# 困った箇所

1. viewファイルで表している入力formの少数の値が入力できない。
– こちらで解決した→[HTML 少数入力時に「有効な値を入力してください」と出たときの話](https://qiita.com/miriwo/items/603cd7452d948161b6a6)
1. 入力してDBのカラムに保存しようとしてもカラムに反映されない。`save`でのエラーは出ない。
1. `rails console`で当該カラムに少数を入力し`save`するとDBのカラムに反映されるが、formから少数を入力しても足し算されない、整数の足し算はできる。

# 「viewファイルで表している入力formの少数の値が入力できない」の解決方法

– 下記の方法で解決した。
– こちらで解決した[HTML 少数入力時に「有効な値を入力してください」と出たときの話](https://qiita.com/miriwo/items/603cd7452d948161b6a6)

元記事を表示

Rechartsを使って円グラフを表示させるポスト詳細画面の実装【初学者のReact×Railsアプリ開発 第11回】

#やったこと
* Reactでポスト詳細画面を実装した。
* rechartsを用いて円グラフを表示させた。
* ログイン中のユーザー情報によって、表示をコントロールした。
* 詳細画面の中で、投票の変更を行えるようにした。

#成果物
![jqe0k-3qqon.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367226/c5a554ae-69ab-17eb-c9c9-ef175a490eb6.gif)

#Rails実装手順
###route.rb
“`ruby:route.rb
Rails.application.routes.draw do
namespace :api, defaults: { format: :json } do
namespace :v1 do

delete ‘posts/:id’, to: ‘posts#destroy’

end
end
root ‘home#about’
end
“`
###likes_controller, p

元記事を表示

画像の複数枚投稿と編集とプレビューと私

##以前の記事にて
初投稿につき緊張ながら投稿したのをよく覚えています。
たくさん見てくださってありがとうございました。
[画像の複数投稿??プレビュー表示??え??](https://qiita.com/gakinchoy7/items/f52577d0c5f6b2edff89)

しかし……

「投稿のみやん。editは?はよ。」と多数ご指摘をいただきました。

しかし…….

**何の成果もあげられませんでした。**

編集することができませんでした。

藁にもすがる思いでメンターさんにコードを見てもらい、アドバイスを仰ぎましたが、

「僕こんな実装したことないし、こんなやり方見たことない。
メンテナンス性も悪いし可読性もよろしくない。
他に効率のいい方法あるから…..やり直そうか」

と、ありがたくも残酷なご指摘をいただきました。

参考にしてくださった方々ごめんなさい。
メンテナンス性が悪く可読性もよくないお粗末なコードを書いてしまいました……

なので今回改良版をやります。意地で。

##仕様
1. 画像は5枚投稿できる
2. 投稿した画像は1枚

元記事を表示

【Rails6】gem `rails-erd`を使おうとしたらエラー`Warning: Ignoring invalid association`

## はじめに
コマンド入力で手軽にER図が出力できるgem `rails-erd`を使ってみたときに発生した以下エラーについて解決法を記載します。

“`shell
$ bundle exec erd –filetype=dot

Loading application in ‘app_name’…
Generating entity-relationship diagram for 1 models…
Warning: Ignoring invalid association :posts on User (model Post exists, but is not included in domain)
Warning: Ignoring invalid association :favorites on User (model Favorite exists, but is not included in domain)
Diagram saved to ‘erd.dot’.
“`

※使用説明については[公式ドキュメント](https://github.com/

元記事を表示

Unknown action ,The action ‘create’ could not be found for MessagesControllerの一例

#1.どんなエラー
MessagesControllerにcreateが定義されていませんよという内容です。
ちなみに筆者は下記の通りcreateは定義していました。

<エラー文>

スクリーンショット 2020-01-14 21.03.34.png

<エラーに該当するファイル>

“`ruby:messages_controller.rb
class MessagesController < ApplicationController before_action :set_group def index @message = Message.new @messages = @group.messages.includes(:user) end end def creat

元記事を表示

ArgumentError in GroupsController#create ,wrong number of arguments (given 0, expected 1)の一例

#1. どんなエラー?
「GroupsControllerのcreateの部分で引数が1つ返ってくると予想される(記述されている)のに、実行時には0件でしたよ」というエラーです

<エラー文>
スクリーンショット 2020-01-14 22.14.02.png

<エラーに関係したファイル>

“`groups_controller.rb
class GroupsController < ApplicationController def index end def new @group = Group.new @group.users << current_user end def create @group = Group.new(group_params

元記事を表示

【翻訳】Testing best practices – GitLab

> GitLabのテストにおけるベストプラクティス記事を日本語訳したものです。
>
> https://docs.gitlab.com/ee/development/testing_guide/best_practices.html
>
> 最終閲覧日時: 2020/01/06
>
> 途中、おかしな日本語があるかもしれませんので原文と照らし合わせてお読みください

## [Test Design](https://docs.gitlab.com/ee/development/testing_guide/best_practices.html#test-design)
GitLabではテストは最優先事項[1]です。機能の設計と同様に、テストの設計を考慮することは重要と考えています。

機能を実装するとき、我々は適切な機能を適切な方法で開発することを検討します。これにより、範囲を管理可能なレベルに絞り込むことができます。機能のテストを実装する場合、適切なテスト実装を検討する必要がありますが、重要な箇所をすべてカバーするテストは難しく、すぐに管理困難な段階にまで拡大するでしょう。

元記事を表示

お名前.comを使い、独自ドメイン取得し、herokuデプロイする

こんにちは。
初学者の方で転職活動などの為にポートフォリオを作成している方も多いと思います。

その際にherokuを使ってデプロイする人が多いと思うのですが、

URLが、
〜herokuapp.com

となってしまい、なんかカッコ悪いなあって思いまして、
AWSを使って色々やろうとしたのですが、

ポートフォリオだからそこまで口数をかけたくないと思い

独自ドメインを使い、herokuで、デプロイすることにしました。

その手順を載せさせていただきます。
初学者の方への参考になれたら幸いです。

※前提として
Herokuにアプリをデプロイ済みであることとします

# 1.お名前.comで独自ドメインを取得する

https://www.onamae.com/

にて
取得したいドメイン名を入れて検索する

スクリーンショット 2020-01-14 12.17.33.png管理者のテストが期待通りにならない理由

Rails Tutoriaiの第10章、10.4.1演習において

“`ruby:users_controller.rb
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation, :admin)
end
“`

というコードに対して

“`ruby:users_controller_test.rb
test “should not allow the admin attribute to be edited via the web” do
log_in_as(@other_user)
assert_not @other_user.admin?
patch user_path(@other_user), params: {
user: { password: @other_user.password,

元記事を表示

Rails エラーメッセージの表示と日本語化

## エラーメッセージの表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520383/94cf4e9e-6676-5e5e-2728-0e12fda15a79.png)

上記の画像のようにタイトルとブログ本文が空だった場合はエラー表示される様に実装する事。

## モデルにバリデーションを設定
バリデーションを付けたいモデル(今回はpost.rb)に記載。

“`ruby:post.rb
class Post < ApplicationRecord validates :title, :content, presence: true end ``` titleカラムとcontentカラムが空を防ぐ。 ## エラーメッセージのファイルの作成 エラーメッセージはエラーが発生すると、_error_messages.html.erb内に格納される。 ```ruby:layouts/_error_messages.html.erb % if model.errors.any?

元記事を表示

RSpecでActiveRecordに依存しているConcernのspecを書く。

例えばこのようなActiveRecordのschemaに依存しているConcernがある。

“`ruby:app/models/concerns/printable.rb
module Printable
extend ActiveSupport::Concern

def print_id
puts self.id
end

def print_name
puts self.name
end
end
“`

そのような場合、どのようにspecを書くのが良いでしょうか。
何も考えずにやるなら既存のActiveRecordのModelを利用することでしょうか。

“`ruby:app/models/user.rb
class User < ApplicationRecord include Printable end ``` ```ruby:spec/models/user_spec.rb describe User, type: :model do before do record.save end describ

元記事を表示

【Ruby on Rails】デフォルトメッセージの日本語化

エラーメッセージなどのデフォルトメッセージを日本語化する設定です。

バージョン情報

Ruby 2.6.3
Ruby on Rails 5.2.3

設定方法

`config/initializers/`配下に`locale.rb`というファイルを作成します。ファイル名は何でも良いですが習慣上`locale.rb`にしてあります。

下記の2文を記載します。

“`ruby:config/initializers/locale.rb
I18n.config.available_locales = :ja
I18n.default_locale = :ja
“`

日本語の辞書ファイルを作成します。
`config/locales/`に`ja.yml`というファイルを作成し、下記のURLの本文を作成したファイルにすべてコピペします。

https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

モデル名などはまだ英語のままなので、個別で日本語化していきます。
`config/locales/

元記事を表示

#Rails ActionMailer + #Rspec でメール送信数 / 送信先をテストする例

“`rb
subject { something }

it do
expect { subject }.to change { ActionMailer::Base.deliveries.count }.by(3)
end

“`

“`rb
before { subject }

it do
expect(ActionMailer::Base.deliveries.map(&:to)).to include [‘alice@example.com’]
expect(ActionMailer::Base.deliveries.map(&:to)).to include [‘bob@example.com’, ‘carol@example.com’]
end

“`

# Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2943

元記事を表示

ページネーションと並び替えに対応した投稿一覧画面とAPIの実装【初学者のReact×Railsアプリ開発 第10回】

#やったこと
* Reactでの投稿一覧画面の実装と並び替えに対応するためのRails APIの実装
* ラジオボタンの変更によるAPIからの投稿の取得と表示
* reduxを使った表示する投稿の状態管理
* material-ui-flat-paginationを用いたページネーションの実装

#成果物
![qkb5r-7d5kg.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367226/cdec2d86-b5c8-d4f1-30f9-c51e83303614.gif)

#Rails APIの実装手順
###route.rb: ルートの編集
“`ruby:route.rb
Rails.application.routes.draw do
namespace :api, defaults: { format: :json } do
namespace :v1 do

get ‘posts’, to: ‘posts#index’
get ‘posts_suki’,

元記事を表示

ActionView::MissingTemplate in Groups#newの一例

# 1.どんなエラー?
renderメソッドで表示しようとしている、viewファイルがありませんという内容です

筆者の場合は同じgroupsフォルダ内のformというファイルで記載したものを引用しnewファイルで表示しようとしていました。(下記参照)

###### <エラー文>

スクリーンショット 2020-01-14 2.23.39.png

###### <エラーに関係したgroupsフォルダ内のファイル>

“`haml:new.html.haml
.chat-group-form
%h1 新規チャットグループ
= render partial: ‘form’, locals: { group: @group }
“`

“`haml:form.html.haml

= form_fo

元記事を表示

Bugsnagで特定のエラーの通知を無効化する

最近の勉強で学んだ事を、ノート代わりにまとめていきます。
主に自分の学習の流れを振り返りで残す形なので色々、省いてます。
Webエンジニアの諸先輩方からアドバイスやご指摘を頂けたらありがたいです!

#BugsnagでRailsの不具合を通知
Railsのエラー監視にBugsnagを利用しています!Slackとの連携をしていてエラーが発生したら通知が飛ぶ様にしております。
今回は、Bugsnagのエラーで通知されるエラーは優先度が高いもののみにしたかったのサービス自体に影響がないエラーの通知を一旦無効化することになりました。
[Bugsnagと黒魔術で、Railsの不具合調査を楽にする仕組み! | 株式会社スタメン](https://stmn.co.jp/tech/4431/)

#Bugsnagで特定のエラーを無効化する

Bugsnagの公式ドキュメントを確認してみると以下の様な記述がありました!
これによると個々のエラーは破棄できます。 破棄されると、エラーはダッシュボードからすぐに削除され、受信した後続のイベントは保存されなくなる様です!

“`
Discard indivi

元記事を表示

OTHERカテゴリの最新記事