- 0.0.1. 文字列連結まとめ①(Ruby)
- 0.0.2. さくらVPSでSinatra(+mysql)を使って簡単なWEBアプリを作る
- 0.0.3. 【Ruby勉強中】チンチロをRubyで作ってみた。(ソシー)
- 0.0.4. Ruby on Rails初心者の学習記録 Part2:モデルについて
- 0.0.5. メソッド、レシーバー(image)
- 0.0.6. Ruby1
- 0.0.7. bundle install 時に ruby_dep-1.5.0 でエラーが出た際の対処法
- 0.0.8. [初心者向け]ruby モジュールの使い方 ~インスタンスメソッドとして取り込む編
- 0.0.9. Error message “error:0308010C:digital envelope routines::unsupported” の解決方法
- 0.0.10. privateメソッドとは何か、どういう時に使うのか
- 0.0.11. Rubyのローカル変数とインスタンス変数の違い
- 0.0.12. gem ‘capistrano-sidekiq’ を使って デプロイ中にcommand not found(コマンドが見つかりません)エラー
- 0.0.13. Ruby3.0.0+Rails6.1.3からRuby3.2.0+Rails7.0.4にバージョンアップした話
- 0.0.14. haml-rails によるerb->haml変換
- 0.0.15. undefined method `current_sign_in_at’ for #< ~~~ > の解決方法
- 0.0.16. 【Ruby】Hashのデフォルト値の設定
- 0.0.17. Ruby3.0にアップデートする時、sorted_setをインストールする前に確認してほしいこと
- 0.0.18. 【個人開発】料理人のための仕込み管理アプリCucina-クッチーナ-を作りました
- 0.0.19. DDBJからsraをダウンロードするためのURLを列挙する
- 0.0.20. メソッドについて
- 1. Rubyとは
文字列連結まとめ①(Ruby)
Rubyで文字列連結のプログラムをいくつか実装しました
問題
>3 つの文字列が改行区切りで与えられます。
これらの文字列をバーティカルライン | 区切りで出力してください。①「<<」で連結する方法 ```Ruby ans = "" for i in 1..3 do input_line = gets.chomp if i < 3 ans = ans << input_line << "|" elsif i ==3 ans = ans << input_line end end puts ans ``` ②「+」で連結する方法 ```Ruby ans = "" for i in 1..3 do input_line = gets.chomp if i < 3 ans = ans + input_line + "|" elsif i ==
さくらVPSでSinatra(+mysql)を使って簡単なWEBアプリを作る
## ■環境
– さくらVPS(Cent OS7)
– Nginx
– MySQL (5.7)
– Sinatra (2.2.0)## ■ゴール
Rubyで書いた簡単なTodoアプリを Nginxで動かしてみたいと思います。
## ■サーバの準備と Nginxのインストール
– サーバのプログラムをアップデートし、 Nginx等をインストールする準備をする。
“`jsx
sudo yum update
“`– Nginxをインストールする。
“`jsx
sudo yum install nginx
“`– ブラウザからログインし、Cent OSトップページが表示されることを確認する。
※ さくらVPSのコンパネにログインすればIPアドレスを確認できます。
![スクリーンショット 2023-01-15 21.34.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3092884/12d463c0-4208-abdc-702a-327ce5e40ffa.p
【Ruby勉強中】チンチロをRubyで作ってみた。(ソシー)
# チンチロ作ってみた
Ruby初心者です。
練習がてら、霜降り粗品さんがYouTubeでよくやっている’チンチロ’というゲームを作ってみました。(単位はソシー)
※ションベンという役はなし。めっちゃ時間かかっちゃったな。。。
### tintiro.rb
“`ruby:tintiro.rb
# チンチロ# ●ルール
# ——————————————————————————————————————————————————————————–
# ゲームは2人以上で行われ、まずは親を決める。親以外のメンバーは子になる
# 子が賭け金を決めたら、親がサイコロを振って勝負する役(数)を決める。3回まで振ることができるが、役が出たらその役で勝負
# 子が一人ずつサイコロを振る。親より強い役が出たら子の勝ち。同じなら親の勝ち。親より弱いのが出たら子の負け
Ruby on Rails初心者の学習記録 Part2:モデルについて
# はじめに
Ruby on Rails初心者の学習記録Part2です。
[Part1](https://qiita.com/Yasushi-Mo/items/d24fd4abab2c1333c522)では、Rubyの基本文法やRailsを利用したWebアプリケーションの開発環境構築手順及びルーティングについて学びました。
今回は[「Getting Started with Rails」](https://guides.rubyonrails.org/getting_started.html)の[「**6 MVC and You**」](https://guides.rubyonrails.org/getting_started.html#mvc-and-you)を教材にMVCアーキテクチャの**モデル**を学んでいきたいと思います。# 1. モデルとは
[「Getting Started with Rails」](https://guides.rubyonrails.org/getting_started.html#mvc-and-you-generating-a-model)に
メソッド、レシーバー(image)
~~~umarepo_show.html.erb
<%@cook.images.each do |image| %>
<%= image_tag image %>
<% end %>は、 <%= image_tag image %> でeachで回せる
<%@umarepos.each do |umarepo| %>
<%umarepo.images.each do |image| %>
<%= image_tag image %>
<% end %>
<% end %>@umareposには、Umarepoクラスのオブジェクトの配列がはいっる。
imagesというメソッドのレシーバはUmarepoクラスのオブジェクトじゃないといけない。
結果、@umareposの中からひとつづつ取り出して、
umaprepo.images
とする。Ruby1
問題
“`Ruby
puts hash.keys
puts hash.values
“`
上記のメソッドを実行した時に“`Ruby:ターミナルの表示
one
two
three
1
2
3
“`とターミナルに表示されるような変数hashを作成するためのコードをシンボルを使って記述してください。
“`Ruby:模範解答
hash = { one: 1, two: 2, three: 3 }
“`【解説】
シンボルを使ったキーの記述方法は、キーの後にコロン:をつけて定義します。
“`Ruby:使用例
hash = { キー: 値}
“`ハッシュをシンボルで記述すると、コード上では文字列のように見えていますが、内部的には数値として処理されます。数値として扱われるので、PC内での処理速度が速くなることと文字列としての役割も果たします。
シンプルで見やすいため、ハッシュのキーにはシンボルを用いることが多いです。ハッシュのキーを取得するにはkeysメソッド、値を取得するにはvaluesメソッドを使用し取得
bundle install 時に ruby_dep-1.5.0 でエラーが出た際の対処法
## これはなに
アプリケーションの ruby のバージョンを3系に上げる際に発生した、`ruby_dep-1.5.0` エラーの対処法の備忘録です。## 問題のエラー
ruby のバージョンを2系から3系に上げるために
`bundle install`を実行した際、以下のエラーが発生しました。“`
bundle install
Fetching gem metadata from https://rubygems.org/………
Resolving dependencies…
ruby_dep-1.5.0 requires ruby version >= 2.2.5, ~> 2.2, which is incompatible with the current version, ruby 3.0.5p211
“`ruby_dep が必要としている ruby のバージョンに、3系が含まれていないことにより発生しているようです。
## 調査
### ruby_dep の依存関係を確認する
以下のコマンドで ruby_dep の依存関係を確認します。
[初心者向け]ruby モジュールの使い方 ~インスタンスメソッドとして取り込む編
モジュールには
– 既存クラスに組み込む方法
– 自作クラスに組み込む方法
の2種類がある“`rb
module CustomStringdef custom_string
self.upcase + “さん”
endend
# グローバルスコープでCustomStringモジュールを、Stringクラスのインスタンスメソッドとして取り込む
String.include CustomStringp “neko”.custom_string # => “NEKOさん”
class Hoge
# 独自クラスにインスタンスメソッドとして取り込む
include CustomString# 受け取った引数にcustom_stringを実行
def receive_custom_value(text)
text.custom_string
endend
# hogeクラスのインスタンスがhogeメソッド
p Hoge.new.receive_custom_value(“neko”) # => “NEKOさん”
“`Error message “error:0308010C:digital envelope routines::unsupported” の解決方法
“`
$ bundle exec bin/webpack-dev-server
“`
上記のコマンドを実行時に
Error message “error:0308010C:digital envelope routines::unsupported”エラーが表示# 解決方法
“`
$ export NODE_OPTIONS=–openssl-legacy-provider
“`上記のコマンドで解決
privateメソッドとは何か、どういう時に使うのか
## Privateメソッドとは何か
クラス外からは呼び出せず、クラス内でのみ使えるメソッドのこと。
(インスタンスを作ってprivateメソッドを直接呼び出すということができない)“`HogeHoge.rb
# encoding: UTF-8class HogeHoge
def hoge_method
p(“ほげほげ”)
enddef call_private_hoge_method
p(“プライベートな情報を取得する前の事前作業”)
p(“………”)
private_hoge_method
endprivate
def private_hoge_method
p(“プライベートな情報を取得!”)
end
endhogehoge = HogeHoge.new
hogehoge.hoge_method
hogehoge.call_private_hoge_method
hogehoge.private_hoge_method # 直接呼び出すとエラーになる“`
`
Rubyのローカル変数とインスタンス変数の違い
# はじめに
#### ※以下の内容には誤りが含まれる可能性がありますRubyには使える変数が4種類あります。なかでもローカル変数とインスタンス変数の違いが重要です。
### 参照範囲が違うんですね
# 具体的な内容
### ・ローカル変数
変数名が小文字または`_’で始まる変数。
ブロック内またはメソッド定義内でしか参照されない。
“`ruby:ローカル変数
class Human
name = “太郎”
def myName
puts name
end
end
human = Human.new
human.myName
“`### ・インスタンス変数
変数名が@で始まる変数。
newメソッドで作成したオブジェクトの中に限り、どこからでも参照
できる。通常オブジェクトの外からは参照されない。
“`ruby:インスタンス変数
class Human
def initialize(name)
@name = name
end
dgem ‘capistrano-sidekiq’ を使って デプロイ中にcommand not found(コマンドが見つかりません)エラー
バージョンが古いためか結構詰まってしまったので書いておきます。
gemをinstallしてCapfileに`require ‘capistrano/sidekiq’`と書いただけのシンプルな設定です。## 公式
capistrano: https://github.com/capistrano/capistrano
sidekiq: https://github.com/mperham/sidekiq/wiki/Deployment
capistrano-sidekiq: https://github.com/seuros/capistrano-sidekiq## 解決方法
– capistranoのバージョンが3.4.0だったため、3.9.0にアップデート(※2023年/1月現在の最新は3.17です)
– deploy.rbに`set :rbenv_map_bins, %w(rake gem bundle ruby rails sidekiq sidekiqctl)`のように、sidekiqとsidekiqctlを追記## どんなエラーだったか
`cap stagingRuby3.0.0+Rails6.1.3からRuby3.2.0+Rails7.0.4にバージョンアップした話
## はじめに
Heroku-18 Stackで動いているアプリケーションがあり、こちらが[2023/4にEOL](https://devcenter.heroku.com/ja/articles/heroku-18-stack#support-period)を迎える。
それに伴いHeroku Stackを上げるとRubyのバージョンも上げないといけなかった。[参考](https://devcenter.heroku.com/ja/articles/ruby-support#ruby-versions)
>Heroku-22 で使用可能な最も古い Ruby バージョン: Ruby 3.1.0せっかくだったらこの機会に最新にしようと思い、バージョンを上げたのでその時の注意事項をメモ書き程度に残しておく。
前回上げた話はこちら。
[Ruby2.3.4+Rails5.0.4からRuby3.0.0+Rails6.1.3にバージョンアップした話](https://qiita.com/yamamoto_hiroya/items/62dfae2dda7f35452b44)## Gemf
haml-rails によるerb->haml変換
Gemfile書き方
“`Gemfile
gem ‘haml-rails’
“`変換コマンド
“`
rails haml:erb2haml
“`元の.erbファイルを削除するか -> y
“`
Would you like to delete the original .erb files? (This is not recommended unless you are under version control.) (y/n)
y
Deleting original .erb files.
“`undefined method `current_sign_in_at’ for #< ~~~ > の解決方法
# はじめに
こんにちは! @Keichan_15 です!Deviseを用いて `sign_up` や `sign_in` を行うと、表題にある `undefined method ‘current_sign_in_at’ for`のエラーが出た際の解決方法について、備忘録も兼ねて記載していこうと思います。
尚、こちらのエラーを検索すると下記のような記事や解決方法が出てきます。結論、解決方法として間違いでは無いです。今回の想定としてはdeviseをinstallしてごくごく一般的なモデル作成を行った場合 `ex) $ rails g devise User` を前提としてお話していきます。
下記の方法でも間違いでは無いですが、マイグレーションファイルを修正してresetを掛けるといったナンセンスなことは面倒なので…ってことですね。https://qiita.com/Asaiii12/items/6893ffe808166da52499
https://stackoverflow.com/questions/55735895/nomethoderror-undefined-m
【Ruby】Hashのデフォルト値の設定
Hashのデフォルト値を調べ、自分のまとめ用で作ってみました。
せっかくなのでHashについても簡単にまとめながら記事を書きます。# Hashとは
連想配列とも呼ばれ、配列でありながら、任意のオブジェクト(キー)から任意のオブジェクト(値)を関連づけて配列を生成することができます。## hashの使い方
生成の基本は `変数名 = { “キー” => “値”}`として生成します。
`{}`でhashを生成するのを覚えておきます。“`ruby
p user = { “name” => “Jone”, “sex” =>”men”, “age” => 23 }
# => {“name”=>”Jone”, “sex”=>”men”, “age”=>23}
“`取り出しや変更も可能です。
変数名に対して`[]`をつけて、その中に定義してある`key`を書くだけです。
valueを変更したければ、`変数名[key]`に`=`で代入の形をとります。“`ruby
p user[“name”] #=> “Jon”
user[“age”] = 34
p user[“age”Ruby3.0にアップデートする時、sorted_setをインストールする前に確認してほしいこと
唐突ですが、Rubyでは2.7から3.0へアップデートされる時、SortedSetというライブラリはGemに分離されました。
https://github.com/ruby/ruby/blob/v3_0_0/NEWS.md#compatibility-issues
“`
SortedSet has been removed for dependency and performance reasons.
“`「なるほど、じゃあRuby3に上げる時にSortedSetを使っていたらインストールすればいいんだな!」となるかもしれませんが、それはちょっと待ってほしいです(確かにそれでも動きますが)。
まずどこで使っているのかを、`git grep`なりエラーのスタックトレースなど適切な方法で確認しましょう。
もし自分が作成したコードで使っているのである場合、今回Gemへ分離されたのはパフォーマンスが理由なので、問題ない場合はインストールでも問題ありません(セキュリティなどだと話は変わりますが・・・)。ただ、他のGemが依存していて自分のコードでは使っていない場合は、GemのC
【個人開発】料理人のための仕込み管理アプリCucina-クッチーナ-を作りました
## はじめに
こんにちは!@harufumi03と申します。
この記事は初学者が初めて個人開発したWebアプリの紹介記事です。
ちなみに「クッチーナ」という名前はイタリア語で「キッチン」という意味です。アプリURL:http://cucina-app.com/
「仕込み」とは?…お客様に素早く料理を提供するための下準備のこと## 開発の経緯
私は調理師として働いていた経験があり、困り事がありました。
###### それは日常業務の「仕込み」についてです。
私の経験上「仕込み」を行う時は担当している仕込みを個人的に管理してホワイトボードやメモなどに書き出して管理していました。それにより他の人と使用する食材が重なってしまったり、気をつけていても忘れてしまって仕込みが出来ず、関連する料理の提供ができないという事もありました。この問題点をチーム内で共有して誰が何の仕込みをしてどの食材を使用するのか分かるようになれば解決できてお客様にも問題なく料理を提供できるのではないかと考え開発しようと考えました。
DDBJからsraをダウンロードするためのURLを列挙する
## はじめに
SRAをダウンロードする際には、[fasterq-dump](https://github.com/ncbi/sra-tools)などのツールがありますが、日本国内から利用する場合は、国内のDDBJのサーバーを利用することで、通信速度が速く、便利なことが多いです。しかし、ブラウザからダウンロードするためのURLを一つ一つ取得するのは手間がかかり面倒です。そこで、DDBJからSRAをダウンロードするためのURLをリストアップするスクリプトを書きました。
意外と需要のあるかもしれないのと、(あとでやり方を忘れてしまう可能性があるため)Qiita記事にしました。
## Requirements
スピナーを表示するために、tty-spinnerをインストールしておく必要があります。
“`
gem install tty-spinner
“`## スクリプト
下記のスクリプトをパスの通っている場所に保存し実行権限をつけておきます。 `sudo chmod +x ./ddbj_sra_urls.rb`
“`ruby:ddbj_sra_urls.rb
#!メソッドについて
Rubyとは
日本人が作ったプログラミング言語で初心者の方にも分かりやすい言語になっています!
できる事は主にWebアプリ制作になります!
Webアプリとはアマゾンや、食べログなどインターネット上で使うシステムの事です!メソッド(関数)を出力
メソッド(関数)とは、プログラムの別の場所から呼び出せる処理のまとまりの事です。
メソッドは呼び出されるまで、実行されません。“`ruby:paiza.io
#engineerがメソッド名
#userが引数
def engineer(user)
puts “#{user}は基礎を学んでます” #defからendまでメソッド
endp engineer(“西野”) #引数=”西野”
“`
⇓“`ruby:出力結果
西野は基礎を学んでます
“`– defは、メソッドを作る時に行われて、engineerはメソッド名になります。
– カッコの中(user)は**引数**と言い
関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた