レア☆ブログ

初心者のプログラミング関連などをの話しをば。

dependentオプション☆

dependent: :destroyを指定すると、☆☆テーブルのレコードが削除された場合、関連している△△テーブルのレコードも同時にdestroyメソッドが実行され、一緒に削除されます。

 

例)

app/☆☆/■■

has_many :△△, dependent: :destroy

発表会☆見学

こんばんは☆レアです。

今日は、先輩方の課題発表会に見学という形で参加してきました。

『す、すごい、、、、、』と先輩方が眩しい限りでした。

作成されたアプリや発表している姿をみて、『自分は大丈夫だろうか。。』と不安になりました。それと同時に、『自分もこうなる。。?こうなるんだ!!!』とワクワクが溢れてきてモチベーションが上がりました☆もっと色々覚えて早く出来るようになりたい!!!と感じました。

 

学習の進捗はかなり後ろの方を独走しているため、学習方法の見直し・学習外時間の見直し、それに加え、最終課題アプリをどういうものを作るか、、などの考えが必要ですね。

自分が出来る範囲で、、、と考えるとあまり思い浮かびません。頭の中を学習した内容がふわふわと浮かんでいるような状態なため結びつかないのかも。。?

まずは、『こういうの作りたい!!!☆☆☆』を書き出していこう!

 

この学習が終わる頃、今日みた先輩方のように

ワクワクを与えられる姿になるよう邁進していきたいです。

 

3.24*1720☆

こんにちは☆レアです!

 

Rails.root.join】について*

 

Rails.root.join
ターミナル・コンソール
Rails.root】とうつと
このRailsアプリケーションのトップ階層ディレクトリまでの絶対パスを取得できる。
例:( Pathname:User/ユーザー名/projects/☆☆app)

パスの情報に対してjoinメソッドを利用すると、
例:( Rails.root.join('〇〇/●●/△△.png') )

引数として渡した文字列でのパス情報をRails.rootのパスの情報につけることができます。
例:( Pathname:User/ユーザー名/projects/☆☆app/〇〇/●●/△△.png

ユーザー☆管理機能!!!

こんばんは☆レアです。

 

今日の学習内容は、チャットアプリなるものを

作成していく中で『ユーザー管理機能の実装』をしました。

簡単な流れと、実際行った学習内容に沿って

大まかな流れを書きたいと思います。

 

GitHubという複数人で開発をするときに便利な

アプリケーション(ウェブサービス)があり、

その使い方を学習するのも並行しています。

 

 

ーーーーーーーーーーーーーーーーーーーー

deviseを用いたユーザー管理機能を実装してみよう☆

具体的な機能は、

  ・サインアップ/ログイン機能

  ・ユーザー編集機能

  ・ログアウト機能

です。

 

[GitHubでブランチを作成。作成したブランチ上で作業開始]

まずは準備をします☆

  deviseのGemの追加。[コミットする]

  deviseのビューを用意。[コミットする]

 

・サインアップ/ログイン機能を実装

  必要な機能の実装や設定を行います。

  ブラウザで動作確認。[コミットする]

 

・ユーザー(情報)編集機能を実装

  必要な機能の実装や設定を行います。

  1つずつブラウザで挙動確認。[コミットする]

 

・ログアウト機能を実装

  必要な機能の実装や設定を行います。

  1つずつブラウザで挙動確認。[コミットする]

 

最後に、GitHub

リモートリポジトリにpush/ リモートブランチをマージ/ 作業ブランチの変更をpullという作業を行う。

ーーーーーーーーーーーーーーーーーーーー

GitHubの流れを簡単にいうと、

元データをコピーして、そのコピーしたデータを編集。

編集内容に誤りがなければ、元データに編集したコピーデータをアップデート。

これで、元データに編集した内容が反映されている。という感じです。

 

今回出てきたメソッドは、

【authenticate_use!】メソッド

  deviseのメソッドで、ログイン状態によてt表示するページを切り替えます。

〜使い方〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

コントローラーの先頭に、

  before_action :authenticate_user!  と記述。

→ログインしていないユーザーをログインページ画面に促す。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

【render】メソッド

  呼び出すビューファイルを指定するメソッド。コントローラー、ビューどちらにでも使える。[ルーティング→コントローラー→ビュー]の通常の経由をせず、新たにリクエストされることなくそのままビューが表示されます。

 

 

 

 

と言った感じでした。

表現方法などにティン!ときたら、コメントなどお待ちしています☆

 

 

学習の感想は、

進捗をテンポよくしたいので、流れよみなとこがあるのが気になります。テキストを読み返し理解を深める。という点では、こっちの学習方法が良いのかもしれないですね。

単語?の羅列

『ユーザーを登録しよう』では、

やったことと、重要点の紐付けができてない気がします。(笑)

羅列でにて礼します。

 

ユーザー管理機能を簡単に実装してくれる Gem がいます。【devise】です✨

devise 専用のコマンドを紹介します。

rails g devise:install】と【rails g devise:views】です。あれ?これも、よく見たらかけ声では?✨なんかワクワクしてきました。(笑)

『レイルズ☆G☆デバイス:インストール!!!』は、デバイスの設定関連に使用するファイルを自動で生成するかけ声です。(コマンドです)

『レイルズ☆G☆デバイス:ビューズ!!!』は、自動生成された、ログインや新規作成画面を変更する際に使用するコマンド、、、かけ声です。(コマンドです)

 

【user_signed_in?】は、ログインしているユーザー情報を取得するメソッド。

【リダイレクト】は、本来受け取ったパスとは別のパスへ転送する。

【redirect_to】は、指定先にリダイレクトさせるメソッド。

(。。。)

 

【スネークケース】と【キャメルケース】は、複数の単語が連立する場合に使用する命名パターン。

スネークは、単語の区切りをアンダースコア( _ )で表す。

キャメルケースは、単語の区切りを大文字で表す。

(あ。。。アンダーバーって読んでました。。。ん??(笑))

さらに、表記法にもうひとつ増えます

【キャメルケース】先頭が小文字、単語の区切りを大文字で表す。

【アッパーキャメルケース】キャメルケースの一つ。先頭から単語の区切りが大文字。

【スネークケース】単語の区切りがアンダースコアで表す。

(キャメルケースの一つってことは二つや三つがあったり、スネークケースにもあるのかな?)

さらにさらに、慣習的な命名規則があります

クラス名ーーーアッパーキャメルケース

メソッド名ーースネークケース

変数名ーーーースネークケース

(キャメルケースはいずこへ。。。??)(思考迷子発動)

 

も、あとは、なんか、いっぱいありました。も、どれがどれって、、、復讐が必要です。あ、復習でした。(笑)

 

 

 

学習方法が、

いつものやり方ではいけないと感じたカリキュラムでした。

まず読む→やる。

も一回読む、実装に重要単語照らしあわっっせながらやる。

もも一回やる、単語がどう動いているか確認して、落とし込む。ここで、自分の言葉で説明できるまでにもっていく。。。って感じですかね?

ええ、復習が必要だと感じました。

そっと置いて、次のカリキュラムへ進みました。🍵

『読む』って、脳を選びますか?

こんばんは、レアです☆

 

今日は学習で行っているtweetアプリケーションの

【ユーザーを登録しよう】と【マイページを実装しよう】をしました!

 

悪いお知らせと良いお知らせがあります。。。

悪いお知らせは、

この二つを、ほぼ一日かけて学習してました。💦

良いお知らせは、

アソシエーション、100%理解しました✨✨✨✨自負(笑)

 

カリキュラムには、学習目安時間なるものがあり1カリキュラムごとにあります。

私の学習計画の目標が、その時間内におさめる。さらには、テンポよくして進捗をよくしたい!というものです。

今日のカリキュラム2つは、目安が合わせて2時間のものでした。

自分にドン引きです(笑)

学習を始めて3週間ですが、今までの経緯もあり改善策を考えつくのがかなり早くなりました。今日から取り組み目標を達成していきたいと思います。

 

学習中の考えていたことが、

『私は、読むだけじゃ薄らしているな。薄らしているから誰かに説明出来るまでいかないな。でも、読んでいる人の中には、誰かに説明ができている。違いは、、、?』となりました。

学習中に思考が迷子になる瞬間でした。(笑)

 

とにかく、今日から学習計画の目標達成のために邁進していきます!✨

 

『bundler☆install !!!』ってかけ声みたい

今日は、【Gem】について学びました。

 

プログラミングにおける拡張機能は、

【ライブラリ】と呼ばれます。ライブラリというのは、

複雑なプログラムたちを1つにまとめた モノ です。

この ライブラリ をアプリケーションに読み込ませると

複雑な機能の実装が、簡単に実装できます✨

例えると、、、

さえない主人公が、変身ベルトでヒーローに変身しちゃう!みたいな感じかな?

 

今回使っている、『Ruby』でもこの変身ベルトがあります。

それが、【Gem】です✨ Gem はいくつもあり、Rubyで使う

ものなので【Ruby Gems】と呼ばれます。(総称)

 

Ruby Gems たちは、お互いのGem自身がもつ機能を使って成り立っている

複雑な関係です。1つのGemをインストールしても動かず、

組み合わさって動かすことができる関係です。

一人では生きていけないけど、いろんな人がいて世界は動く。

まるで人間のような、、(笑)

 

Gems のなかに【bundler】さんという Gem がいます。

バンドラーさんは、これらの個性ある Gems たちの関係を把握し、

必要な Gem やバージョンを合わせてインストールするように管理しています。

ターミナル  を使ってバンドラーさんに、インストールをお願いする言葉が、

 『bundler  install』です✨変身する時のかけ声みたいで、いい(笑)

✨✨✨「バンドラー☆インストール!!!」✨✨✨(謎にハマりました)

 

というところが説明できたので、満足しました。

が、まだ続きがあるので、一応書いときますね。

 

「バンドラー☆インストール」をして、お互い必要な Gem やバージョンを

合わせてインストールするかまとめた情報を【Gemfile】といいます。(ファイル)

それらの Gemfile を記録しているのが【Gemfile.lock】といいます。(ファイル)

Gemfile.lock は

1つのGemのために、どのGemをどのバージョンで合わせてインストールしたか

確認ができます!このファイルを見て、Ruby on Rails が必要な Gemfile を

見つけて、PCにインストールされたGemの中から必要なものだけを使用してくれます。

 

Gemfile 以降の内容は、関係性がよくわかっていませんが、

こんな感じなのかな?と考えています。あまり探究心発動すると、

プログラミング学習どころではなくなるそうです。(笑)

 

Twitterでも、ここの部分を

もっと表現したいので、よかったら覗いてみてください☆

アップ(であっているかな?)できるのはまだ先のことだと思いますが。(笑)

 

 

といった感じで、日々迷子になりながらも学習しています。

関係性や表現方法に  ティン!  ときたら、コメントなど

お待ちしてます。

 

学習方法ですが、

自分の中でイメージを作ると、すごく覚えやすく感じました。

しかも、楽しいくてたまらないです。(笑)

難点は、よく迷子になるのと、進捗が遅よりになることです。(笑)