Rails関連のことを調べてみた2021年09月27日

Rails関連のことを調べてみた2021年09月27日
目次

Railsでキーワード+ ラジオボタンを使った検索方法を実装する

#1. はじめに
検索機能を実装する課題があったのでまとめます。
調べたところransackというgemを使っても検索機能を実装できるようですが、課題の趣旨から外れてしまうため、今回はgemなしで実装しました。
#2. Railsで検索機能を実装する[View]
**①まずroutesを追加する**
コントローラーとモデルは既に作成済みを想定します。

“`rb
get ‘search’, to: ‘XXX#search’
“`

私の場合は“/search“というURLにsearchというcontrollerのアクションを対応させました。

**②Viewにform_withで値を設定する**

“`rb
<%= form_with(scope: :検索対象のモデル名, url: search_path, method: 'get') do |form| %>
・・・
    ・・・
<% end %>
“`
・“scope“にはmodel名を指定します。
・urlには“routes“で指定した“controller“のアクションを指定します。

元記事を表示

もう逃げない。基礎から学ぶDocker入門 / Docker上に構築したRailsをHeroku(本番環境)にデプロイ(公開)する(9/9)

## はじめに

今まで、全然理解できていなくて逃げてたDockerに関して、しっかり理解していこうと思います。

https://www.docker.com/

コレまで、便利なんだろうなと思いながらも、逃げてました。

なので、開発環境では使いこなせるスキルにまでは理解したいと思います。

あと、暗記してたDockerコマンドを1つ1つ理解していきます。

以下のような順番で勉強していきます。

– [Dockerの概要(1/9)](https://qiita.com/ryosuketter/items/d7833182dced67713d27)
– [Dockerの基本操作(イメージの作成, コンテナの起動, 停止, 削除)(2/9)
](https://qiita.com/ryosuketter/items/c53352f1143366d8b9a9)
– [Dockerの基本操作(ログの出力, コンテナの中でプロセスを実行する方法, 使用していない Docker オブジェクトの削除)(3/9)](https://qiita.com/ryosuketter/items/5fd7

元記事を表示

railsチュートリアル第6章 存在性を検証する

###存在性を検証する
最も基本的なバリデーションは「存在性(Presence)」です。
これは単に、渡された属性が存在することを検証します。
例えばこの節では、ユーザーがデータベースに保存される前にnameとemailフィールドの両方が存在することを保証します。
ここではこの要求を新しいユーザーを作るための“`ユーザー登録フォームにまで徹底させる方法を確認“`します。
まずはname属性の存在性に関する“`テストを追加“`します。
具体的にはリスト 6.7のように、まず“`@user変数のname属性に対して空白の文字列をセット“`します。
そして、assert_notメソッドを使って “`Userオブジェクトが有効でなくなったこと“`を確認します。
####name属性にバリデーションに対するテスト

“`rb
require ‘test_helper’

class UserTest < ActiveSupport::TestCase def setup @user = User.new(name: "Example User", email: "u

元記事を表示

N+1問題

データ一個でも1+Nである事を教えてくれる gem ‘bullet’

gemを入れる。これ入れればデータ一個でも1+Nを教えてくれる

それがわからず、データを作りまくりました…(でもログが出なかったのでそこは問題にならない。)

コメント機能などのアソシエーションがかかっていたり、関係があるデータを持ってくるとなると発生する

“`:gem
group :development do
gem ‘bullet’
end
“`
“`:ターミナル
bundle install
“`

config/enviroments/develop.rbに設定を書く、カスタマイズできる

デプロイ後に,
デプロイ自動化する「GitHub Actions」というGitHubのサービスをやったので、if ENV[“CI”] != trueを追加した

“`config/enviroments/develop.rb
Rails.application.configure do

if ENV[“CI”

元記事を表示

【β版ローンチ】「アイデアが無いから個人開発やらない」を無くしたい

## 世界をちょっとだけ良くするアプリを作りました

## なぜやるのか?

私は`もったいない`という感情がとても嫌いな人間です
この感情に動かされ、誰かのためになったら良いくらいの精神で作りました

### 考える課題

**個人制作者:**

個人開発などでアイデアがない人が多過ぎる
せっかく作れる人なのにその労力を有効活用できていない

ユーザーが全然いなかったり
そもそも認知がなかったりするのは**もったいない**

**アイデア側:**
非製作者には妄想を豊かにふくらませてくれる人が多かった
実体験からくる課題感や異なる発想を持っての
「こんなのあったら良いのに」がとても面白いのに**形にできない**

### アプリ

“`
アイデアとエンジニアのマッチングプラットフォーム
“`

https://www.ideee.tech/

### メリット

**個人制作者:**

– 開発したいアイデアが見つかる?
– 一緒にサービス開発をしたいと言ってくれる人が見つかる

**アイデア側:**

– アイデアを形にしてもらえる
– 自分の「困ってる」が誰かを手

元記事を表示

プログラミング未経験でも2か月でTwitterアプリを作れた話

はじめまして!Masakingと申します!
今回は株式会社[Hajimari](https://www.hajimari.inc/)さんが運営するスキルアップ型就活支援サービス、「intee」でのプログラミングゼミを通して、Railsを使ったTwitterアプリをチームで開発したのでそちらを紹介したいと思います!

#完成したアプリ
![SharedScreenshot.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2035851/d2dcc11d-7fee-5c27-1a06-01dfcbf04da1.jpeg)

[https://myapp-usagisann-ri.herokuapp.com/](https://myapp-usagisann-ri.herokuapp.com/)
じゃじゃーん!

こちらがホームページになります。
デザインが可愛いらしい、、、
3人チームで開発を行ったのですが、チーム名が「うさぎさん?」ということもあってうさぎっぽい色合いのデザインになりました笑

#機能
機能

元記事を表示

【Rails sが起動しない】ターミナルを起動したまま閉じたり、どこで起動したか不明の場合の解決法

# エラー内容

$ rails s
=> Booting Puma
=> Rails 6.1.4.1 application starting in development
=> Run `bin/rails server –help` for more startup options
Puma starting in single mode…
* Puma version: 5.4.0 (ruby 3.0.0-p0) (“Super Flight”)
* Min threads: 5
* Max threads: 5
* Environment: development
* PID: 3174
* Listening on http://127.0.0.1:8080
* Listening on http://[::1]:8080

# 解決法
今のターミナルで killall ruby を実行する

元記事を表示

Bootstrap導入時のエラー

# Bootstrap導入の際にした手順
– Gemfileにwebpackerがあるかどうか確認railsのバージョンが5.1以降であれば必要なし(標準搭載されたため)
– Bootstrapを扱うのに必要なパッケージをインストール

“`zsh
yarn add jquery bootstrap popper.js
“`
– config/webpack/environment.jsに以下を追記

“`zsh
const webpack = require(‘webpack’)
environment.plugins.append(
‘Provide’,
new webpack.ProvidePlugin({
$: ‘jquery’,
jQuery: ‘jquery’,
Popper: [‘popper.js’, ‘default’]
})
)
“`
– app/javascripts/stylesheets/application.scssを作成し、以下を記述

“`js
@import ‘~boot

元記事を表示

HamlでBootstrapの属性を書くときにUnbalanced brackets error発生

###◆問題発生

“`
.modal.fade{id: “exampleModal”, tabindex: “-1”, role: “dialog”, aria-labelledby: “exampleModalLabel”, aria-hidden: “true”}
“`
Bootstrapのモーダルを使おうと思ったら、属性を指定するところで

“`
Haml::SyntaxError in Posts#show
Unbalanced brackets.
“`
というエラーが出ました。
どうやらこの部分でエラーが出てしまっていたようです。

“`
{… aria-labelledby: “exampleModalLabel”, aria-hidden: “true”}
“`

###◆Rubyではキーにハイフンが使えない

キーにハイフンが入っているとシンボルとして認識されないため、文字列に変換してあげる必要があります。
これはHamlの文法に限りません。

以下のように記述することで解決しました。

“`
{… “aria-labelledby”:

元記事を表示

devise(管理者admin)1

初めてECサイト作成にてん?管理者って何…????????
となり半分くらい理解できたので過去の私に向けて

前提として
・アプリ作成済み
・deviseのインストールが終わっている
・namespace/customerとadminとでルーティングは分かれている

##概要
adminはログイン、ログアウトのみ
customerは新規登録、ログイン、ログアウトできる

—-
モデルの確認

Customer

| カラム   |   データ型   |
|:——-|———–:|
| name | string |
| email | string |
| address | string |
| password | string |
Admin

| カラム   |   データ型   |
|:——-|———–:|
| name | string |
| email | string |
| password | string |

元記事を表示

githubでチーム開発をする方法のメモ(ruby on rails)

#はじめに

某プログラミングスクールにて、cloud9環境でrailsを用いたチーム開発を行ったので、その際に行った、GitHubの連携方法をまとめました。
(プログラミング歴2か月のひよっこです。間違い等ございましたら、大変もうしわけございません。)

GitHub連携の大まかな流れ
①リーダーがGitHubにチーム開発用のリポジトリを作成する。
②リーダーがローカル上でアプリケーションを作成し、そのデータをGitHubのリポジトリに繋げる。
③リーダーがチーム開発メンバーをGitHubのリポジトリに招待する
④チーム開発メンバーが、リーダーの作成したアプリをローカル上にクローン(コピー)する。
⑤チーム開発メンバー各々が、ブランチを作成して作業をはじめる。
⑥ブランチでの作業全てが終われば、プルリクエストを行い、メインブランチにマージする。

#①リーダーがGitHubにチーム開発用のリポジトリを作成する。
リーダーはGitHubにチーム開発用のリポジトリを作成しましょう。
Githubにログインし、トップページから、図1のNewをクリックしましょう。!

(図1)
![gi

元記事を表示

【解決】Docker-composeを使用した環境でrails newできない

Dockerで環境構築している際に連続して起こったエラーをなんとか解決しました。
Dockerの環境構築で起きたエラーでつまづいている人には何かしら役に立つかもしれないと思ったのでQiitaに投稿させていただきました。
####開発環境
・Mac OS
・Ruby2.6.3
・Rails5.2.3
・MySQL5.7

##起こったこと
[この記事](https://qiita.com/Yusuke_Hoirta/items/3a50d066af3bafbb8641)をもとにDockerの環境構築をしていたのですが、
新規Railsプロジェクトの作成で詰まってしまいました。
## 最初のエラー
“`docker-compose run web rails new . –force –database=mysql –skip-bundle“`
を打つと以下のエラーが起きます。

“`
/usr/local/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe’: Could not find ‘bundler’ (2.2.2

元記事を表示

WSL2で ‘rails new’ できるけど ‘rails s’ できない方へ

# はじめに
最近,Ruby on Rails 環境を作成していたのですが,思わぬところで躓きました…

`rails new` はできるんです.
`rails s`した時,サーバーが立ち上がらず,エラーが出てしまいました.

キーワードは`yarn`でした.

# 事前環境
“`
wsl2: Ubuntu-20.04
node: 14.17.1
rails: 6.1.4.1
“`

# webpackerは入っていますか?
`rails s`した時のエラー文に以下のような部分はありませんか?

“`bash
(略)
Please run rails webpacker:install
(略)
“`

`rails webpacker:install`ができませんか?
まさに私と同じ状況ですので,次を見てみてください.

# yarnは入っていますか?
私はまさにこれでした.

“`bash
npm install –global yarn
“`

yarnを導入した後先ほどのコマンドを実行してみてください.
もしくは`rails new`の時に自動で`webpacker

元記事を表示

bootstrap modal とform_withの組み合わせ

bootstrapのmodalにform_withを組み込めないか検証してみた。
結果、上手く機能した。(unreadableで申し訳ないが以下のコードで一応機能した。)

~~~

元記事を表示

railsチュートリアル第6章 長さを検証する

###長さを検証する
各ユーザーは、Userモデル上に名前を持つことを強制されるようになりました。
存在性の有効 valid?
しかし、これだけでは“`十分ではありません“`。
ユーザーの名前はサンプルWebサイトに表示されるものなので、“`名前の長さにも制限“`を与える必要があります。

最長のユーザー名の長さを単に50を上限として手頃な値を使うことにします。
つまりここでは、51文字の名前は長すぎることを検証します。
問題になる可能性もあるので“`長すぎるメールアドレスに対してもバリデーション“`を掛けましょう。
ほとんどのデータベースでは文字列の上限を255としているので、それに合わせて255文字を上限とします。
説明するメールアドレスのフォーマットに関するバリデーションでは、こういった長さの検証はできないので、“`本節で長さに関するバリデーションを事前に追加“`しておきます。

####nameとemailの長さの検証に対するテスト

“`rb
>> “a” * 51
=> “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

元記事を表示

railsチュートリアル第6章 フォーマットを検証する

###フォーマットを検証する
name属性の検証には、空文字でない、名前が51文字未満であるという“`最小限の制約しか与えていません“`でした。
email属性の場合は、有効なメールアドレスかどうかを判定するために、“`もっと厳重な要求を満たさなければなりません“`。
これまでは空のメールアドレスのみを禁止してきましたが、ここではメールアドレスに“`おなじみのパターン“`user@example.comに合っているかどうかも確認することを要求します。
最初に、“`有効なメールアドレスと無効なメールアドレスのコレクションに対するテスト“`を行いましょう。
このコレクションを作る方法として、次に示すように、文字列の配列を簡単に作れる“`%w[]“`という便利なテクニックを知っておくと良いでしょう。

“`rb
>> %w[foo bar baz]
=> [“foo”, “bar”, “baz”]
>> addresses = %w[USER@foo.COM THE_US-ER@foo.bar.org first.last@foo.jp]
=> [“USER@foo.

元記事を表示

【Rails】学習アプリにおける進捗状況をprogressバーで表現する

rails 初学者のアウトプット用投稿です。同じ結果を得られるより良い書き方がございましたらコメントでご教示頂けると幸いです。

#実現したいこと
学習アプリ作成においてユーザーの個人ページ(user_controllerのshowアクション)に一週間、どのくらい学習を行なったのかをhtmlのprogressタグで見える化する。

今回はanswerモデルにそれぞれの学習内容が保存されており、answerの作成数をカウントし、それを学習量の算出基準とする。

イメージ図(下記)
![FEBA03C7-F478-4A4E-B8ED-545C9F588945_4_5005_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1640672/72761668-1709-023e-484d-fe2c0051f2b2.jpeg)

#実装の流れ
①userに紐づいたanswerモデルから一週間分のデータを配列として取り出す。

②①で取り出したデータからさらに曜日だけを配列として取り出す。

③show.html

元記事を表示

【個人開発】検索サイトのクエリストリングを検索できるwebサービス「searchsearch」をリリースしました!

たとえばQiitaで「AWS ECS docker」について新着順で検索をすると、URLはこうなります。

“`
https://qiita.com/search?sort=created&q=AWS+ECS+docker
“`

`q=`で検索文字列を、`sort=`でソート順を指定しているみたいですね。

Googleで「Ruby docker image」について期間指定を1年以内にして検索するとこうです。

“`
https://www.google.com/search?q=Ruby+docker+image&source=lnt&tbs=qdr:y&sa=X&ved=2ahUKEwi8qee-w5nzAhUTZt4KHQ0GBT8QpwV6BAgBECo&biw=1920&bih=1001&dpr=1
“`

同じく`q=`で入力を指定していそうです。他にも色々とクエリストリングが付いています。

Amazonで「Rails」を検索して、並び替えをレビューの評価順にしたときのURLはこう。

“`
https://www.amazon.co.jp/s?k=Rail

元記事を表示

【Rails】LazyHighChartsで箱ひげ図を作成

## 1.はじめに
閲覧していただきありがとうございます。
今回作成したアプリの経緯や開発の苦悩などをまとめました。
よろしければ、ご覧ください。
## 2.関連URL
アプリ:https://box-test-app.herokuapp.com/
Github:https://github.com/suugakusan/box_test
## 3.アプリ概要
数値を入力するだけでその箱ひげ図を作成することができるアプリです。

* 箱ひげ図の作成・編集・削除機能
* 数値の入力・削除
* ログイン機能
* ゲストログイン機能

## 4.アプリの制作背景
 中学2年生の数学で学ぶ箱ひげ図ですが、教科書の内容を扱うだけでは、理解が不十分になります。特に、四分位数を求めることはできても、箱ひげ図から実際のデータを予測できる力が足りません。
 そこで、数値を入力するだけで箱ひげ図を作成できるアプリがあれば、箱ひげ図を苦手とする生徒を救うことができるのではないかと思い制作しました。

## 5.機能一覧
| |機能 |gem |
|:—: |:—: |:—: |
|1 |

元記事を表示

Rails6でJavaScriptを書く

# はじめに
初めてRuby on Railsを触ることになり、JavaScriptを使ってみることになった。
うまく動く資料が見当たらなかったため、備忘録として書いておくことにした。

# JavaScriptの実装
## JavaScriptの書く場所
app > javascript > packs
– file下に制作のファイルを作成するのがおすすめ
– 自分はusersというファイルを作成し、その下にjsファイルを作成した
## jsファイルに書くべきこと
– 読み込み時に表示

“`js
window.onload = function(){
//中略
//ウィンドウが読み込まれたとき表示する
}
“`
– 動作により呼び出す場合

“`js:app>javascript>packs>user>common.js
window.onchange = function hogehoge(){
//中略
//自分はonchangeで呼び出しをしたためこのように記載した
}
“`

##書いたjsを読み込ませる

“`js:app>javascript>packs>ap

元記事を表示

OTHERカテゴリの最新記事