アウトプットを頑張る

初めてのプログラミング学習期間中の記録と、日頃読んでいる本をメモのアウトプットをがんばります。

【プログラミング学習】 Ruby on Rails フォームの実装~データ送信

■プログラミング学習

f:id:yuma6128:20210818071318j:plain

フォームの実装[:contents]

投稿機能実装の考えかたとして下記の段階で整理して考える
<新規投稿ページへ遷移 newアクション
リクエスト → 新規投稿ページ

<新規投稿ページ投稿作業 createアクション
入力したものを投稿 → サーバーに情報を登録 

新規投稿ページへの遷移 newアクション
・routes.rbにnewアクションで、新規投稿ページへのルーティングを設定

・コントローラーにnewのアクション定義

・ビューを作成する

ヘルパーメソッド
Railsアプリケーションは、HTMLタグを出現させたり、テキストを加工するためにヘルパーメソッドを使用する。
【はじめから用意されているメソッド例】

form_with 投稿ページなどにおけるフォームの実装

link_to    リンクの実装

ヘルパーメソッドを使用する理由としては、下記の2点の理由から使用をする。

  1. パスの指定やRubyno埋め込みなどの記述がシンプルになるため
  2. セキュリティ上の問題を解消するため

form_withの記述方法

```
<%= form_with url:"/posts",method: :post,local:true do |form| %>
〜〜フォームの記述〜〜
end
```
オプション名
url:"/posts"  フォームの情報を送るリクエストのパスを指定
method: :post フォームの尾情報を送るリクエストのHTTPメソッドを指定。オプションの初期値は:postなので、ポストメソッドを指定する場合は省略可能
local:true リモート送信を無効にするかどうかを指定。trueにすると無効になる。

フォームの記述例

<%= form.text_field :content %>
<%= form.submit '投稿する'%>

 

link_toメソッド

リンクを作成するためのヘルパーメソッドです。
・リンク先をURLで指定する場合

<%= link_to 'リンクに表示する文字', 'リンク先のURL' %>

・リンク先をパスで指定する場合

<%= link_to 'リンクに表示する文字', 'パス' , method: :HTTPメソッド %>

 

 ◎新規投稿ページ投稿作業 createアクション

データが投稿されて、テーブルに登録する際の実装。
HTTPメソッドはPOST

・routes.rbにcreateアクション

・コントローラーにcreateのアクション定義

・投稿完了のビューを作成

 

データの流れ

ブラウザからユーザーがフォームを送信したとき、サーバーに情報を渡すためリクエストにはパラメーターを含める事ができる。

 

パラメーター

リクエストに含まれてサーバーの外部から渡されるデータのことです。
URLに含めるパラメーターやフォームから送信されるパラメーターがある。
Railsのコントローラーにたどり着くパラメーターは
paramsに格納されて、送信される。

 

params (パラムス)

送られてきたパラメーターを箱に中に格納したようなもの。
フォームで送信されたデータもparamsの中に格納されてコントローラーで受け取られる。

text_fieldの後に記載されたキーでparamsに格納されている。
フォームで入力された情報の値は、params[:キー名]として取り出すことが出来る。

ex.

  • 「content」というキーで「こんにちは」とデータをフォームで送信。
  • paramsには{content:こんにちは}といったハッシュのような構造で格納される。
  • コントローラーでparams[:content]と記述すると「こんにちは」というデータを取り出せる。

createメソッド

モデルが使用できるActiveRecordメソッドの一つです。
```

モデル.create(カラム名:値)

```

 

ex.postテーブルのcontentというカラム名params[:content]の情報を保存
```
Post.create(content:params[:content]

 ```

フォームからデータ実装のところまでの学習部分について
今振り返ってみる一つひとつ見ていくと、なるほどと思いながら
new → createという流れが個人的にはわかってきたと感じた。
これはもう少しWebアプリケーションに触れていけば、身につくところと思う。

読書 

f:id:yuma6128:20210710180648j:plain

 

佐宗 邦威氏の「ひとりの妄想で未来は変わる VISION DRIVEN INNOVATION」を読みました。
イノベーションの実装のために必要な流れや事例もなどもあり、読み応えがありました。
冒頭の「すべてはモヤモヤから始まった」という一文も今の自分にはとても刺さり、
読み進めているうちに、このモヤモヤが晴れていくのではと期待していました。
結論すべては晴れ渡るわけではないですが、進むべき道標にはなったような気がします。
イノベーションは”構想”から”実装”の時代になっており、自分ごと化していないひとにとってはイノベーションを起こす必要は無いと思われている。
ビジョンドリブンを実践するためにも、社内にとどまらず外にも接点を持ち、ネットワークを広げていくこと、そしてそれをまた社内に持ってくるなど面に波及することの必要性が自分の中ではなるほどと改めて感じました。
理想を決め、現状とのギャップを考え、それを埋めていく。
もしかしたら当たり前のことなのかもしれないが、改めて理想を考え仲間を探し
一緒にそのギャップを埋めることに取り組んでいきたいと思う1冊でした。