- 1. 概要
- 2. アプリケーションの雛形作成方法
- 2.3.1. updateアクションを使用しても更新されない
- 2.3.2. Ruby on RailsでDBを途中からmysqlに変更したいときに変更する場所
- 2.3.3. Ruby 環境構築【Mac】
- 2.3.4. 【環境】
- 2.3.5. Ruby on Railsを基本からまとめてみた【エラーに対するトラブルシューティング①】
- 2.3.6. 文字列連結まとめ①(Ruby)
- 2.3.7. さくらVPSでSinatra(+mysql)を使って簡単なWEBアプリを作る
- 2.3.8. 【Ruby勉強中】チンチロをRubyで作ってみた。(ソシー)
- 2.3.9. Ruby on Rails初心者の学習記録 Part2:モデルについて
- 2.3.10. メソッド、レシーバー(image)
- 2.3.11. Ruby1
- 2.3.12. bundle install 時に ruby_dep-1.5.0 でエラーが出た際の対処法
- 2.3.13. [初心者向け]ruby モジュールの使い方 ~インスタンスメソッドとして取り込む編
- 2.3.14. Error message “error:0308010C:digital envelope routines::unsupported” の解決方法
- 2.3.15. privateメソッドとは何か、どういう時に使うのか
- 2.3.16. Rubyのローカル変数とインスタンス変数の違い
AWSのS3にSDKなしで認証リクエストを作りたかった話
お仕事でSDK使えないよぉ…。
だけど、頑張ってS3から画像は取得しないと…。
## 前提
外部の別プロジェクトでAWS S3にアップロードされた画像を、どうにかして取得する。
* Ruby on Rails(いにしえのバージョン)
* アクセスキーIDとシークレットキーはもらえている
* AWS SDKは使えない(重要)
* いにしえのバージョンでも使えるのか?
* AWS CLIは使えるけど、今回は対象外
* AWS STSは使っていない大分縛りがキツいけど、がんばるぞい。
## 調査からリクエストしてみるまで
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/RESTAuthentication.html
まずは、この方法で取得できる参考資料として、上記のリンクが共有される。
調査してみて、STS使えれば認証情報がもらえるし、たたければ楽できそう?
と思ったが、別プロジェクトではSTSは使っておらず、認証ヘッダを使用していると聞く。チームメンバーと相談して、結果的に認証ヘッダを使
deviseをアップデートしたらomniauthエラーで詰まった
### はじめに
deviseをアップグレードするために、omniauthのバージョンも同時にアップグレードしたら一部のコールバックがnilになってハマってしまったので共有します。### やったこと
– device, omniauthをアップグレードした
“`diff_ruby:Gemfile
– gem ‘devise’, ‘4.4.3’
– gem ‘omniauth’, ‘~> 1.9.0’+ gem ‘devise’
+ gem ‘omniauth’
“`“`diff_ruby:Gemfile.lock
– devise (4.4.3)
+ devise (4.8.1)– omniauth (1.9.2)
+ omniauth (2.1.0)
“`### 発生した問題
oauth認証で必要な値が`nil`になってしまった。
“`ruby
[1] pry> request.env[‘omniauth.auth’]
=> nil
“`### 解決方法
– こちらにも同様の現象が起きているとissueがあがっていたのを発見。https://g
実務未経験者がRailsで予約管理アプリを作成しました!(simple_calendar)
アプリ概要
ヘッドスパスクールの授業を予約するアプリを作成しました。
イメージとしては美容室などの予約アプリのようなシステムです。まず教師側が授業可能な日程を登録し、その日程の中から生徒が日程を選択し、授業を予約するという使い方です。
https://jsmc-machido.com/
https://github.com/keiino0425/JSMCreserveapp
作成背景
プログラミングの学習を進めていたところ、知人がヘッドスパスクールを始めたいという話をしていたので必要なシステムがないかヒアリングしたところ、予約を管理するシステムが必要とのことだったので作りました。
使用イメージ
講師側
講師用のマイページで仮予約や予約を確認できます。また、仮予約は確定もしくは削除すると生徒にメールが自動送信されます。
![スクリーンショット 2023-01-17 0.00.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws
【個人開発】キャンプ旅行に持っていくキャンプ道具を共有するアプリ – Camplet –
# はじめに
初めまして@asaAxisと申します。
この記事は初学者が初めて個人開発したWebアプリの紹介記事です。
Campと旅行のPamphletの意味を込めてCampletという名前にしました。アプリURL : http://52.69.152.68/
旅行の際にキャンプ道具を共有する 大変さから解放されます!# 開発の経緯
![開発経緯説明.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2881856/e485df4f-8432-efa7-05f3-f03eeae416ed.png)
キャンプをやったことがない人でも、
**持っていく道具が多そう…
何を持って行けば良いの?** とか…そういった、ことを減らすためにこのアプリを開発しました。
旅行の際にキャンプ道具を共有する大変さから解放される!
をコンセプトに開発をいたしました。# 開発環境
* Ruby 3.0.1
* Ruby on Rails 6.1.7
* PostgreSOL 14.5# 主な機能
[Rails]Railsアプリケーションの雛形作成
概要
Railsアプリケーションの雛形作成と削除方法を簡単に説明します。
拙い文章で申し訳ございません。
記事の記述方法や内容に不備等ございましたら、指摘してくださると幸いですm(-_-)m# 環境
IDEはAWSのcloud9を使用しています。
Rubyのバージョンは3.1.2
Railsのバージョンは6.1.7アプリケーションの雛形作成方法
結論としては、「rails new」コマンドを実行します。
記述方法は以下の通りです。“`
rails new アプリケーション名
“`
例として、「SNS」というアプリケーション名で作成する場合は
“`
rails new SNS
“`
となります。rails newを実行する際に注意する点が2点あります。
– スペルミス
– 半角スペースの場所を間違えない特に2点目の「半角スペースの場所を間違えない」というのは、どのような場合か
例えば、先ほど例同様に「SNS」というアプリケーションを作成した際
“`
rails newSNS
“`
と入
updateアクションを使用しても更新されない
# はじめに
某オンラインスクールで学習中の者です。自分が体験したエラーを
アウトプットの意味も込めてQiitaに投稿しておきます。# 前提要素
– editアクション完了
– updateアクション完了
– form要素はrenderメソッドを用いて`new.html.erb`、`edit.html.erb`に使用している。# エラー内容
編集ページより投稿を編集したところ
newアクションが適応されてしまう。(エラー画面無し)そのため一覧にどんどん投稿が増えていってしまう。。。
# 問題解決
editのルーティングを間違えていた。
パスを修正することで解決した。# 解決過程
~~~ruby show.html.erb
<%= link_to "編集する", edit_○○○○○○_path %>
~~~
↑ `editパス`に`@○○○○○○.id`とidの指定をしていなかった。そのため、idを指定できていなかった為、既にある投稿を読み込むことができず
newアクションのform要素からcreateアクションを送信する形となった。
Ruby on RailsでDBを途中からmysqlに変更したいときに変更する場所
# はじめに
当記事はRuby on Railsでアプリケーションを作成している途中でDBを変更したいと思ったときに変更する場所を記します。
今回はSQLiteからmysqlへ変更します。また、最初からmysqlで始める場合は以下のコマンドで`new`することでmysqlで開始することができます。
“`terminal:terminal
rails new アプリケーション名 -d mysql
“`# 環境
“`terminal:terminal
$ ruby -v
ruby 2.7.3
$ rails -v
Rails 7.0.4
mysql -version
mysql Ver 8.0.31
$ bundle -v
Bundler version 2.1.4
“`# 前提条件
* DBの設定が完了していること。(mysqlだと最低限、rootユーザーでアクセス可能である。)
# DB変更
1. Gemfileに以下を追記する。
“`:/Gemfile
gem “mysql2”
“`
1. terminalから`Gemf
Ruby 環境構築【Mac】
お久しぶりです。かのうです。
今回は勉強がてら、Rubyの環境構築から記事にしていきたいと思います。【環境】
macOS Big Sur 11.5.2
まず、バージョンを確認してみましょう。
下記、コマンドを実行します。
“`
ruby -v>> ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
“`
上記のように、OS標準搭載のものを使っても良いです。
ただ今回は、新しいバージョンのものをインストールしましょう。必要なもの
・brew
・rbenv※brewが入っていない方は、xcodeをインストール等してください。
この記事ではbrewがインストール済みであるという前提から、進めます。brewを最新版にアップデートする。
“`
brew update
brew upgrade
“`
rbenvをインストールする。
“`
brew install rbenv
“`このrbenvを使って最新のrubyをインストールします。(2023/1/16
Ruby on Railsを基本からまとめてみた【エラーに対するトラブルシューティング①】
railsで『API』を作成しようとしたら、下記のエラーが表示。
“`
Rails is not currently installed on this system. To get the latest version, simply type:$ sudo gem install rails
You can then rerun your “rails” command.
“`
#### 解決方法下記のコマンドをシェルに打ち込んだら、解決したので記載。
“`
export PATH=”$HOME/.rbenv/bin:$PATH”
“`
または“`
export PATH=”$HOME/.rbenv/shims:$PATH”
“`#### 原因
シェルを変えたことで、パスを設定し直さなければならないのを忘れていたことが原因とのこと。
rbenvのpathが無くなったことで、macに標準でインストールされているrubyのgemを確認してrailsのgemが無いとエラーを出していたらしい。## 参考サイト
[Shellをzshにし
文字列連結まとめ①(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
d関連する記事
OTHERカテゴリの最新記事
- 2024.09.20
JAVA関連のことを調べてみた
- 2024.09.20
iOS関連のことを調べてみた
- 2024.09.20
JavaScript関連のことを調べてみた
- 2024.09.20
Rails関連のことを調べてみた
- 2024.09.20
Python関連のことを調べてみた
- 2024.09.20
Lambda関連のことを調べてみた