Ruby関連のことを調べてみた2020年07月26日

Ruby関連のことを調べてみた2020年07月26日

【初心者】Rails6 でプロジェクトを立ち上げるまでとつまづいたところ

####rubyのバージョン確認、インストール

“`
$ ruby –version
“`
rubyのバージョンは2.5.0以上であれば動きます。ただ、最新版の方がメソッド追加や処理が早くなっていたりします。今は2.7.1が安定版のようです。

“`
#最新のrubyをインストール
$ rbenv install 2.7.1
“`

####rails6でプロジェクトの立ち上げ 
“`
$ mkdir sample_app
$ cd sample_app

#rubyのバージョン変更
$ rbenv local 2.7.1

#rails6インストール
$ gem install rails -v ‘6.0.0’

# DBをPostgreSQLに変更しています
$ rails _6.0.0_ new -d postgresql

$rails s
“`

####つまづきポイント

通常なら上記で立ち上がるのですが、初めてrails6を使うと

“`
$ rails s

=> Booting Puma
=> Rails 6.0.0.rc2 application

元記事を表示

Rails Simple Calendarで記事投稿後、カレンダーに反映させたい。

Simple Calendarにて
記事投稿→カレンダー投稿画面(create)→カレンダーに反映という事を行いたいのですが、
現状、記事投稿は出来ていて、そこから記事投稿のタイトルデータを抜き出してカレンダー投稿画面にタイトルのみデータを表示取得させたいです。
540d264cf48615032c7353a06dffbdf6.png
※こちらの画面ではTitleが入力フォームになっていますがこのTitleを、記事のTitleを取得したいです。

試した事ですが
5336e6a17d83d2db786feb63021d995c.pngRailsTutorialチートシート

「RailsTutorialをやったはいいが、2週間もしたら何をしたか思い出せなくなる」

「結局自分には何ができるのか」「俺は…弱い…!」

そんな人のためのチートシートです。

とりあえず保存をして、こっそりコピペして、色々付け加えながら自分だけのチートシートを作りましょう。

# 機能要件

[Rails]検索機能
https://qiita.com/shin1rok/items/779e581e9d12a92310c3
[Rails]文章投稿機能
https://railstutorial.jp/chapters/user_microposts?version=5.1#cha-user_microposts
[Rails]画像を投稿したい(外部ライブラリ – CarrierWave)
https://railstutorial.jp/chapters/user_microposts?version=5.1#sec-basic_image_upload
[Rails]投稿した画像が大きくなっちゃう
https://railstutorial.jp/chapters/use

元記事を表示

Ruby + SinatraでLINE Botを作ろう – Part 2

こんにちは。
この連載では、複数回に渡りRubyとSinatraを使って

– 本の裏にあるISBNコードを送信すると検索して本の画像を表示してくれる
– その本を記録しておいて、あとから参照できる

という機能を搭載した「ほんめも!」というLINE Botを作ってみたいと思います。

この記事は[Part 1](https://qiita.com/lit_mizu/items/c73c4231e59e51157d97)の続編です。まだ読んでいない方はぜひ読んでみてください!

## 0. この記事で作るもの

この記事では、実際に書籍の情報を返してくれるAPIを利用して検索結果を返信するというプログラムを書いていきます。
プログラムの流れは下記の通りです。

![linebot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672451/4a26fffc-231d-a5cf-a5fd-df5c95f166f6.png)

### 0_1. 書籍検索APIの紹介

今回は「[openBD](https:

元記事を表示

Ruby入門

#irb
対話的な実行環境
#####オブジェクト型を確認する
 ”文字列”(レシーバ).class → String
 1.class → Integer
#####object_idを確認する
 ”文字列”.object_id → 実行されるたび別のオブジェクトが作られる
 1.object_id → 同じ数値オブジェクトが提供される
#####オブジェクトを結合する
 message1 = “メッセージ1”
 message2 = “メッセージ2”
 message1.concat(message2) ※括弧の省略可
 message1 = メッセージ1メッセージ2

#文字列オブジェクト
人間が読むことのできる文字や記号で構成された、単語や文章のようなデータ
ダブルクォーテーションで内容を囲む(シングルクォーテーションでも可)

#数値オブジェクト
数を表すオブジェクト

#クラスとインスタンス
オブジェクトがどんな機能持てるかは、そのオブジェクトがどんなクラスのオブジェクト出るかで変わってくる。Rubyが標準的に用意しているクラス(組み込みライブラリ・標準添付ライブラリ)

元記事を表示

【Rails】命名規約について

Railsの原則として、**「設定より規約」**がある。モデル、コントローラ、ビューに関するクラス名やファイル名には命名規約(つまり名前の付け方)に決まりごとがある。

コントローラ名を「comments」とした場合のコントローラやビューに関する名前は以下の通りである。

#コントローラの命名規約
|名前      |例 |ルール |
|:—————–|:——————|:——————-|
|コントローラクラス名 |CommentsController |〇〇Controller、先頭は大文字|
|コントローラファイル名 |comments_controller.rb|〇〇_controller.rb |
|テンプレートのディレクトリ名|app/views/commnents |app/views/〇〇 |

モデル名を「comment」とした場合の名前は以下の通りである。

#モデルの命名規約
|名前      |例

元記事を表示

rubyでタイピングゲームを作る

こんにちは。今回はRubyでタイピングゲームを作ろうと思います。とりあえずやってみたいって人は[ここ](https://github.com/ts-26a/typing-game)からやってみてください。

それじゃあ作り方?を書いていこうと思います。

# [1] 単語をを集める

今回は面倒くさかったので英単語100個のみにしていますがお好みで足してください。ちょっと変えれば日本語もできるはずです(ヘボン式に対応するのが面倒くさそうではありますが)(Hashのvalueをlistにして~とかすればいいのかな?)

まあここは適当にやっていいと思います。そんな大事じゃないですし

# [2] キーイベントを取得する

`io/console`を使うと楽にできます。Rubyはこういうのが楽でいいですね。

“`ruby
require ‘io/console’

ch = STDIN.getch
puts ch
“`

# [3] 一気にハイライトと核の部分を書く

wordsに[1]で書いたwordのlistが入ってるものとします。

“`ruby
require

元記事を表示

プログラミングスクールで150日間勉強してできるようになったこと・思ったこと

## はじめに
自分は今、[フィヨルドブートキャンプ](https://bootcamp.fjord.jp/)というプログラミングスクールで勉強しています。スクールで勉強したことや感想などを書こうと思います。

ちなみに前回[プログラミングスクールで100日間勉強してできるようになったこと・思ったこと](https://qiita.com/lamp7800/items/b197ac3cbca4622639ac)を書きました。思いの外伸びてびっくりしました。よろしければ前回の記事と合わせてご覧ください。(重複する部分もあります?)

## 150日で勉強したこと
### 勉強時間とスクールの進度
770時間勉強しました。本やUdemyでインプット→課題→レビューを受けて修正、というサイクルを繰り返しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572976/cf951773-593c-6432-45e3-ca51d05d143b.png)

スクールの進度は62%まで進みました

元記事を表示

[4, 7, 9, 2, 3] から “2-4, 7, 9” を得る

# はじめに

この記事は以下の記事を見て書いた。
[Rubyのパターンマッチを使って簡単なプログラミング問題を解いてみた – Qiita](https://qiita.com/jnchito/items/36c1c28fa82d1133d5ac)

上記の記事は,

“`rb
“1, 5, 10-12, 15, 18-20”
“`

という文字列から

“`rb
[1, 5, 10, 11, 12, 15, 18, 19, 20]
“`

という配列を Ruby で得る方法について書かれている。

一方,こっちの記事はその逆。つまり,正の整数の配列が与えられたとき,それをソートしたうえで,さらに続き番号になっている箇所をハイフンで繋いだ表記にしてカンマ区切りの文字列を作るということ。

こういった処理は,例えば書籍の索引のページ番号の表記を作るのに使われる。

なお,このような表記には,

* 続き番号が 4, 5 のように二つしかなくても `4-5` とまとめる
* 二つしか続かない場合は `4, 5` とバラバラにしておく

という二つの流儀が考えられるが,この記事では

元記事を表示

99%のメールアドレスにマッチする正規表現

#そんなことできるんですか・・・?
サイトURLはこちら↓
http://emailregex.com/

長すぎて読む気になれないw

元記事を表示

NameError in Incomes#index のエラー

家計簿アプリ作成の上で

**NameError in Incomes#index** 

のエラーが出ました

“`index.html.erb
<% @page_title = "収入科目一覧" %>

<%= page_title %>

<% if @incomes.present? %>

<% @incomes.each do |income| %>

<% end %>

科目名 備考
<%= income.name %> <%= income.description %>

<% else

元記事を表示

プログラミングスクールを卒業したての大学生がRailsで家計簿アプリを作る!

はじめまして
プログラミングスクール卒業したての文系大学生「しょうた」です

私は2020年7月19日にプログラミングスクールを卒業しました。
学んだ言語は、Rubyです

一通りカリキュラムを終えた私が、新たな目標
「IT企業への長期インターン」
に向けて自作家計簿アプリを作成します。

今後、その過程で躓いたことや、学んだことを記して、成長日記・備忘録代わりに使っていこうと思います。

私の記事がいつか誰かの参考になれば幸いです。

元記事を表示

Active Admin 管理者画面からユーザー作成できない

## 経緯
“`
rails g active_admin:resource user
“`
を実行し、

“`
class DeviseCreateUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" t.string :reset_password_token t.datetime :reset_password_sent_at t.datetime :remember_created_at t.timestamps null: false end add_index :users, :email, unique: tr

元記事を表示

チャットアプリ制作

個人の学習の知見を広げるため、チャットアプリを制作しました。

## アプリの概要

・ユーザーの登録ができる
・ユーザーがグループを作成できる
・グループを指定して、メッセージを送ることができる

## 使用技術

・Ruby
・Ruby on Rails
・JavaScript
・MySQL
・AWS
・nginx
・unicorn
・Capistrano

## 本番環境のリンク

[18.178.232.222
](http://…)

## githubのリンク

https://github.com/mitsugu3/ChatSpace

## 感想

アプリ制作の流れを掴むことができた。
AWSで、本番環境にあげるのが
シークレットキーなどの知識が必要だったので難しく感じたが、
検索記事を参考に自走することができた。

元記事を表示

slickでスライドショーをお洒落に実装したかった。

##スライドショーを実装するためにslickを導入
詰まりまくったことを解決したので投稿

##環境
rails : 6.0.3.2
ruby : 2.6.6
Docker, docker-compose

##参考URL
http://kenwheeler.github.io/slick/

##先にできていること
jQueryの導入

##slick導入編

###slick本体をインストール

“`ruby:qiita.rb
$ docker-compose run –rm web npm i slick-carousel

なんやかんや

40 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
“`

##applocation.html.erbのhead要素に追記

“`ruby:qiita.rb Active Admin リソースの削除

## 結論

“`
$ rails destroy active_admin:resource モデル名
“`
これで削除できます。

ググってもなかなか出てこなかったので、書きました。

元記事を表示

FizzBuzzを、やってみた。

### 概要
Rubyで,、FizzBuzz
1から100の変数を表示、その中の
3で割り切れる値には、文字列”Fizz”を
5で割り切れる値には、文字列”Buzz”を
表示し
3でも5でも割り切れる値には”FizzBuzz”を表示する。

“`fizz_buzz.rb
(1..100).each{|n|
if n % 15 == 0
puts “FizzBuzz”
elsif n % 3 == 0
puts “Fizz”
elsif n % 5 == 0
puts “Buzz”
else
puts n
end
}
“`
### コマンドで実行した結果

“`

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuz

元記事を表示

hashのkeyとvalueのマッピングに関して

hashのvalueをうまく取得できないので調べてみたらちょっとした見落としだった。

“`ruby
hash1 = {key: “value”} #=> {:key=> “value”}
“`
と、

“`ruby
hash2 = {“key”=> “value”} #=> {“key”=> “value”}
“`
の違いを理解していなかった。
記述の仕方でkey名が変わるようだ。
上の例では

“`ruby
hash1[“key”] #=> nil
hash1[:key] #=> “value”
“`
になる。

元記事を表示

RailsでGoogleMapsAPIを表示・ピン表示まで

#はじめに
過去に自分のポートフォリオでGoogleMapsAPIを利用していましたが、流れを忘れていたのでリマインドです。

#環境

rails 5.2.3
ruby 2.6.3

#今回すること
・現在地情報から経度緯度を取得しマーカーを表示する。
・取得した一覧情報をjson形式に変え、マーカーとして地図上に配置。
・地図の表示

###表示させるコントローラー作成、今回アクション名はsearchで。

“`ruby:spaces_controller.rb
def search
@spaces = Space.all
end
“`

###モデルの作成、住所を入力後緯度経度を自動取得させる。

“`ruby:space.rb
class Space < ApplicationRecord geocoded_by :address after_validation :geocode, if: :address_changed? end ``` ```ruby:schema.rb create_table "spaces", force: :cas

元記事を表示

超初心者向けGitHubの使い方(チーム開発)

自分自身が、GitHubの初心者なので
Rubyチーム開発の手順として、忘備録としてまとめます。
GitHubのアカウントを持っていて、GitHub Desktopもダウンロードしている
ことを前提としています。
もし、何か間違っていることがあれば教えていただきたいです。

最初に、アプリの雛形を作成します(デプロイする人が作成をします)。

ターミナル

“`
% rails _6.0.0_ new アプリ名 -d mysql    # mysqlデータベースでの開発
“`

config/database.yml

“`ruby:

default: &default
adapter: mysql2
encoding: utf8 # encodingを変更。
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
“`
ターミナル

“`terminal
% rails db:create # デ

元記事を表示

OTHERカテゴリの最新記事