- 1. 初心者
- 2. ruby webapi に関する参考サイトまとめ
- 3. Rails6 のちょい足しな新機能を試す101(ActionController::Paramters#transform_keys編)
- 4. AWSへデプロイしてみよう(〜EC2インスタンス作成 その2)
- 5. ペアプロ お買い物プログラム2 回答
- 6. ペアプロ お買い物プログラム2
- 7. ペアプロ お買い物問題
- 8. ペアプロ 送料問題 回答編
- 9. rbenv で make test を追加する方法
- 10. SESがWebエンジニアになるための計画
- 11. モデルの作成ができない
- 12. 配列を偶数番目と奇数番目で分けてみた
- 13. 【駆け出しWEBエンジニアのためのメモ】WEBアプリ作成の作業フロー_基礎(Rails)
- 14. RailsにcircleCIを構築し、githubと連携してrubocopとrspecテストを走らせる
- 15. RSpec 1つのecpectで複数のchangeを検証する
- 16. AWSへデプロイしてみよう(〜EC2インスタンス作成)
- 17. ローカルで立ち上げたrailsサーバーにスマホ実機でアクセスする
- 18. 【開発日記】薬価検索アプリno.4 〜データベース設計〜
- 19. Memcached で メッセージキューをやってみた
- 20. コピペ爆速で各言語環境を構築する方法
初心者
rails sをしたら
=> Booting Puma
=> Rails 6.0.0 application starting in development
=> Run `rails server –help` for more startup options
Exiting
Traceback (most recent call last):
79: from bin/rails:3:in `‘
78: from bin/rails:3:in `load’
77: from /Users/uchimurakana/kozinn/wed/bin/spring:15:in `‘
76: from /Users/uchimurakana/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require’
75: from /Users/uchimurakana/.rbenv/versions/2.5.1/lib/ruby
ruby webapi に関する参考サイトまとめ
[axios] axios の導入と簡単な使い方
https://qiita.com/ksh-fthr/items/2daaaf3a15c4c11956e9JSONについてRubyを使用しながら簡単に解説してみる
https://qiita.com/yertea/items/be6f535fc31d7325ed97RubyでJSONを扱うときに便利な関数まとめ
Rails6 のちょい足しな新機能を試す101(ActionController::Paramters#transform_keys編)
# はじめに
Rails 6 に追加された新機能を試す第101段。 今回は、 `ActionController::Paramters#transform_keys` 編です。
Rails 6 では、 `transform_keys` がブロックなしで呼ばれた場合、 Enumerater オブジェクトを返すようになりました。Ruby 2.6.5, Rails 6.0.0, Rails 5.2.3 で確認しました。
“`shell
$ rails –version
Rails 6.0.0
“`今回は、実用的な例を思いつきませんでした。
Userの CRUD を作って確認します。 今回は、Rails 5.2.3 の動作から確認していきます。# Rails プロジェクトを作る
“`
$ rails new rails_sandbox
cd rails_sandbox
“`# User の CRUD を作る
“`shell
$ bin/rails g scaffold User name
“`# データベースのマイグレーションを実行する
“`she
AWSへデプロイしてみよう(〜EC2インスタンス作成 その2)
つづきです。
前回の投稿はこちら。。
## 3.固定IP割り振り
インスタンスを作成した直後はIPアドレスは動的に変化します。つまり、住所がコロコロと変わってしまいます。この状態では、ユーザがアクセスする先がコロコロ変わってしまうため、IPアドレスを固定させます。画面左上の[サービス]から[EC2]をクリックします。
左のスクロールバーからElastic IPを選択します。
[新しいアドレスの割り当て]ボタンをクリックします。
[割り当て]ボタンをクリックして終了です。
#### ※注意
固定IPアドレスはEC2インスタンスと関連付けなければ、課金対象になり料金が発生します。すぐにEC2インスタンスと関連付けましょう。
インスタンスを停止させる場合は[アドレスの解放]も実施しないと課金されます。
アクションボタンをクリックし[アドレスの関連付け]をクリックします。「インスタンス」の項目に今作ったインスタンスを選択して[関連付け]をクリックします。
## 4.ダウンロードしたキーペアへの読み取り権限
ペアプロ お買い物プログラム2 回答
“`ruby:order.rb
#注文
def order(num, menus, total_price)
puts “いくつ注文しますか?”
quantity = gets.to_i
menu = menus[num]
price = menu * quantity
total_price += price
puts “他にご注文はございますか?”
return total_price
end#レジ
def register(total_price)
puts “お会計は#{total_price}になります”
puts “ありがとうございました!”
exit
end#メニュー
burger = 500
potato = 300
drink = 150
menus = [burger, potato, drink]
total_price = 0
puts “いらっしゃいませ、ご注文をどうぞ”while true do
puts “[0]:ハンバーガー”
puts “[1]:ポテト”
puts “[2]:ドリンク”
ペアプロ お買い物プログラム2
#Rubyアルゴリズム問題
#お買い物プログラムを作ろう2今回作るプログラムはお買い物プログラムです。
#仕様
####仕様は以下のようにしたいと思います。
・商品の個数を選択し、お買い物カゴに入れることができる
・レジに進むと合計金額が表示される####用意する品物
| 品物 |価格 |
|:——-|—–:|
|バーガー|500円 |
|ポテト |200円 |
|ドリンク |150円|
(これもある程度自由で大丈夫です)
#回答
https://qiita.com/shintaro_yataki/items/be3db88cc20764f11adc
ペアプロ お買い物問題
#Rubyアルゴリズム問題
#お買い物プログラムを作ろう今回作るプログラムはお買い物プログラムです。
#仕様
####仕様は以下のようにしたいと思います。
・商品を繰り返し選択しお買い物カゴに入れることができる
・合計金額が2500円以上で送料無料になる
・合計重量が2000g以上は送料500円になる
・合計重量が2000g未満は送料200円になる(具体的な数値は自由に変えてもらっても問題ありません)
####用意する品物
| 品物 |価格 |重量 |
|:——-|—–:|:—:|
|さくらんぼ|500円 |200g |
|りんご |200円 |500g |
|メロン |1000円|1000g|
(これもある程度自由で大丈夫です)
#回答
https://qiita.com/shintaro_yataki/items/500f7f98388462d46f46
ペアプロ 送料問題 回答編
“`ruby:soryo.rb
#商品選択
def purchase(lists, total)
puts “何を買いますか”
num = 0
lists.each do |list|
puts “#{num}:#{list[:fruit]}”
num += 1
endselect = gets.to_i
list = lists[select]
total[0] += list[:price]
total[1] += list[:weight]
puts “#{list[:fruit]}を購入しました”
return total
end#レジに進む
def register(total)
total_weight = total[1]
if total[0] >= 2500
postage = 0
elsif total_weight >= 2000
postage = 500
else
postage = 200
endtotal_price = total[0]
rbenv で make test を追加する方法
Ruby 1.8.7-p385 を GCC8.2.1(CentOS8標準)でコンパイルするとmake testが通らなかった。
## make testが失敗する
![スクリーンショット_2019-10-30_07-43-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/6d8bb05a-d441-7517-5821-3b8d949ff03b.png)
![スクリーンショット_2019-10-30_07-41-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/e074f6ea-067b-57f0-7fca-2d621922ebbc.png)
## 動作確認
### make test 成功
CentOS 7 の compat-gcc-44 でビルドしたもの
“`ruby
b = 10**80
“`“`ruby:正常
p b
100000000000000000000
SESがWebエンジニアになるための計画
# 経歴
・国際関係学部出身
・新卒でSlerベンチャー企業に入社。現在2年目。
・出向先はメガベンチャーで自社サービスの運用保守を担当。#どうなりたいか
ゴリゴリの文系です・・・
去年独学で勉強しようと試みましたが、挫折。
しかし心残りなのでもう一度奮起して今年中までにポートフォリオ作成し
WEB業界に転職しようと考えております。
PCは業務上触っていますがプログラミングは全くもっての未経験です。# 現在
只今Rails、Rubyを学習中
Progate←NOW!!、Ruby on Rails、Udemy今週の勉強内容
Progate Lesson1,2,3,4
インスタンスメソッド
クラスとインスタンス
Total:8.5h
モデルの作成ができない
つまずいたこと
■モデルの作成ができない
“`console
$ rails g model Contact –skipThe name ‘Contact’ is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.
“`⇢フォルダ名とアプリケーション名を一緒にすることができない
https://qiita.com/tu-kun/items/4fede82431e546abd941⇢解決
配列を偶数番目と奇数番目で分けてみた
###初投稿
普段自分で勉強していて、自分の書いたソースや、
他人の参考にしたソースの内容をすぐに忘れてしまう、
次似たようなものが来ても、思い出せない、と
全く自分の知識となっていないように感じたため、
アウトプットの場として、ここを利用していこうと思います。—
###AtCoderをやっていて
では、早速昨日AtCoderで以下の問題をやっていた時のこと。
[AtCoder Beginner Contest 141 B-Tap Dance]
(https://atcoder.jp/contests/abc141/tasks/abc141_b)ある文字列の偶数番目と奇数番目に現れる文字が、
特定の文字であるか否かを判定し、
それに応じて出力する文字列を変えるというような問題。私は、文字列を偶数番目用と奇数番目用の配列に分けて、
その中に、指定された特定の文字があるかの判定をしようと、考えました。“`ruby:oddeven.rb
#当初のイメージ
s = gets.chomp.split(”)
#以下でsを奇数番目にと偶数番目に分ける。
odd = []
【駆け出しWEBエンジニアのためのメモ】WEBアプリ作成の作業フロー_基礎(Rails)
#背景
最近、10年のブランクをへてプログラムを猛勉強中で、特に未経験のWEBプログラミング(Rails)に挑戦しております!TECH::EXPERTにて基礎は学びましたが、どこか「あと少し」な感じで全体像が掴めずにいました。
全体像を把握するためにも、WEBアプリ作成の大まかな作業フローをメモさせていただきました。※フォーム、ログインなど、他の機能は別途記事を作成いたします。
#WEBアプリ作成の作業フロー(概要)
①アプリの雛形作成($ rails _5.2.3_ new ディレクトリ名 -d mysql)
($ bundle install)
②データベース作成($ rails db:create)
③サーバー立ち上げ($ rails s)
④ブラウザでアプリケーションの状態確認( http://localhost:3000 )
⑤ルーティング作成(config/routes.rb を編集)
⑥コントローラーを作成($ rails g controller コントローラー名 で作成)
(app/controllers/コントロ
RailsにcircleCIを構築し、githubと連携してrubocopとrspecテストを走らせる
## はじめに
スクール卒業後黙々とアプリを作っているのですが、開発環境にDockerを導入したということでそのままCircleCIも導入しちゃいました。ちなみに circleCIを導入するには少なからずDockerの知識が必要となってきます。
もしDockerってなんだよ?って人は先にDockerを開発環境に構築してみたほうがスムーズかと思います。RailsにDockerを導入する方法は下記に書いてるので、よかったらみてね!:relaxed:
[作成したRailsアプリケーションでDocker環境構築](https://qiita.com/AK4747471/items/39ddacfde6a235103277)
## circleCIとは?
継続的インテグレーション(デリバリー)サービスです。コミットからデプロイまでのパイプラインを作成し、継続的な統合/配信を使用してソフトウェア開発プロセスを自動化できます。ちょっと難しい用語ですね。
簡単にいうと、githubのpushに合わせて、テストコードを走らせたりしてくれます。
このさらに自動デプロイまでやってくれる環境の
RSpec 1つのecpectで複数のchangeを検証する
表題通り1つのexpectに対して複数のchangeを検証したい
“`ruby
it ‘複数のchangeを見るぞ’ do
expect { subject }.to change { x }.by(1).and change { y }.by(2)
end
“`長くなるし見づらいのであまり使いたくない…
“`ruby
it ‘複数のchangeの結果だけ見るパターン’ do
# x, y が 1, 2になることだけ確認するbyは使え無さそう
expect { subject }.to change { [x, y] }.to [1 ,2]
end
“`#### 参考
[ruby on rails – RSpec: Expect to change multiple – Stack Overflow](https://stackoverflow.com/questions/29388777/rspec-expect-to-change-multiple)
RSpec3.1からの機能らしい
http://rspec.info/blog/2014/0
AWSへデプロイしてみよう(〜EC2インスタンス作成)
# AWSへデプロイする為に必要なこと
vimの基礎知識
AWSのアカウント## 1.vimの基礎知識
– vimでは、カーソルをカーソルキーではなく(h,j,k,l)を使用して動かします。(カーソルキーでも動く場合があります。)
– 編集する時は、iを押して編集モード(insert mode)にします。
– カーソルを動かすときや、vimコマンドを実行する時は、escキーを押して通常モードにします。
– ファイルを保存するときは、通常モードにして、`:wq`を入力し、エンターを押します。
– ファイルを開いて何もせずに閉じたい場合、通常モードにして、`:q!`を入力し、エンターを押します。### 1.1 catコマンド
catコマンドを使用することでファイルの中身を、ターミナルに出力させることができます。### 1.2 ユーザーには管理ユーザーと一般ユーザーがある
管理ユーザーは全てのファイル・フォルダに権限を持ち、一般ユーザーはそれぞれ持つ権限が異なります。
権限を確認するには ls -l コマンド(ls -la)。“`
Akihiro-no-MacBook-P
ローカルで立ち上げたrailsサーバーにスマホ実機でアクセスする
“`ターミナル
bundle exec rails s -b 192.168.11.8
“`その後、
“`
http://192.168.1.2:3000
“`にアクセス。これでスマホでもアクセスできる。
【開発日記】薬価検索アプリno.4 〜データベース設計〜
前回の内容はこちら。
[【開発日記】薬価検索アプリno.3 〜設計・画面の設計〜](https://qiita.com/pharma_tech3/items/ec93562bd49b54538da0)開発背景などはこちら
[【開発日記】薬価検索アプリno.1 〜開発概要→企画〜](https://qiita.com/pharma_tech3/items/51c9a670c605098bc3bf)##現在の進捗状況
1.必要な機能の洗い出し
2.必要な画面設計
3.データベース設計 ⬅︎今ココ
4.Railsでアプリケーションの雛形作成
5.大きな機能から順に実装
6.テストコードを書いて動作を担保する
7.リファクタリングして整理する
8.デプロイ#DB設計
どうやって設計するのか、
なぜ、この段階で設計する必要があるのか、
ER図はどうやって書くのか、
これらは他の記事に譲りますね。###大まかな手順
1.管理するデータ(エンティティ)の決定
2.データ属性を決定
3.エンティティ同士の関係性を決定(リレーション)
4.実際にテーブルとして定義する#いざ、
Memcached で メッセージキューをやってみた
python と ruby で情報をやり取りするのになんか良い方法はないかなぁとネットを探してたら「Memcached Queue」というキーワードがありました。
探してみたのですが、随分昔にはあったけど今はもう無いみたいだったので、実装してみました。## Memcached とは
簡単に言うとデータをメモリ上に記憶する NoSQL キャッシュサーバです。
メモリ上なので高速です。ですが、メモリ上なのでデータ量の上限があるのでそんなに大きなデータは扱えません(あ、うちの環境だけ?)
TCP/IPのサービスなので、インストールしておけば開発言語によらず(場合によっては遠くからでも)アクセスできます。インストールは Mac なら brew とかでします。
“`
$ brew install memcached
“`## 非同期の情報共有
情報を共有するためには、共通でアクセスできる「何か」が必要です。
よく使われるのは「ファイル」であったり「データベース」であったりします。今回は、RaspberryPi3 上で稼働させるシステムを想定していたので、「ファイル」だと S
コピペ爆速で各言語環境を構築する方法
とりあえずさくっと言語環境だけ入れたいことはままある。ググるのすらめんどくさい!なので、各言語ごとにコピペ(大事!)で出来る環境構築方法をまとめる。※随時更新予定
# 対応言語
– Node.js
– Ruby# Node.js
“`
git clone git://github.com/creationix/nvm.git ~/.nvm
echo ‘source ~/.nvm/nvm.sh’ >> ~/.bashrc
nvm help
nvm ls-remote
nvm install v10.16.3
node -v
npm install yarn -g
“`# Ruby
“`
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.