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

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

【実装手順】パンくずリストの設定(Rails/gretel)

gretelを使ってパンくずリストを実装する手順を学んだのでアウトプット。
gretelのgithubは[こちら](https://github.com/lassebunk/gretel)

#作業環境
・Mac
・ruby 2.6.5
・rails 5.2.3

#パンくずリストとは
ユーザーが今WEBサイト内のどの位置にいるのかを視覚的に分かりやすくするため、上位の階層となるWEBページを階層順にリストアップしてリンクを設置したリストのことを指します。

↓こんな感じです。
![スクリーンショット 2020-11-03 8.40.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/823516/c6cfbafc-ae58-92f4-d0af-38f797bd1b81.png)

###パンくずリストを設定するメリット
・ユーザーがどのページを読んでいるのかが瞬時に分かる。
・[クローラー](https://cluster-seo.com/blog/crawler.html)巡回を手助けする。
・S

元記事を表示

railsのdocker-imageをpullしてから、立ち上げるまで

#dockerで一度作ったrails環境を再活用しよう
dockerやdocker-composeを他の人のものを参考にしながら一度作成して、また同じ設定でアプリを作りたい時に一からやり直すのは面倒です。
なので、自分が作ったimageをdocker-hubにあげ、簡単に複製できるようにします。
今回はrails6.0.3, mysql8.0.2で作ったイメージを使用します。(参考:https://qiita.com/shima-zu/items/b825c5a47b3582ef99cc)

まずはdocker-compose上で使われているコンテナIDを確認し、そのコンテナIDからdocker-hubにpushするためのimageを作成します。
ターミナルでこのコマンドを入力して、コンテナの状態を取り出します。
“`MacBook-Pro rails_app % docker ps -a“`
出力結果
“`CONTAINER ID IMAGE COMMAND CREATED

元記事を表示

Rails・jQueryで画像プレビュー機能の実装をしてみた

# はじめに

ポートフォリオのサイトを制作中、画像アップロード機能をつけていたのですが、プレビュー機能がないため、ちゃんと任意の画像が選択できていたのか分かりづらい問題がありました。

そのため画像プレビュー機能をつけてみようと思い、実装してみました。

課題は何点かあるものの、実装できたので、まとめていきたいと思います。

# 前提

– Ruby on Rails 6.0.2
– jQiery 3.5.1
– Bootstrap4

# 機能詳細

## 画像アップロードの流れ

1. ファイル入力のinputタグ押下
2. 画像選択
3. プラビュー画像を選択した画像に差替

## バリデーション時・投稿編集時

– 選択したファイルは保存された画像として大きく表示
– 「画像を変更する」ボタン押下→プレビュー画像とinputタグをtoggleで表示・非表示

# 実装

## View

“`erb:app/views/posts/_form.html.erb

<%= form_with(model: post, local: true) do |form| %>

<

元記事を表示

Railsとsimple calendarを使って予約システムを実装!datetimeにバリデーションをつけよう!

# 実装したい内容
gemのsimple calendarを使ってカレンダーに予約の予定を入れていく
rubyやRailsの基礎知識があること前提で話を進めていきます

# 開発環境
Rails 6.0.3
ruby 2.7.0

# reservationsテーブルの追加
今回はミニアプリを作る想定をしreservationsテーブルを作成しname(string)とstart_time(datetime型)のカラムを追加していきます。

“`
rails new calendar_app
“`
まずはお決まりのrails new

“`
bundle
“`
bundle installも癖づけて行いましょう。

“`ruby:Gemfile
gem ‘simple_calendar’, ‘~> 2.0’
“`
“`
bundle
“`
gemfileにsimple_calendarを追加したら再びbundle install

“`
rails g scaffold reservationc name start_time:datetime
“`
今回はスキャフ

元記事を表示

Ruby足し算

#ruby足し算
#入力される値
* a
* b

#期待する出力
* aとbを足した数を出力

#入力例
* 1 1  (1と1です)

#出力例
* 2

“`java:パターン1
a = gets.to_i
b = gets.to_i
puts a + b
“`
“`java:パターン2
a = gets.to_i
b = gets.to_i
num = a + b
puts num
“`
“`java:パターン3
a = gets
b = gets
puts a + b
“`
“`java:パターン4
a = gets
b = gets
puts (a + b).to_i
“`
“`java:パターン5
a = gets.to_s
b = gets.to_s
puts a + b
“`
# パターンといえるほど大した事はしてないが、なんせただの「1+1」ができない。おそらくpai○a独特なルールで縛りを受けてるからテストが通らないんですね〜、、本日はここに4時間ほど時間をかけて収穫は0でした。無念

#追記
“`java:これでできました
s = gets

元記事を表示

whereメソッドで条件を付け複数のレコードを取得する

fruitsテーブルのうち、nameカラムが「りんご」もしくは「ぶどう」のレコードを全て取得したいとする。

“`
Fruit.where(name:’りんご’).or(Fruit.where(name:’ぶどう’))
“`

取得できました。

元記事を表示

ActionText機能追加方法

エディターにActionText機能追加

ActionTextを使用することでエディターを使いやすくしてみます

始めにimagemagickをインストールします。
画像の大きさや文字を入力するために必要なツールです。

ターミナルで

“`
$brew install imagemagick
“`
インストール後、gemfileに、

“`
gem ‘image_processing’, ‘~> 1.2
“`

を記載。その後↓を実行

“`
$bundle install
“`
ActionTextをインストール

“`
$bundle exec rails action_text:install
“`
を実行。
ActionTextは、JavaScriptを実行しないと使えないためライブラリーのインストールをします。

“`
$ bundle exec rails webpacker:install
“`

最後にActionTextのテーブルが作られているので

“`
$ rails db:migrate
“`
を実行

ActionTextを使用して

元記事を表示

コマンドを使って、コントローラーなどを削除する方法

#はじめに
 生成するコマンドはよく使うから、覚えているけど、削除は忘れかけていたので、記録しておく。
###生成したコントローラーやモデルを削除したい

“`bash
rails d controller(model) コントローラー名(モデル名)
“`
deleteのdかな。
関連するファイル全て削除してくれる。

###生成したデータベースを削除したい

“`bash
rails db:drop
“`
ちなみに、生成するときは、`rails db:create`
保存したデータだけを削除するのは、`rails db:reset`

元記事を表示

Qiita初投稿

○自己紹介

– 2017年に高専本科卒業 ⇨ 就職のため上京
– メカトロニクスエンジニアとして社会人生活をスタート
– 機械工学のオワコンっぷりに失望し,好奇心で業務外の勉強を開始
– 本業に全く役に立たないScienceの勉強がいつのまにか”趣味”になる
– “仕事でいかせる環境に転職したい”&”この面白さになぜもっと早く気づかなかったのか?” と,教育に対して圧倒的後悔する
– 2020年にWeb言語にを学習し,自分の探していた庭を見つける
– 未経験Web系バックエンドPGとしてのキャリアをリスタートするためにポートフォリオ作成開始(現在)

○Qiita投稿の目的について

– 学習した内容のメモ
– 学習の記録

○今後の投稿について

– Ruby on Rails の学習内容 (書籍,Udemyの内容まとめ)
– ポートフォリを作成過程

元記事を表示

hamlでaudio_tagを使ってmp3再生をする手順

## はじめに

hamlを使って音声を再生することができるサイトを作りたかったのですが、HTMLの記事しか見つかりませんでした。実装するにあたりコードの記述で苦労したので備忘録として記事にしました。

HTML5には音声を再生するためのaudio_tagというタグがあります。これを利用することでmp3、wavなどの拡張子の音声を再生できるプレーヤーを設置できます。

今回はmp3でやっていきます。
Railsのバージョンは5.2.3を使っています。

## 音源の用意

まず最初に再生させたいmp3音源を用意します。私の場合は利用したい音源がmp3ではなかったので、こちらのサイトで拡張子を変更しました。
https://online-audio-converter.com/ja/

## 音源をディレクトリに入れる

次にフォルダーを作成します。

app/assets/audios

audiosフォルダーの中にmp3音源を入れていきます。
私はFinderで音声ファイルの移動をしました。

今回はサンプル音源として「sample.mp3」というmp3を用意しました。
![スクリ

元記事を表示

変数

#同じ値を何度も使おう

これまで値を使うたびに、同じ値であっても毎回記述していましたと思います。

しかし、毎回同じ値を書くのはめんどうですよね。
例えば、円の面積の計算を行うプログラムを作成する場合、毎回円周率の値を書くのは非常に大変な作業です。

“`java:【例】同じ値を毎回記述する
# 半径3の円の面積
3 * 3 * 3.14159

# 半径10の円の面積
10 * 10 * 3.14159

# 半径11の円の面積
11 * 11 * 3.14159
“`
もし円周率を3.14159ではなく3.14へ変更することになったら、記述をすべて書き換える必要があります。

この問題を解決するのが**変数**という仕組みです。

#変数
**変数とは、値を入れる箱のようなものです。この箱には名前をつけることができ、どんな値が入っているのかを簡単に識別できるようになります。この名前を変数名と言います。**

変数を利用することで、値を再利用したい場合に、変数の名前を使うだけで呼び出すことができます。

変数の使い方について、順に説明します。

#変数の宣言と定義
**変数

元記事を表示

Rails fontawesomeを利用してheaderのリンクにアイコンを追加する

今回は意外と苦労したheaderにアイコンを追加する方法を自分用のメモとして、共有させていただきます。

##環境
ruby2.6.5
Rails 6.0.3.3

##cssフレームワーク
bulma

##結論
font-awesome-sassを導入し、ヘルパーメソッドのiconを使えば簡単にアイコンを表示することができます。
以下が実際のコードになります。

“`ruby:header.html.erb
<%= link_to icon('fas','sign-in-alt', 'ログイン'), new_user_session_path, class: "navbar-item" %>
<%= link_to icon('fas', 'user-plus', '新規登録'), new_user_registration_path, class: "navbar-item" %>
“`

結果↓
![スクリーンショット 2020-11-02 20.47.58.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

【Rails/ルーティング】Prefix, URIを好みの値に設定する方法とresourcesについて深ぼる

# 概要
Railsでルーティングを設定する際は「とりあえずresources脳」な僕ですが、今日はふと「自分でURLとか設定したいよな…」と思いました。
今回はそんな思いを叶えるべく、調べた内容をまとめます。
(resourcesの名前の起源も下の方で深ぼってみました!)

# 環境

* macOS Catalina 10.15.6

* ruby 2.6.5

* Rails 6.0.3.4

* MySQL : 5.6.47

* Bootstrap : 4.3.1

# 結論

「Railsガイド : Railsのルーティング」によると、
例えば「マイページ(users#show)」へのリクエストを次のように表現したいとき。

* prefix : users_profile

* URI : ‘/users/:id/profile’

“routes.rb“に以下のように記載します。

“`app/config/routes.rb
Rails.a

元記事を表示

【Rails】UC時刻表示を日本時刻表示に変換する方法

#時刻表記変更の手順

– gem ‘rails-i18n’をインストール
– config/application.rbへ記述の追加
– config/locales配下にファイル作成、記述

#gem ‘rails-i18n’をインストール
`Gemfile`に以下のGemを追加します。(本番環境でも開発環境でも使いますので、一番下に記述しましょう)

“`:Gemfile
gem ‘rails-i18n’
“`

ターミナル

“`
bundle install
“`

※このときサーバーを立ち上げ直すのを忘れないようにしましょう。

#config/application.rbへ記述の追加
`config/application.rb`を開いて、追加と書かれている二行を追加します。

“`Ruby
module アプリケーション名
class Application < Rails::Application # Initialize configuration defaults for originally generated Rails versio

元記事を表示

Rails6(MySQL、Ubuntu環境、Cloud9)

1 railsのgemをインストール

“`
#rails6の場合
gem install rails -v 6.0.1
#rails5.2の場合
gem install rails -v 5.2.1
“`

2 MySQLセッティング(Cloud9ではMySQL自体はデフォルトでインストールされている)

“`
#これをインストールしておかないと、mysql2 gemのインストールでエラーになります。
$ sudo apt-get install libmysqld-dev
“`

3 Rails new

“`

$ rails new appname -d mysql
“`

4 MySQL Account を作る

“`
$ sudo mysql -u root #rootユーザーでログイン
$ mysql> create user ‘ユーザー名’ identified by ‘パスワード’; #ユーザー作成
$ mysql> grant all on *.* to ‘ユーザー名’; #ALL権限付与

#作成したユーザーの確認は下記コマンド
$ my

元記事を表示

Ruby on Rails モデル内の処理をコンソールだけでデバックする方法

こんにちは
今日書くのは主に初心者向けです。
今回はあるデバックの方法を紹介します。そのデバックは’byebug’です。これはbinding.pryみたいなgemは必要とせず、viewが必要としないところは魅力であります。モデルやコントローラーの処理の中にbyebugを書くだけでデバックすることができます。ただしviewに書いてもデバックはできません。

“`ruby:scraping.rb
class Scraping < ApplicationRecord def self.get_infomation require 'mechanize' agent = Mechanize.new links = [] current_page = agent.get("https://talent-dictionary.com/s/jobs/3/20") elements = current_page.at('.home_talent_list_wrapper') boxs = ele

元記事を表示

【ざっくり解説】pluckメソッドと結婚したい

突然ですが…

①あなたの身近にいる「とてつもなく仕事ができる同僚」を思い浮かべてください。
②あなたの「奥様」。あるいは「理想的な女性(男性)」を思い浮かべてください。

その二人をmergeしたようなメソッド。とてつもなく仕事ができて、なおかつ朗らかで柔らかい。それこそが今回ご紹介する「pluck(プラック)メソッド」なのです。

(…すみません真面目にやります)

## 概要
この記事は、

1.pluckとはどのようなメソッドなのか
2.pluckはどのような場面で使えるのか

について解説を行うものです。
(※すでにpluckメソッドを使いこなしている方にとっては、この記事は無益です。)

## pluckとはどのようなメソッドなのか

結論、__「あるカラムの値を配列で取得する」__メソッドです。

テーブルを例に解説します。

### usersテーブル( id, name, age )

| id | name | age |
|:—-:|:———:|:—–:|
| 1 | ken | 21 |
|

元記事を表示

【PostgreSQL】 could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket “/var/pgsql_socket/.s.PGSQL.5432”?

## rails server で起動しようとすると以下のエラーが発生

~~~
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/pgsql_socket/.s.PGSQL.5432”?
~~~

## PostgreSQLにログインできるか試してみる

同じエラーが発生

~~~
$ psql posrgres
…(中略)…
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/pgsql_socket/.s.PGSQL.5432”?
~~~

### PostgreSQLを

元記事を表示

式展開について。

#式展開
**式展開は、文字列の中に式を入れることができる機能です。**

**式展開の書き方は文字列中で#{式}とするだけです。**

**式展開をする場合は、文字列を作るときにダブルクォーテーション”
で囲む必要があります。**
**シングルクォーテーション’で囲んだ場合は式展開が行われません。**

#irbで以下のコードを実行してみましょう

式展開を試してみましょう。

“`java:irb
# 式展開で文字列に式を含む
irb(main):001:0> “今日で#{20}歳になりました”
=> “今日で20歳になりました”

# シングルクォーテーションだと式展開されない
irb(main):002:0> ‘今日で#{20}歳になりました’
=> “今日で\#{20}歳になりました”
“`

#まとめ

**式とは、Rubyにおいて「文字列」や「数値」、「変数」、「演算子式」などのこと。
式展開とは、文字列の中に式を入れる

元記事を表示

バージョン指定してrails new したけど、なぜか最新版が入ってしまう〜

# はじめに
この記事の趣旨は、ローカル環境Rails6.0.3.3の状態でRails6.0.3.1のアプリをrails newする手順とその際に発生したエラー対応をご紹介します。

#環境
Rails 6.0.3.3

#手順
##1 インスール済みのrailsのバージョンを確認

“`
% rails -v
Rails 6.0.3.3
“`

##2 使用できるバージョン一覧を確認

“`
% gem list rails
** LOCAL GEMS ***

rails (6.0.3.4, 6.0.3.3, 6.0.3.2, 5.2.4.3)

“`

##3 rails 6.0.3.1 をインストールする

“`
gem i -v 6.0.3.1 rails

“`
##4 再びバージョンを確認
“`
% gem list rails

元記事を表示

OTHERカテゴリの最新記事