ヨージとプログラミング

プログラミング勉強の記録

2019-09-01から1ヶ月間の記事一覧

【Rails on Docker】credentials.yml.encからmaster.keyを取得する時につまずいたのでメモ

Gemインストールしたのにインストールされてないと言われて… $ EDITOR='code --wait' rails credentials:edit => Could not find minitest-5.12.0 in any of the sources Run `bundle install` to install missing gems. 環境変数EDITORにvscodeを設定してma…

【Rails】Pagyで1ページに2つのページネーションを設置する

先に結論を書きます ページ内にタブ(tab)を設置し、表示内容を切り替えることがあると思います。 (イメージ) 通常(ページネーション1つの時)であれば次のように定義すると思います。 def index @pagy, @users = pagy(User.all) end これとは別に例えば…

【Rails】フォロー機能をAjaxで実装する時は、フォロー後にユーザー情報を更新しよう

星を押してフォローすると星が塗りつぶされるタイプ フォロー前 フォロー後 星を塗りつぶすかどうかは, current_userがすでにフォローしているかどうかをif文で確認して決めています。 - if current_user.following?(user) # 塗りつぶす = link_to icon('fas…

【Rails】routesの設定で「resource」と「resource"s"」の違いで小一時間悩んだ話

DELETEのrouteに:idと:user_idの2つ現れてしまった routesをネストした時に、resourcesと単数形でなかればならないところを複数形で書いてエラーになりました。なんのこっちゃだと思うのでまずはコードを見てください。 # 誤ったコード Rails.application.r…

【Rails】RSpecテストでActiveRecord::RecordInvalid:Validation failed: Email has already been taken エラー

環境 Ruby 2.6.3 Rails 5.2.3 RSpec 1.7.0 Docker for mac テスト後にロールバックしていない 該当のRSpec require 'rails_helper' describe 'レコード管理機能', type: :system do describe '一覧表示機能' do before do user_a = FactoryBot.create(:user,…

【Rails】本番環境(heroku)へのseedの流し込みでハマったのでメモ

主なエラーはfaker関係 いくつものエラーが出ましたが、発端はfakerというgemです。説明不要かもしれませんが、fakerを使用すれば色々なフェイクデータを生成することができます。 私の場合は以下のように、ユーザー名に使用しています。 2行目のFaker::Name…

【Rails】Record.lastで取り出せるのはどんなデータか?

作成中のアプリの挙動がおかしいことに気づいた いきなり私事ですが、私の作成している体重記録アプリで、最後に記録した体重をDBから取得するのですが、こうしました # あるuserの最後のレコードの体重を取得 @last_record = user.records.last.weight 結果…

【Rails】ページネーションを「Pagy」で導入する

Pagyを使う理由 Railsアプリにページネーションを導入する際、長くwill_paginationやkaminariが使われてきており、定番となっているのは言うまでもないですね。 2018年11月に登場し、定番たちの間に割って入ろうとしているのがPagyです。Pagyの利点は次のサ…

【Rails】link_toの中に画像と文章を入れる

達成したいこと Railsでタグを生成することでおなじみ、link_toメソッドの中に画像と文章を混載したい。 link_toの基本的な使い方 link_to (リンクテキスト等), (リンク先) ちなみに画像の表示にはimage_tagメソッドを使います。sizeのオプションはほぼニコ…