- 0.0.1. Rubyで学んだこと
- 0.0.2. 【rails】PCからrvenvだけを間違ってアンインストールしてしまって鼻血が出た話
- 0.0.3. 【Ruby】配列を作るときに使う%記法まとめ
- 0.0.4. 【ruby】整数で出力した秒を「00:00:00」の形式で出力
- 0.0.5. rubyで1文字ずつ表示する
- 0.0.6. Indeedパブリッシャープログラムを利用して、求人広告をapiで取得する
- 0.0.7. Ruby 5 erbファイルのフォームのdate_select オプションの書き方
- 0.0.8. 検索結果を要チェック!Rubyの公式リファレンスは docs.ruby-lang.org です 〜公式な情報源を調べるクセを付けよう〜
- 0.0.9. #Ruby 2.7.0 で改行できるようになったコンソール irb を使ってみる
- 0.0.10. ぼくはこんな記事を書いてきた
- 0.0.11. Dolphinというシングルユーザー用のActivityPub serverを立ててみた
- 0.0.12. WSL の Ubuntu に Textbringer をインストール
- 0.0.13. ローカル環境にRailsの環境を構築
- 1. はじめに
- 2. なぜ
- 3. 環境
- 4. 今の環境とRubyの準備
- 4.0.1. deviseのみを用いて2つの異なるログイン機能を実装する方法(ruby on rails)
- 4.0.2. 高校文化祭の食販で自動注文機を作った話
- 4.0.3. とりあえずこれだけ。Rails ToDoアプリ作成【CRUD】勉強会 #1
- 4.0.4. Windows環境でVSCodeでのRuby on Railsの開発環境構築手順
- 4.0.5. Ruby合宿2019夏に参加してきました
- 4.0.6. クソコードあるあるを詰め込んだ「ひどいFizzBuzz」を書きました。
- 4.0.7. Rails Tutorialの知識から【ポートフォリオ】を作って勉強する話 #14 ユーザ投稿表示, ページネーション編
Rubyで学んだこと
#Rubyはどんな言語?
* サーバーサイドで処理する言語である。
* ブラウザからのリクエストを受け取って、サーバー上で処理をこなす言語。
* ブラウザ上の操作によって処理するフロントエンド言語(JavaScript)とは役割が異なる。
* webアプリケーションを構築するなら、フレームワークは「Ruby on Rails」ほぼ一択になる。* インタプリタ言語である。
* Javaなどのコンパイル型言語では、事前に機械語にすべて翻訳されてからサーバー上で実行される。
* インタプリタ言語では、コードを上から順に一行ごとに機械語に翻訳されて実行される。* インタプリタ言語のメリット/デメリット
* メリット
* コンパイル型言語では、実行前にすべて翻訳しなければならないので動作確認に時間がかかる。
* インタプリタ言語なら、コードを書いてからすぐ実行できるので、動作確認がしやすい。
* 小規模、中規模(千人単位のユーザーアクセスまで)のシステム開発に向いている。
* デメリ
【rails】PCからrvenvだけを間違ってアンインストールしてしまって鼻血が出た話
#コトの顛末
EC2に自分の作ったアプリをgit cloneしまして「さて、bundle installじゃ!」という時に、
エラーが出まくり。どうやらrvenvをアンインストールして、再度入れ直すと良いという事が書いある記事を見たのでやろうとしたら、タイムアウトしていたよう。
ローカル場でコマンドを打ち込んでしまい、PCからrvenvをアンインストールされrails起動しなくなってしまいました。勉強中の身ではありますが、開発中の出来事で発狂しそうになり、
物理以外で初めて鼻血が出ました。#もう一度入れようとするとクセあり
最初に環境構築したように、普通にrvenvをもう一度インストールすればいいんでしょ?って思ったらそうも行かず。rvenvのインストールはうまく行くのですが、
そのあとにbundlerを入れるくだりで下記のようなエラーが出る。“`
$ gem install bundler
ERROR: While executing gem … (Errno::EACCES)
Permission denied @ rb_sysopen – /Use
【Ruby】配列を作るときに使う%記法まとめ
## はじめに
Rubyで入力を簡略化出来る%記法についてまとめました。
**文字列・シンボル**の2つの配列式に絞って記載してあります。この記法は**キーを打つ回数を減らす**のにはもってこいですね:point_up:
参考にしたのは以下Ruby公式リファレンスです。
[リテラル (Ruby 2.6.0)](https://docs.ruby-lang.org/ja/2.6.0/doc/spec=2fliteral.html#percent)## この記事が役に立つ方
– 配列はつい`[“a”, “b”, “c”]`と書いてしまう
– Rails初心者## この記事のメリット
– 配列を作るときの%記法が書けて、読めるようになる## 環境
– macOS Catalina バージョン10.15.1
– シェル:zsh
– Ruby 2.6.3## まとめ
まず先に、表でまとめておきます。| 記法 | 型 | 式展開 |
| :—-:|:—-:|:—-:|
| `%w(配列にしたい内容)` | 文字列 | なし |
| `%W(配列にしたい内
【ruby】整数で出力した秒を「00:00:00」の形式で出力
動画の開始位置は●秒、終了位置は●秒、その部分の再生時間は?
という計算をしたいと思ったので調べてみました。
「movie_time.strftime(‘%X’)」みたいな感じで簡単にできると思ったら、
Timeメソッドなるものの力を借りなきゃいけないようでした。“` time.rb
start = 30
stop = 79
movie_time = stop – start
movie_time = Time.at(movie_time).utc.strftime(‘%X’)
puts movie_time
“`#参考記事
Ruby on Railsで秒で指定した時間を時:分:秒に変換する
rubyで1文字ずつ表示する
下の、motoの値を書き換えるだけなので、簡単です。
前回出した、[musicplayerの作り方](https://qiita.com/midorifugu2007/items/ae9b2e89bb02ece02ebb)などの記事でも使っていたのですが、説明を忘れていました。“`ruby:ruby
moto = “テスト\n” #これは、テストと表示するプログラムです。
string = moto
loop do
print string.chr
moto = string.chr
string.sub!(/#{moto}/,”)
if string.size == 0
break
end
sleep 0.1
end
“`
Indeedパブリッシャープログラムを利用して、求人広告をapiで取得する
求人サイトIndeedでは、求人広告を掲載することによって報酬を得られる**Indeedパブリッシャープログラム**という施策を行っています。
今回は、公式のAPIを用いて求人情報を取得する方法について、実装例を交えて共有したいと思います。# アカウントを登録する
まず、[Indeedパブリッシャープログラム](https://jp.indeed.com/publisher)にアクセスしてログインorアカウント登録しましょう。
# サンプルリクエストを実行する
登録できたら、[求人検索apiタブ](https://ads.indeed.com/jobroll/xmlfeed)を選択しましょう。求人情報を取得する**サンプルリクエスト**や
Ruby 5 erbファイルのフォームのdate_select オプションの書き方
オプション指定の書き方だけで30分くらいハマったので,記録します.
あと,けっこうググってもなかなかわからなかった.#環境
Ruby version: RUBY VERSION: 2.6.3
Rails version: Rails 5.0.7.2#date_select オプションの書き方
カラム(ここでは:release_date)の後ろの{}内にオプションを書く.“`new.html.erb
<%= f.date_select :release_date, {start_year: 1900, end_year: (Time.now.year)},class: 'form-control' %>
“`#参考
https://rails.densan-labs.net/form/datetime_register_form.html
https://api.rubyonrails.org/v5.1.7/classes/ActionView/Helpers/DateHelper.html#method-i-date_select
検索結果を要チェック!Rubyの公式リファレンスは docs.ruby-lang.org です 〜公式な情報源を調べるクセを付けよう〜
## TL; DR(最初に結論)
– たとえば、 “ruby compact” のようなキーワードで検索をかけると、公式リファレンスっぽい、非公式リファレンスがトップに表示されることがよくある
– Rubyの公式リファレンスは [docs.ruby-lang.org](https://docs.ruby-lang.org/) なので、情報の正確性を重視するならここを参照する。
– AmiWiki([ref.xaio.jp](https://ref.xaio.jp/))は非公式リファレンスかつ、何年も更新が止まっているサイトなので、このサイトを参照することは筆者としては推奨しない。
– Rubyのリファレンスに限らず、技術情報を調べる際はそれが公式の情報源かどうかをちゃんと確認した方が良い。## はじめに
プログラミングをしていてわからないことがあると、みなさんはきっとネットで検索して調べると思います(もちろん僕も毎日調べまくってます)。
ネットを検索するといろんな情報がリストアップされますが、みなさんはその情報が信頼できる情報源かどうか、毎回確認しているでしょうか?
最も信頼でき
#Ruby 2.7.0 で改行できるようになったコンソール irb を使ってみる
それだけ。
“`
rbenv install 2.7.0-dev
“`“`
irb
“`![image](https://user-images.githubusercontent.com/13635059/64682579-afce8c00-d4bc-11e9-80b6-3993f34b3389.png)
入力中であればDELETEキーで戻ることもできるみたいです!
# Original by Github issue
https://github.com/YumaInaura/YumaInaura/issues/2719
ぼくはこんな記事を書いてきた
記事タイトルは立花隆『[ぼくはこんな本を読んできた](https://books.bunshun.jp/ud/book/num/9784163510804)』のパロディー。
ふとマイページを見たら,これまでに書いた記事が 99 本であることに気づいた。
100 本目は何を書こうか。思いつかないので過去記事を振り返ってみた。
101 本目以降の記事も必要に応じて追記していくことにする。# Ruby
やっぱり Ruby の記事が多い。
## 初心者向け
Ruby の初心者に知ってもらいたいこと。
* [Ruby のエラーメッセージを読み解く(初心者向け)その 1](https://qiita.com/scivola/items/3017068a354892b239f4)
エラーメッセージが読めるようになるのが中級への第一歩。
* [Ruby のエラーメッセージを読み解く(初心者向け)その 2](https://qiita.com/scivola/items/77017693de371ab49667)
この続きを書くつもりだが,果たせていない。
* [Ruby の文
Dolphinというシングルユーザー用のActivityPub serverを立ててみた
activitypubというprotocolがあります。わかりやすく言うと、分散snsのprotocolです。このprotocolを使ったserverで有名なのはmastodonです。
今回、misskeyというmastodonに似たプロジェクトがあるのですが、その姉妹プロジェクトであるdolphinがシングルユーザー、つまり、お一人様インスタンスと呼ばれるサーバーに特化しているようなので、herokuで立ててみました。
https://github.com/syuilo/dolphin
“`sh
$ git clone -b master git://github.com/syuilo/dolphin.git
$ cd dolphin
$ cp .config/example.yml .config/default.yml
$ npm i$ heroku create $APP_NAME
$ ls -a ./.git
$ heroku git:remote -a $APP_NAME
$ heroku buildpacks:set https://github.com/
WSL の Ubuntu に Textbringer をインストール
# 概要
WSL(Windows Subsystem for Linux)上の Ubuntu に [Textbringer](https://github.com/shugo/textbringer) をインストールする手順です。# 環境
– Windows 10 Home 64bit バージョン 1903
– WSL(Windows Subsystem for Linux)を利用
– Ubuntu 18.04 LTS
– WSLtty
– rbenv
– ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]# インストール手順
`$ sudo apt install libncursesw5-dev`
`$ gem install curses`
`$ gem install textbringer`# 起動
`$ textbringer`
ローカル環境にRailsの環境を構築
はじめに
Ruby on Railsの環境構築に関する記事はたくさん存在するので、自分の備忘録的にメモ程度に残す
なぜ
Railsチュートリアルをやる上で、AWS Cloud9を使ってたんですが、ローカルにあったほうが便利じゃね?と思った
https://railstutorial.jp/環境
OS:macOS Mojave
今の環境とRubyの準備
Rubyはrbenvでいれる。
“`bash
$ which ruby
/usr/bin/ruby
$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
“`
こちらを参考に環境構築していきます。“`bash
$ brew install rbenv ruby-build
…
.
deviseのみを用いて2つの異なるログイン機能を実装する方法(ruby on rails)
# はじめに
久しぶりの投稿になります。(最近コーディング以外のことをやっていたせいでqiitaに記事が書けなかった^^;)
ECサイトの開発でrails-admin等の管理者機能作成gemを使わずに、deviseのみを用いて管理者とユーザーのログイン機能を実装した時に思いのほか詰まったので備忘録がてらメモを残しときます。
開発環境
仮想環境:Linux(vagrant)
rails 5.2.3
ruby 2.5.7##サンプルプロジェクトの作成
まずはrails newでサンプルとなるプロジェクトの作成を行いましょう。“`ruby:コンソール
$ rails new devise-sample
“`
これでサンプルプロジェクトの作成完了です。##deviseのインストール
まずはgemファイルにdeviseを入れてましょう。(私は毎回ファイルの一番下にdeviseを追加しています)“`ruby:Gemfile
.
.
.
gem ‘devise’
“`“`ruby:コンソール
$ bundle install
“`“`ruby:コンソール
高校文化祭の食販で自動注文機を作った話
#経緯
私の学校では、毎年文化祭で高校3年生が食販をする伝統があり、私のクラスでは「生姜焼きパン」を売ることになりました。(本記事の主旨とは逸れるがこれがめちゃくちゃ美味い)
基本的に食販は以下のようなフローで行われます。
このフローは厳守です。即ち注文が入らない場合は調理できません。作り置きは衛生上問題があるため不可です。
つまり、注文数と調理数を適切に管理しないと、両者が食い違い大量の廃棄が出る可能性すらあるのです。従来はボードなどを用いてごちゃごちゃやっていたらしいですが、あまりにも非効率で間違いが生じる可能性も否めません。そこで私たちはサーバーを用意して、文明の利器「スマートフォン」を用いた一元化管理を考えました。#基本的な仕
とりあえずこれだけ。Rails ToDoアプリ作成【CRUD】勉強会 #1
# 初心者用Railsアプリ練習帳
勉強会を開き、Rails初学者に日頃教えています。初心者向け勉強回資料用もかねて作成。
ある程度基礎を学習していると、読みながら真似はできるけど、いまいち全体の知識がつながっていないので自分で作ることができない…そんな状態になりがちでした。
## 対象者
– Railsでなんでもいいからの教材をやった人
– Rails基礎はなんとなくわかってきた人
– Railsで自分でアプリ作るのはまだ無理そうという人
– Rails以外のフレームワークならわかる人**※ 正確さより概念とアプリ作成の流れを重視します。**
## コンセプト
他にも言っている方がいますが、勉強会で教えている経験から初学者が同じ教材を何周もするのは上達が遅いように感じています。知識はあるけど自分で一から作るのは無理そう。
エラーが出て対処出来ないということになりがちでした。
こういう場合、実際に手を動かし、自分の頭で考えて簡単なアプリを作る必要があるけど、
– いきなりだと何を作ればいいのかわからない…
– 一連のアプリを作っていく順番がわからない…
–
Windows環境でVSCodeでのRuby on Railsの開発環境構築手順
※ Rubyの推奨環境はLinux?とはいえWindowsしか持ってないよ!って人向けです
# 1.Rubyのインストール
Rubyで開発する上で、最も必要なものはRubyのインストールなので
https://rubyinstaller.org/downloads/
からRuby + Devkitをダウンロードするダウンロードしたらexeファイルを実行してインストールをする
インストールしたら、
“`
ruby -v
“`
コマンドを実行、バージョンが表示されたならばOK
バージョンが表示されなければ、Rubyをインストールしたパスの下の/binフォルダにパスを通す2.Git bashのインストール
https://gitforwindows.org/
からgitをダウンロードし、インストールする3.VSCodeのインストール、環境整備
https://code.visualstudio.com/
より、VisualStudioCodeをダウンロードし
exeファイルを実行してインストールするEXTENSIONSを選択し、Rubyを選択してこれもインストー
Ruby合宿2019夏に参加してきました
この度,8月19日~23日に島根県で開催された[Ruby合宿](https://www.rubycamp.jp/)2019夏に参加してきました.
本記事では,[Ruby合宿](https://www.rubycamp.jp/)の魅力を伝え,読者の皆さんに興味を持ってもらうことを目的としています.#こんな人に読んでほしい
+ プログラミングのイベントに参加してみたい
+ 共同開発をしてみたい
+ Rubyが好き
+ Ruby合宿に興味はあるけど不安が大きい
+ 参加したいけどプログラミングに自信がない###心配しなくて大丈夫
**私自身も合宿に参加するまで不安でいっぱいでした.**でも,**全然大丈夫!**
プログラミングの経験が少ない人もたくさん参加します.
さらに,合宿中は講師の方々から非常に手厚いサポートを受けられます.—
#Ruby合宿とは
**Ruby合宿では、数名のチームでテーマに沿ったプログラムを協力して作成します.**([公式サイトより](https://www.rubycamp.jp/))
##対象
**学生(大学・高専・専門学校・高校等)または
クソコードあるあるを詰め込んだ「ひどいFizzBuzz」を書きました。
タイトルの通りです。
コードレビューの練習などにお使いください。“`ruby:hidoi_fizzbuzz.rb
print “数字を入力してください:”
# 入力された数字をnに代入する。
n = gets.chomp.to_iresult = “”
number = 0# 3の倍数かどうかを判定する。余りが0ならtrue、そうでなければfalse。
def fizz?(number)
result = true
if number % 3 == 0 then
result = true
else
result = false
endreturn result
end# 3の倍数かどうかを判定する。余りが0ならtrue、そうでなければfalse。
def judge_buzz?(n)
result = true
if n % 5 == 0 then
result = true
else
result = false
endreturn result
end# def fizzbuzz
Rails Tutorialの知識から【ポートフォリオ】を作って勉強する話 #14 ユーザ投稿表示, ページネーション編
# こんな人におすすめ
* プログラミング初心者でポートフォリオの作り方が分からない
* Rails Tutorialをやってみたが理解することが難しい前回:[#13 パスワード再設定編](https://qiita.com/aokyo17/items/28e12c9ad40cac9e528b)
次回:準備中# 今回の流れ
1. 投稿用のモデルをつくる
* サンプル投稿を表示する
* テストをつくる[Tutorial13章(第4版)](https://railstutorial.jp/chapters/user_microposts?version=5.1#cha-user_microposts)に突入しました。
今回はユーザ投稿の表示とページネーションを実装します。
(投稿機能は#15(準備中)で紹介します。)# 投稿用のモデルをつくる
ここでの手順は以下の通りです。* Micropostモデルをつくる
* Userモデルを編集する
* バリデーションを追加する
* Micropostモデルを改良する
* エラー時の日本語化を行う## Micropostモデル