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

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

Herokuに「The page you were looking for doesn’t exist. 」が出たがコミットできてなかったという凡ミスだった、、、

拍子抜けするほどの凡ミスをして数十分ハマってたので、共有します:sweat_smile:

まず、PCの環境を分かる範囲で書いておきます。

* Ruby 2.6.5
* Ruby on Rails 6.0.3

試作のRailsアプリケーションをHerokuへデプロイし、URLを開こうとしたところ、
`The page you were looking for doesn’t exist.`のエラー文が表示されました。。

![スクリーンショット 2020-11-19 0.18.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/892273/158f821f-6b14-a40e-56f6-22c958a7e202.png)

とりあえず、ググる、、、

ただ、調べた情報だと`root_path`を設定していなかったために、「それを設定してもう一回HerokuにpushしたらOKでした〜」というものがほとんど。

僕の場合は、ローカル環境できちんとrootに対応するviewが表示されていたので、そんな

元記事を表示

スクール1週目の振り返り

#スクール入校 :writing_hand_tone1:
10月5日、ついにスクールへ入校。学習スタイルは短期集中オンラインです。
新型コロナの影響で在宅オンライン学習となっています。コミュニケーションはSlackとZOOMで行われます。

#基礎カリキュラムの学習内容 :bulb:

**環境構築(準備)**
カリキュラム通りにターミナルでコマンドを打ち続けました。今、自分が何の作業をしているのか不安になりながらも環境構築しなくては、コーディングが出来ないと改めて痛感させられました。
そう思うと、Progateは本当に初学者に優しい教材だったんだなと感謝の気持ちで満たされました。

**HTML&CSS**
Progateで楽しく学ぶことが出来たマークアップ言語。道中コースでは自力でのコーティングに苦労しました。
スクールのカリキュラムはイラストや動画で丁寧にまとまっていて理解度が高まりました。

一つのカリキュラムを読み終えるのに1時間程度はかかるので、まずは、全体像を把握した上で要点を抑え最低限のメモ書きをしました。なぜなら、プログラミングは暗記しようとしても記憶に定着しないから

元記事を表示

RailsでPAY.JP APIを利用する 〜カード更新・削除編〜(payjp.js v2)

# 概要
PAY.JP APIでのカード登録/変更/削除機能実装の覚書です。
今回は登録したカード情報を更新するための手順をまとめていきます。
※簡潔にするため実装のために必要な最低限のコードのみ書いています。

なにか間違い等あれば編集リクエストをいただけると幸いです。

ちなみにpayjp.jsはv1に関する記事は多いですが現行のv2とは異なる部分が多いので注意が必要です。

実装準備編
https://qiita.com/nissy7ok/items/9790ef5ee1dec2863a62
カード登録編
https://qiita.com/nissy7ok/items/cea6789fe3b99654e473
カード更新・削除編←今ここ
https://qiita.com/nissy7ok/items/0ed52954f8fdad772da3

# 環境
“`
# OS Version
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H2

# Ruby Version
ruby:

元記事を表示

コピペでwebアプリが作れる。魔法のコード。

細かいことは抜きにこのコードを自分のターミナルで打ってみてください。

“`
rails new testapp -d postgresql; cd testapp && rails g scaffold post title:string body:string && rails g scaffold comment content:string post:references && bundle && rails db:create && rails db:migrate && rails
 s
“`

このコードだけでwebアプリを作ることができます。

用途としては、
– 使ったことないgemのテストのためのアプリとして
– Railsでどんなことができるのか初めの一歩としてとりあえず動かしてみたいとき

などです。

コードの詳細としては

“`
rails new testapp -d postgresql
“`

“`
cd testapp
“`

“`
rails g scaffold post title:string body:string

元記事を表示

Herokuの導入(自分用)

#herokuのインストール
####Heroku CLIをインストール
“`
% brew tap heroku/brew && brew install heroku
“`
#####バリデーションの確認
“`
% heroku –version
“`
####ログイン
“`
% heroku login –interactive hiro0308/
“`
#アプリにHeroku導入
本番環境gem

“`Gemfile.
# ファイルの一番下の行に追記する
group :production do
gem ‘rails_12factor’
end
“`
:productionで指定すると本番環境のみで使用されるように指定できる
bundle installも忘れずに。
####コミット

“`
% git add .
% git commit -m “gem rails_12factorの追加”
“`
####Heroku上にアプリケーションを作成
“`
% heroku create furima-00000
“`
####確認
“`
git

元記事を表示

【Rails6】cocoon_動的にフォームを追加する

__◆開発環境__

* Rails 6.0.3.4
* Ruby 2.6.5
* MySQL 5.6.47

__◆目次__
__1)[cocoon導入方法](https://qiita.com/matata0623/items/62684d875986352e9664)
2)動的にフォームを追加 ←
  前置き
  1. モデル作成
  2. コントローラー(アクション)
  3. コントローラー(ストロングパラメーター)
  4. ビュー(通常のform_with)
  5. ビュー(動的に追加したい部分)
3)[追加するフォームにidやdata属性を付与する](https://qiita.com/drafts/9c1cd8f8fbae779a7202/edit)__

__★GIF画像(こんな感じになります)__
*注意* 「にんじん」を選択するとピンクのボックスの後ろに「本」出力されるのはcocoonとは全く関係ないので悪しからず。cocoonは追加ボタンをクリックするとフォームの一部が追加されていくgemです。
[![Image from Gyazo](https://i.

元記事を表示

非同期でいいね機能が切り替わらない時の解決方法

##状態
同期状態でいいね機能を実装

そこから、非同期化

エラーもちらほらでましたが、エラーが出ないように修正。

エラーがなくなった、でも非同期でいいね機能が動かない。

って人は見てください。

同じようなパターンかもしれないです。

いいね機能を実装している方はたくさんいて
記事もたくさんありますので、自分と同じ状況を探してください。

詳しい詳細は下記を見てください。
https://teratail.com/questions/304798

##非同期処理の流れをおさらい
Ajaxの流れ
①イベント発生
②非同期でリクエスト送信
③受け取った情報を処理
④処理結果をJSON形式で応答
⑤レスポンスを受けてDOMでページ更新

自分の状態を確認することで原因がどこか見つける作業が早くなる。
イベントを発生しているかの確認だったら、アラートを出すように記述して確かめるみたいな感じですね。

##問題箇所
“`

Rails+WebpackerでBootstrap4を入れる方法

# 背景
railsではBootstrapをwebpackerを使って入れるとのことだったので、試してみました。

# やり方
Gemfileに追加

“`
# webpacker
gem ‘webpacker’, ‘~> 4.0’
“`

Dockerを使ってbuildし直す

ターミナルでwebpackerのインストール

“`
$rails webpacker:install
“`

yarnコマンドでjQueryやbootstrapをインストール

“`
$yarn add jquery bootstrap popper.js
“`

config/webpack/environment.jsに以下を追加

“`
const { environment } = require(‘@rails/webpacker’)

module.exports = environment

// ここから
const webpack = require(‘webpack’)
environment.plugins.append(
‘Provide’,

元記事を表示

スクールに通い始めて

はいどうも!
某プログラミングスクールに通い始めた37歳のおっさんです。
プログラミングは完全に未経験。
そんなおっさんが転職するまでの軌跡(奇跡?)をぼちぼち綴っていこうと思います。

先日、中間試験なるものを受けてみたところなんと、44点という結果・・・
学生時代に受けたテストでもこんな点数は取った記憶がなかった。
問題文を見ても何を求められているかわからないし、そもそもコードを読んでてもわからない部分が多すぎて理解ができない。
あれ?これってもしかして記憶力がだいぶ悪くなってる?
そう、気付き始めてしまったのです。
同期の人々よりも時間をかけて自分なりにわかる説明をしてくれる記述を手繰り寄せてなんとか消化する。
google先輩の力でなんとかやってきました。
自分がスペックとして他人に勝てるのは①「情熱」と②「モチベーション」この二つだと思ってます。
①他人が休んでる時にしっかり学習して
②他人が学習しているときに倍の密度で学習する
①も②も関係ないやないかーい!
というツッコミはおいておいて。

実際勝てる方法はこれしかないと思ってます。
そして、後がない。
同年代は役職に就い

元記事を表示

【Rails】 link_toへのpathの渡し方

#はじめに
* `link_to`で飛ばしたいページを指定する際、つまづいたので備忘録。
* showページを表示させる時の、`:id`を指定する書き方。

# 結論
> application.html.erb
**`<%= link_to '店舗詳細', company_path(:id) %>`**

こう書いたら表示できました。

#エラーになった書き方
`<%= link_to '店舗詳細', company_path %>`
`<%= link_to '店舗詳細', company_path(@company) %>`
これではエラーになりました。

>ルーティングです。
routes.rb
`get ‘company/:id’, to: ‘companies#show’`

>コントローラーです。
controller.rb
`@company = Company.find_by(params[:id])`

?Railsガイドには、

>**get ‘/patients/:id’, to: ‘patients#show’, as: ‘patient’**
アプリケー

元記事を表示

開発環境別にseed ファイルを分けて管理する

# はじめに

アプリの初期データ用のseed ファイルを開発環境別に管理する必要があったので備忘録です。

# 環境

* macOS 10.15.6
* Ruby 2.5.7
* Rails 5.2.3
* rspec-rails 4.0.1
* capybara 3.32.2

# 参考URL




# 目標

* 開発環境別でseed ファイルを管理できる
* seed ファイルの修正後に環境別に初期データを追加/削除ができる

# 実装

## 1. seeds ディレクトリを作成

通常のRails アプリでのseed ファイルのディレクトリは`db/seeds.rb` です。
これを以下のように修正します。

“`Ruby

元記事を表示

Dockerでyarnを入れたはずなのに「ERROR: There are no scenarios; must have at least one」と怒られた時の対処法

# 背景

Dockerでyarnを入れたはずでしたが、いざ以下コマンドを叩いてみると怒られた

Dockerfileの中身

“`
FROM ruby:2.5
RUN apt-get update && apt-get install -y \
build-essential \
libpq-dev \
nodejs \
postgresql-client \
yarn
WORKDIR /kosare
COPY Gemfile Gemfile.lock /kosare/
RUN bundle install
“`

yarnコマンドでエラー発生

“`
root@5847e387581e:/kosare# yarn -v
ERROR: There are no scenarios; must have at least one.
“`

# 解決策(一時的な解決策)
基本的には参考に記載のURLと同じことをすれば解決します。
私の場合はすでにrootで入っていたので、`sudo`と記載している部分はなくして順番に実行したら解決しました

元記事を表示

[初心者]ブラウザでRailsのルーティングを確認する方法[小ワザ]

#ブラウザでルーティングを確認するコマンド
“$ rails s“でサーバーを立ち上げてから、(URL)の後ろに

““
/rails/info/routes
““

とつけるだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/824345/3d1330c5-276f-88d5-bc1f-9ef1dd7186a2.png)
↑のような感じで、検索窓に直接打ち込めば大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/824345/3b43453d-1df1-1ca9-867d-e18f15b8d5d1.png)
こんなに見づらかったルーティングが、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/824345/80c82da9-6db8-2230-2120-ffe

元記事を表示

Railsを使ったToDoリストの作成(4.CRUDのRead機能)

#概要
本記事は、初学者がRailsを使ってToDoリストを作成する過程を記したものです。
私と同じく初学者の方で、Railsのアウトプット段階でつまづいている方に向けて基礎の基礎を押さえた解説をしております。
抜け漏れや説明不足など多々あるとは思いますが、読んでくださった方にとって少しでも役に立つ記事であれば幸いです。

#環境
* `Homebrew: 2.5.10` -> MacOSのパッケージ管理ツール
* `ruby: 2.6.5p114` -> Ruby
* `Rails: 6.0.3.4` -> Rails
* `node: 14.3.0` -> Node.js
* `yarn: 1.22.10` -> JSのパッケージ管理ツール
* `Bundler: 2.1.4` -> gemのバージョン管理ツール

“`:iTerm
$ brew -v => Homebrew 2.5.10
$ ruby -v => ruby 2.6.5p114
$ rails -v => Rails 6.0.3.4
$ npm version => node: ‘14.3.0’
$ yarn –

元記事を表示

バズったTwitterの動画、画像を自動収集するWebサイト

## 概要
twitterでバズった動画や画像のツイートをいいね順、リツイート順、日付順で閲覧できるwebサイトを作った
https://twipop-app.tontonton.work/

## 使用した技術
* サーバサイド
Rails

* フロントエンド
React

* API
公式TwitterAPI

* DB
firebase Realtime Database

* ホスティング
Heroku

* ssl
cloud flare

## 全体像
こんな感じ
![export_img.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/361500/ec5faca8-3de4-2c46-0634-a1bb83d7a539.png)

## なぜRails
サーバサイドはRailsしか扱ったことがないから。Rails以外の技術を勉強する時間が勿体無い。

## なぜReact
前々からSPAに興味がありReactの勉強を進めていた。Vueはちょっと勉強して挫折。
ページの部分更新するにも

元記事を表示

Sessionとcookieをがよくわからないので、できるだけかみ砕いてまとめたよ

#SessionとCookie

Railsチュートリアルでログイン機能の実装まで学習したが、いかんせん【わからない】
本当に分からない。自分が今何をやっているか理解できない。
こういう「分からない事が分からない」のは基礎的な知識が抜け落ちているパターンが多い。

どの基礎を抑えれば理解できるのかわからないが、まずSessionとCookieというこの2つのキーワードがよくわからないので、自分なりにまとめていく。
___
私は現職が医療従事者であり、専門知識の理解は対象(自分 or 他人)が理解できる内容までかみ砕く(対象によって流動食、ペースト食とレベルを変える)必要があると考えている。
このページでの内容はプログラミング学習前の自分レベルでも理解できるように、出来る限りかみ砕いた。内容を簡素にしていくと、認識違いやそもそも間違ってるでという事も起きる。
その場合はご指摘、ご助言いただけるとうれしいです。

___

***※個人的ではあるが、感覚的に理解しやすいようにwebサーバーを「webページ」・ブラウザを「ユーザー」と表現している。***

##webの仕組みから始

元記事を表示

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

#はじめに
オリジナルアプリを制作しています。完成後は知人に使ってもらい、感想をフィードバックする予定です。その知人は日本人なので、エラー文は日本語にした方がより親切だと思いました。そのため、エラーメッセージの日本語化を行いました。

#目次
1.日本語の言語設定
2.Gemfileの追加
3.日本語化ファイルの作成
4.追加で日本語翻訳文言の設定

#1.日本語の言語設定
config.i18n.default_locale = :jaを追加する。この「ja」は日本語を表す。

“`ruby:config/application.rb
module Pictweet
class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 6.0 # 日本語の言語設定 config.i18n.default_locale = :ja   # 省略 end

元記事を表示

【Rails】お気に入り機能の実装手順を公開!!【簡単にできます】

あおい(https://twitter.com/aoi_programming )です。
Ruby on Railsでお気に入り機能を実装したので手順を公開します。

# 実装したい機能

– お気に入り登録・解除できること
– 未ログイン時にはお気に入りできない
– 未ログイン時にはお気に入り一覧ページにアクセスできない
– お気に入りボタンをクリックするとAjax通信でデータ保存ができる

## 1. ブランチ作成
“`
git checkout -b favorites
“`

## 2. Favoriteモデルの作成

“`
% rails g model Favorite user_id:integer post_id:integer
“`

## 3. migrationファイルの編集

“`ruby
def change
create_table :favorites do |t|
t.integer :user_id
t.integer :post_id
t.timestamps
end
add_

元記事を表示

herokuで環境変数を設定する際の注意点

#この投稿について

ポートフォリを作成の際にGoogle認証を取り入れたいと思い、ユーザー登録や、ログインを行ってくれる”Omniauth”というGemを導入しました。
ところが、環境変数に設定しようとした際に、うまく設定できなかったため、どんな理由でエラーが起きて、どのように解消できたのかを記事にしています。

## herokuに環境変数を設定するとき

##### heroku config:set
というコマンドを使用します

実際には、
#####heroku config:set GOOGLE_CLIENT_ID=”~~~~~”

このようなコマンドで追加します。
このとき、 『=』と『””』の間にスペースを入れるとエラーが発生してしまいます。

##### heroku config:set GOOGLE_CLIENT_ID = “~~~”
このようにしてしまうとエラーが発生してしまうので、設定できませんでした。

なので、まとめると環境変数に設定するときは、無駄なスペース入れず、コピペして貼ってしまうことをお勧めします。

元記事を表示

タダ飲みコーヒー

#[Ruby] タダ飲みコーヒー
#問題
・コーヒーをお買い上げした際に、次のお買い上げの値段を更に P% off!
・毎回の値下げにおいて小数点以下切り捨て

あなたは値下げが累積する事に目をつけました。
コーヒーを何回も飲んでいれば、タダでコーヒーを飲めるようになるのです。
タダで頼みたいあなたは、何円払えば以後タダで注文できるのか計算したくなりました。
実際にプログラムを書いて計算してみましょう。
#入力される値
入力は以下のフォーマットで与えられます。

X P
・コーヒーの価格を示す整数 X と 割引き率を示す整数 P が、この順に半角スペース区切りで与えられます。
・入力は 1 行となり、末尾に改行が 1 つ入ります。
#期待する出力
以後タダで注文するのに必要な金額を出力してください。
#入力例1
300 50
#出力例1
596
#入力例2
1000 99
#出力例2
1010
#私の答え
“`java:
a,b = gets.split(‘ ‘).map(&:to_i)
s = 100 – b
int = a
while a.floor > 0
a = (

元記事を表示

OTHERカテゴリの最新記事