学習記録

プライベートで学習した内容の備忘録

iOSアプリを作るためにSwift UIを勉強していて気になったところ

自分が直感でわからなかったところ、忘れてしまっていたところを主に残しておく

  • 文字列埋め込み
  • デバッグログ出力
  • データモデルの作り方
  • データモデルの使い方
  • HStack VStack
  • for
  • Swift UIのForEach
  • Viewの更新
    • @State
    • @ObservedObject
    • @EnvironmentObject
続きを読む

Ruby on Rails [Model-Controller-View]

Modelの作成

VS Codeで「rails new」 で作成したアプリのフォルダを開きます。

rails generate model モデル名 項目1:型 項目2:型 ...」のような形でコマンドを実行します。

rails generate model book title:string price:integer

上記は「モデル名=book」でフィールドとして「書名」と「価格」を持たせています。

実行すると \app\models\book.rb \db\migrate\yyyyMMddHHmmss_create_books.rb \test\fixtures\books.yml \models\book_test.rb

など複数ファイルが作成されます。

次にデータベースにテーブルを作成します。

上記「\db\migrate\yyyyMMddHHmmss_create_books.rb」を使用します。

rails db:migrate

これで勝手にbooksテーブルが作成されます(^^) Railsが「yyyyMMddHHmmss_create_books.rb」を見つけてきて勝手に実行してくれるらしい...(笑) 「yyyyMMddHHmmss_create_books.rb」が何かというと、テーブル作成するためのコードで
rails generate model book title:string price:integer」で指定した「書名」「価格」をカラムに持つ booksというテーブルを作りますと書かれたコード。たぶん。 なんでbookに勝手にsが付いているのかは謎です(
_*;

テーブルを作ったのでちょっとだけデータを入れます。

「\test\fixtures\books.yml」を使います。 おそらく何件か既に記述されていると思いますが、変更するのであれば"yml"の書き方に従って変更してください。 以下コードでファイルの内容がbooksにインサートされます。

rake db:fixture:load FIXTURES=books

データ入りました(*^^)v

確認方法! SQLite Download Page ↑ ここから「sqlite-tools-win32-x86-3220000.zip(1.62 MiB)」をダウンロードしてsqlite3.exeをC直下のRubyフォルダに配置してください。
(64bit版は提供がないらしいので、32bitのものを使用)

VS Codeのターミナルから下記を実行

rails dbconsole
select * from books

で先ほど入れたデータが表示されるはず! ※「.exit」でdbconsoleを終了できます。

コントローラーからモデルの内容を取得する

「\app\models\book.rb」にはほぼ何も書かれていませんが、親クラスの機能だけで既にDBにアクセスできる状態です。
(ただし、「\config\databace.yml」でDB接続情報を設定していること→デフォルトでsqlite3に接続できる設定になっている)

コントローラーに以下のコードを記述して「/views/xxx/list.html.erb」を作成

  def bookList
    @books = Book.all
  end

「/views/xxx/list.html.erb」には下記を記述します。

<table border=2>
    <tr>
        <th>書名</th>
        <th>価格</th>
    </tr>
    <% @books.each do |book| %>
        <tr>
            <td><%= book.title %></td>
            <td><%= book.price %></td>
        </tr>
    <% end %>
</table>

rails s でサーバーを起動して
「http:locahost:3000/xxx/bookList」にブラウザでアクセス!

DBに登録した内容がブラウザに表示されていれば成功です(*^^)v

Ruby on Rails [Controller-View]

ControllerとView

-バージョン Ruby :2.4.3p205 Rails :5.1.5

前回はControllerから直接ブラウザに文字を表示させていましたが、 今回はしっかりViewを使って表示します。

コントローラーの準備

まずは前回同様
hello_controller.rbを作成します。
作成したファイルに以下を記述

  def view
    @msg = 'Hello World!'
    render 'hello/special' 
  end

※@msgはViewで使える変数です。 ※render 相対パス(→./views/ 配下のフォルダorファイルを記述)

ビューの準備

新規ファイルを作成します。 ./views/hello/special.html.erbを作成 ↓中身のサンプル

<div>
    <%= @msg -%>
</div>

HTMLの中にRubyのコードを埋め込んでいます。 「<%= %>」→このコードの間にrubyのコード埋め込みます。 @msgは先ほどControllerで指定した変数です。 最後の「-」をつけることで末尾の余計な空白や改行を削除してくれます。

これで保存して起動すると'Hello World!'が表示されます(*^^)v

Hello World!

Ruby on Rails 勉強開始です!

Hello World!をブラウザに表示します!

参考にさせて頂きました。 www.rubylife.jp

まずは

railsでアプリを作成

まずは骨組みから用意です。

powershellを開いてから cd コマンドでカレントディレクトリを移動します。

''' cd C:\temp '''

アプリケーションを作成します。

''' rails new app_name '''

アプリケーションフォルダをVS Codeで開きます。

※ここからはMVCがどうとかの話になってくるので、どういう意味か程度で調べておいたほうが良いです。

VS Codeからターミナルを開いてコントローラーファイルを作成する

(表示されていない場合はサイドバーから虫マークを選んで上部の長方形マークで表示する)

作成

rails generate controller コントローラー名」でいくつかフォルダとファイルが作成されます。 コントローラー名は任意で、続けてアクションメソッドを書くこともできます。
rails generate controller コントローラー名 アクションメソッド名

rails generate controller hello index

削除

rails destroy controller コントローラー名」で先ほど作られたファイルとフォルダが一括削除されます。

rails destroy controller hello

rails generate controller を実行すると

「./app/controllers/hello_controller.rb」が作成されます。
ファイル内に以下を記載して、ターミナルから「rails s」を実行

class HelloController < ApplicationController
  def index
    render :plain => 'Hello World!'
  end
end

ブラウザで localhost:3000/hello/indexにアクセスでHello World!が表示されます(*^^)v

はまりました...

↓この部分!Rails古いバージョンでは「plain→text」にしないとダメなようです( ;∀;)

render :plain => 'Hello World!'

あと「rails generate controller コントローラー名」でコントローラーを作成した場合は 「./view/hello」配下に自分で「index.html.erb」を作成しなければいけません。(不要であればスルーしてください。) また、ルートも自分で記述しないといけません。

Rails.application.routes.draw do
  get 'hello/index'
end

RubyをVisual Studio Code(VS Code)で書きたい!

タイトル通りRubyVisual Studio Codeで書くための設定手順です。

前提として、Ruby on Railsをインストールしている必要があるかも...

まずはVS Codeをインストールします。
公式からダウンロードします。
code.visualstudio.com

拡張機能(左サイドバー一番下の四角いやつ)で「Ruby」を検索→インストールします。
以上です!

ただし、VS Codeでデバッグをしたい場合は以下をインストールする必要があります。
※本当はbundleコマンドを使ったほうが良いと思いますが、できるだけハードルを下げたいのでgemで(笑)

gem install ruby-debug-ide
gem install debase

上記を実行したらgem listをpowershellで実行してインストールされているか確認します。

gem list

無事インストールできていれば、VS Codeに戻ってRubyのファイルを作成します。
VS Codeでファイル(F)→新規ファイル(N)でファイルを作成して「main.rb」という名前でファイルを作成します。

.rbはRubyの拡張子です。
ファイルに書く内容は適当。
以下サンプル

print("Hi!");

ファイルができたらデバッグの設定をします。
左サイドバーの虫マーク(下から二番目)を押下して上段の歯車マークを押下します。
リストからRubyを選択するとlaunch.jsonファイルが作成されますので、
「"name": "Debug Local File"」が記述されているところに
「useBundler」の記述があればコメントアウトするか削除します。
「useBundler」は直接でデバッグツールのパスを指定する場合に必要とかどこかに書いてました(笑)
すいません。あんまりよくわかってません(*_*;

launch.json(設定)ファイルを保存したら
サイドバー上部の△ボタンを押下します。
歯車ボタン横の四角を押すと画面下部にデバッグコンソールなるものが表示されるので、そこに
「Hi!」と表示されていれば成功です!

私は最初
「Debugger terminal error: Process failed: spawn rdebug-ide ENOENT」
というエラーが発生!!
Rubyを入れ直し、ruby-debug-ideを入れ直してVS Codeを再起動して何とかデバッグできるようになりました(*_*;
Rubyは環境構築大変です!

Rubyのバージョンは違いますが、参考にさせて頂きました。↓
d.hatena.ne.jp
qiita.com

Ruby 環境構築(Windows10)

開発備忘録 -Ruby

Ruby の環境をWindows10で構築していきます。

Rubyにはバージョンがいくつかあり、今回はRuby 2.4.3-2 (x64) 」をインストールします。
下記ページの左サイド [RubyInstallers]の欄から「Ruby 2.4.3-2 (x64)」をクリックしてダウンロードします。
rubyinstaller.org

※ちなみに、Ruby2.3.3以下と、Ruby2.4.x以上ではインストールの方法が違うようです。
古いバージョンをインストールする際は下記を参考に
www.sejuku.net

さて、インストールにあたり私は以下を参考にさせていただきました。
qiita.com

手順としては...

①まず上記でダウンロードしたファイル(RubyInstaller2)を実行します。
インストール画面途中の設定項目のチェックは全て付けた状態で進めました。

②インストールが完了したらMSYS2を入れるcmd.exeが表示されます。
MSYS2をまだインストールしていない場合はキーボードで1を押し、インストール完了後に3を押します。
画面が閉じてしまった場合はRubyInstaller2をもう一度実行してMSYS2のcmd.exeを立ち上げ、次は3を押します。
(多分現段階ではRubyInstaller2を何回実行しても大丈夫)

Rubyのインストールは完了しましたが、今度はRailsをインストールします。
まずはRailsをインストールするために「sqlite3とnokogiriが必要!」とのこと。
なのでインストールします。
powershellコマンドライン)を開いて下記のコードを順に実行します。
※[ridk ,gem]コマンドについて、これらはRubyを入れたことで一緒に入ります。
もしこのコマンドが存在しないと怒られるようでしたら、一度powershellを閉じます。
それでもだめなら環境変数Rubyのパスが記述されていない可能性があるので、環境変数を確認してください。

# sqlite3
ridk exec pacman -S mingw-w64-x86_64-sqlite3
gem install sqlite3 --platform ruby

# Nokogiri
ridk exec pacman -S mingw-w64-x86_64-libxslt
gem install nokogiri --platform ruby -- --use-system-libraries --with-xml2-include=c:/msys64/mingw64/include/libxml2 --with-xslt-dir=c:/msys64/mingw64

※gem→Rubyに必要なものをインストール・管理するためのコマンドくらいに思ってます。
※本当はここからboundleコマンドを使った方がいいです。

問題なく入りました(*^^)v

➃gem install railsを実行してRailsをインストールします。
gem install rails
インストールされているか確認します。(下記はバージョン情報を表示するコマンド)
ruby -v
rails -v

バージョン情報が表示されなければインストール失敗かもしれません。
Railsで私は躓きました( ;∀;)
RubyをアンインストールしてRubyのフォルダ(いじっていなければCフォルダ直下にRubyxxxフォルダが存在するはず)を削除すればおそらく最初からやり直せるので、
アンインストール→インストールをやりまくりました(笑)
実際ダウンロードはたぶんできていて、なにが原因かはわかりませんでしたがgemが足りないエラーが続出...
powershell を一旦閉じたり、作業フォルダを変えてみたりしていつの間にか成功しました!

下のコードでプロジェクトを作り、ブラウザなどでhttp://localhost:3000を開いてページが表示されればとりあえず成功です!
※application_nameは任意
rails new application_name


Rubyのバージョン管理を本当はやった方がいいのですが、とりあえず保留(笑)
以下参考
qiita.com

http://maetoo11.hatenablog.com/entry/2016/03/04/144216