今日は会社を有給で休んだが勉強にも時間を割きたいさてまずはRubyの勉強するぞ!と言いたいがなぜかprogateのレッスン選択を間違えてrailsの勉強をやってしまった。Rubyも少しやったデータベースとはデータベースとはデータを保存しておく場所のこと。このデータベースを参照し呼び出すことでwebアプリケーションに組み込めるということだろうか。コントローラを用いて投稿に関するページを作成する。一覧ページを作成する時は、index(索引)というアクション名を使用することが一般的なので、indexアクションを用意する。controller」と省略することができる。変数を使っての表示HTMLのままではデータベースに接続できないため、投稿内容をRubyの変数に代入することで接続させる。index.html.erbのようなerbという形式のファイルでは、<%%>で囲うことでHTMLファイルの中にRubyコードを埋め込むことができる。Ruby(埋め込みRuby)」の略であり、Rubyを組み込まれたHTMLですよ、という意味になる。%>で囲うことで可能になる。<%%>で囲うときは表示されないため、変数の定義などで用いられる。<%=%>はコードの中身が表示されるので、変数の値などをブラウザに表示したいときに用いる。変数ごとにいちいちHTMLと変数を記入していたらキリがないため、1.それぞれの変数を一つの配列にまとめて、2.each文を用いて一つずつ取り出す、という処理を行う。画像のように変数postsと用意し、配列を作っていく。このとき、[]のなかは配列のため、文字列ごとに,(カンマ)で区切ることを忘れないように。下の画像では配列postsから要素を1つずつ取り出して変数postに代入し、表示している。することで、postsの要素の数だけeach文の中身が実行されるので、投稿の数だけHTMLを書く必要がなくなる。%>も忘れないように。indexで作ったposts_controller.rbがアクションファイル)。index」と「end」の間で変数を定義することで、その変数をindex.html.erb内で使用することができる。通常、アクションファイル内で定義した変数をビューファールで表示することはできないが、@postとすることで呼び出しが可能になる。データベースの用意データベースにはテーブルという概念があり、その中にカラム(列)がある、横の行にテーブルがある。データベースにデータを保存するためにはまずテーブルを作成する必要がある。データベースに変更を加えるには、1.データベースに変更を指示するファイルを作成する。2.データベース変更の指示を与える。テーブルの作成そのためにマイグレーション【migration】(移動、乗り換えという意味)と呼ばれるデータベース変更のためのファイルを作る。content:text」というコマンドで作成することができる。Postという単数形にすること。このテキストにはデータ型に分類され長文が入る。ちなみにモデルとはマイグレーションファイルファイル内に作られるApplicationRecordを継承したクラスのことである。コードでは以下の文になる。ApplicationRecord先ほどのコマンドを実行すると、下の図のようにdb/migrateフォルダの下にマイグレーションファイルが作成される。content:textで作れるということである。db:migrate」をターミナルで実行することでテーブルが作成される。consoleこれをターミナルで打ち込むことでrubyのコードを簡単に実行できる環境が作られる。データベースを保存するにはまずPostモデル(設計図、クラス)の.newインスタンスを作って、それを保存する必要がある。"文字列")」となる。この.newの部分がインスタンスとなり、()内でその内容を定める。それをpost(変数名).saveでデータベース上に保存できる。これはpostがApplicationRecordを継承したPostモデルを元に作られたインスタンスだからである。Post.first)でデータベースの一つ目のデータを取り出すことができる。変数postが定義されている状態で「post.content」と打ち込むことでデータベースの最初の投稿内容が表示されるので、データベースから投稿内容が取得できていることがわかる。Post.allで可能になる。これはfirstがallに変わっただけなのでわかりやすい。Post.all(id)で取り出すことができる。配列のデータから投稿内容を取り出す。Post.all(0).contentでcontent(投稿内容)の0番目のデータを取り出せる。データベースの表示これまでデータベースの作成と保存、呼び出しについて学んだが、次はそれを実際に表示できるようにする。indexアクション内の@postsに取得したデータを代入し、ビュー内ではeach文で繰り返し処理する部分に代入し、繰り返し実行する。表示部分はpost.contentになっている。|変数名|と書き、endまでの間に実行したい処理を書く。each文は変数の中にインデックス0から順番に繰り返し処理されていく。変数名に決まりはないが、単数名にするのが普通。each文の中に変数を使わないputsu処理も繰り返し処理できる。下の画像では------も繰り返し処理されている。ハッシュハッシュとは配列と同じで複数の値を管理するものだが、値に対してキーという名前をつけて管理する。配列と同じように変数に代入し、出力もできる。代入したい値として新たな値を代入するだけ。更新したいキーとなる。web情報はパケットという単位に分割されて送受信されているパケっその送受信はTCP/IPが責任を持って行っている(TCP/IPとは郵便配達における郵便局のようなもの。IPアドレスを元に任意のホストに情報を届ける)。IPアドレスによって通信相手のコンピュータは特定できるが、URLにはそんな数字はない。System)と呼ばれるものである。このDNSサーバーをインターネット上に配置し、それにドメイン名を問い合わせればIPアドレスが判明するというわけである。Linuxシェルでは最初にコマンドを打ち込まなければいけない。ファイルを最初に打ち込むとシェルがそれをコマンドだと思って探してしまい、エラーが出てしまう入力リダイレクトを使うことで複数回同じ処理を行い際にもミスがなく楽にこなせるまた出力先がファイルになることで端末画面に映らななくらいのデータも記録して残してあとで眺めるということもできるしかもUnixはデバイスもファイルとして認識するのでプリンタや記憶装置にもコマンドの出力を直接渡すことができる。パイプとはコマンド相手に直接入出力できる機能で、記号「|」は名前の通りパイプの形をしている。入出力リダイレクトで作る中間ファイルがいらないので容量を食わないし処理が高速になる。このパイプやリダイレクトで切り替えられる入出力のことを標準リダイレクトと言い、入力部分を標準入力、出力の部分を標準出力と呼ぶ。ファイルごとに読み取りや書き取りが可能かどうかが設定されている。rやw、xが読み込みや書き込み、実行のパーミッションで、コマンドで付与したり消したりできる。mode)のコマンドで操作可能このパーミッションファイルを操ることで誰にも、そして自分にも操れなくすることでミスを防ぐ使い方もある他にもあるディレクトリの中の特定のファイルだけコピーしたくない、というときも、読み込みの権利を剥奪すれば、それ以外のコピーも可能になる。/のルートディレクトリとは別の概念。どちらの意味かは文脈で判断するしかない管理者と一般ユーザーは操作している人物が同じでもユーザーとしては別物として扱う。常に管理者としてコンピュータを操作すると何らかのミスで重要なファイルを破壊してしまうこともあるからである。09:34railsの学習(1日目)とRubyの学習(2日目)とLinuxの学習(7日目)とプロになるためのweb技術入門(5日目)Tweet広告を非表示にする関連記事2020-01-08Rubyの学習(1日目)Linuxの学習(6日目)とプロになるためのweb技術入門(4日目)Javacriptのprogateでの学習が終わったので、今日からRubyの学...2020-01-07Javascript(7日目)とLinuxの学習(5日目)とプロになるためのweb技術入門(3日目)今日も引き続き勉強。JavascriptとLinuxの学習を進める。削除機能...月別アーカイブはてなブログをはじめよう!keropp1234さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。