プログラミング初学者のブログです。主に Ruby on Rails を学んでいます。
TECH CAMP受講中。

8月8日:deviseで使えるメソッド、アソシエーション、renderメソッド

こんにちは。

今日は午前3時間、午後2時間の合計5時間勉強しました。

今日は宇宙のパワーがピークの日らしいですね。何も感じませんが

軽やかに生きたいものです。

 

【deviseで使えるメソッド】

  • current_user:ログイン中のユーザーの情報を取得する。
  • user_signed_in?:ユーザーがログイン中かどうか確認する。
<% if user_signed_in? && current_user.id == tweet.user.id %>
  • こんな感じで使うらしい。
  • 後はカリキュラムではなかったけど、調べたらこんなのもあるらしい。
  • authenticate_user!:ログイン済ユーザーのみに許可する
before_action :authenticate_user!
  • これはコントローラーの先頭に記載して、以下のアクションをログイン済ユーザーのみができるようになるそうな。

【アソシエーション】

  • モデル同士を紐付けること。
  • hasmany:一対多の関係。Userモデルから見たTweetモデルの関係ですかね。User has many Tweets
  • belongs_to:一対一の関係。Tweetモデルから見たUserモデルの関係?Tweet belongs to User

【renderメソッド】

  • まず「レンダリング」というのは、ビューファイルからブラウザが変換して最終的にコード通りの見た目にして表示する流れのこと。
  • partialオプション:HTMLを部分的に呼び出すことができる。
<%= render partial: "ファイル名" %>

 

インデントとってたのにプレビューして戻ったら全部べたーってなっててちょっと悲しい。

はてなブログの使い方も徐々に研究しつつ引き続きがんばりマンモス。

8月7日:yield

こんばんは。

日付が変わってしまいました。夏を感じる歌といえば、「少年時代」

今日は朝15分、夜1時間ちょい、合計1時間半くらい勉強しました。

 

【 yield 】

  • index.html.erbとか編集していると、ヘッダーとかフッターの部分がHTMLにないぞ?けどあるぞ?ということに気付き。
  • レイアウトフォルダさんの中にいらっしゃった。
    views/layouts/application.html.erb

<%= yield %>

  • この記述の部分が、それぞれのアクションのhtml.erbファイルを読み込んでいる。

 

やっぱり、カリキュラム通りに見ながら進めているだけでは全然定着しないですね。

自分で考えて、手を動かす。これを繰り返す。

理解を急がず、まずは体に覚えさせることが大切なのかもしれません。

感覚で掴んで、後から理解するでもいいかと。思いました。

おやすみなさい。

8月6日:mass assignmentの脆弱性とストロングパラメーターとプライベートメソッド

こんばんは。

今日は朝1時間、夜1時間、合計2時間勉強しました。

ちょっとhtmlいじってみた。

間違ってることあったら教えてもらえると嬉しいです。。

 

【mass assignmentの脆弱性

  • テーブルに対してデータを送信する時に、意図しないデータを勝手に書き換えられちゃったりすること。
  • 例えば、「名前」と「メールアドレス」だけ入力するフォームがあったとして、デベロッパーツールとかcurlとかで意図的にキーを書き換えて「パスワード」とかを指定してデータ送信して、書き換えできちゃうこと。

 

【ストロングパラメーター】

  • ↑の脆弱性を回避するのが、ストロングパラメーター。
  • 「これしか受け付けません!」っていうキーを指定する。

 def post_params

  params.permit(:キー名, :キー名)

 end

  • ストロングパラメーターはプライベートメソッドとしてコントローラーに定義する。

 

【プライベートメソッド】

  • コントローラーで「private」って書いた下に定義するとそうなる。
  • これはクラス外から呼び出せないらしい。
  • これのメリット
  1. いらんとこで呼び出すエラーを防げること
  2. private以下は気にしなくていいので可読性が向上すること

 

ふーん・・・

8月5日のべんきょう

今はTECHCAMPでRuby on Railsを使ったアプリ作成の勉強を進めています。

毎日アウトプットのために更新していきます!

多分読んでもつまんないです!

 

今日学んだこと

CRUD(クラッド)】

・Create(登録)

・Read(参照)

・Update(変更)

・Delete(削除)

 これらができるかどうかを確認することを、「CRUD分析」というんだそう

 「CRUD分析」のために用いる表のことを「CRUD表」という

 

【resourceメソッド】

RailsではCRUDをできるようにするための7つのアクションが定義されてる

・index(一覧表示)

・show(詳細表示)

・new(生成)

・create(保存)

・edit(編集)

・update(更新)

・destroy(削除)

このアクションを一発で作れるのがresourceメソッド。

 Rails.application.routes.draw do

  resources :パス

 end

 

 

いまだに、Rails命名規則がピンとこないです。

単数形だったり、複数形だったり、最初だけ大文字にしてみたり。

これは慣れるまで繰り返すしかないってことですかね。

ピンとくるというよりは、叩き込む感じですかね。

 

これ、HTML編集もできるんですね。

そのうちゆとりできたらいじってみます。

冷やし中華、はじめました

という感じでブログをはじめました。

はじめまして。

MacBookAirの変換もいまだに使い慣れないです。

(勝手に変換されるの便利であり、若干うざい)

 

簡単な自己紹介をします。

名前:のむさん

職業:IT企業でプリセールスやってます。

   元飲食店店長で、2年ほど前に転職しました。

趣味:ドライブとカラオケ(月並み)

将来の夢:エンジニアとして生きていけてYouTuberみたいな

このブログのテーマ:プログラミングの勉強について

 

いまプログラミングの勉強をしていて、来年中には会社に所属しなくても生きていけるだけの技術力、「手に職」を身に付けたいなと思ってます。

仕事ではWEB系の方が触ることが多いのですが、サーバとかアプリとかバックエンドの方がエンジニアの仕事としては稼げる的な話も聞きますね。

 

おやすみなさい。