クラス、メソッドを一気に理解する
目的
以下のコードを理解することを目的とします。
calss Animal
def setName(str)
@name =str
end
def dispName()
print(@name,"¥n")
end
end
animal = Animal.new()
animal.setName("dog")
animal.dispName()
このコードを実際に実行すると、dogと表示されるはずです。
用語の理解
まずは用語の定義を見ていきます。
クラス:オブジェクト(rubyではデータのことをオブジェクトという)の設計図のこと。定義する際は、頭文字を必ず大文字にします
インスタンス:クラスから作られたオブジェクト。名前の前に@をつけて定義します
メソッド:クラスから作成されるオブジェクトに対して行わせたい処理を記述するもの、命令。例えば、今回出てくるnew
メソッドは、そのクラスのインスタンスであるオブジェクトを作成します。
要は、クラスは設計図であり、実際に何かを行わせるにはクラスからオブジェクトを生成する必要がある、そのクラスに対する動作を行わせているクラスメソッドが用意されている、ということです。
コードの読み取り
さきほどのコードに、一文ずつ意味をコメントしていきます。
calss Animal #Animalという名前のクラスを定義します
def setName(str) #setNameという名前のメソッドを定義します
@name =str #setNameは@nameという名前のインスタンス関数に文字を格納していくメソッドです
end
def dispName() #dispNameという名前のメソッドを定義します
print(@name,"¥n") #dispNameは@name改行、を表示するメソッドです
end
end
animal = Animal.new() #animalはクラスAnimalからオブジェクトを生成する変数です
animal.setName("dog") #animal変数に対してsetNameメソッドが実行され、@nameにdogという文字列が代入されます
animal.dispName() #animal変数に対してdispNameメソッドが実行され、@name(すなわちdog)が表示される
読書苦手だから本当に役立つ読書術を学ぶことからはじめた
「読んだら忘れない読書術」(樺沢紫苑)
を読みました。
以下、この本の目次を引用します。
目次
読んだ目的
本を読むのが苦手、だけど入社前の課題図書があってたくさん読まなければならない状況なので、効率的な読書術が知りたかった!
得られたこと
以下、勉強になったことや気づきを得られたことを箇条書きで。
・読書は人生が豊かになる、一人では得られない分の成功経験と失敗経験を知ることができる
・情報と知識は違う、10年たっても風化することのない知識を得よう
・月に7冊読むだけで読書量において日本人の上位4割に入ることができるらしい
・読書の最終的な目的は自己成長と行動の変化
・重要なことは、アウトプットすること、楽しむこと、スキマ時間で集中して読むこと
・1冊につき3行ほど大切な気づきにマーカーを引く
・本は最初から1字1句読む必要はない
①全体を把握する②本を読む目的を設定する③速読か精読か決める
・広げる読書と深める読書のバランスが重要、試し堀りをしていここだと思ったところは本堀りして、自分の可能性を引き出す
感想
どれだけ効率的に時間を無駄にせずに読むか、そしてどれだけ内容を忘れないか、を実現するためのノウハウ本でした。
私の場合は運命の本と出会った回数が少なくて、人生を変えた本とかなくて。
だからこんなに読書って可能性があるのか!と、
読書の重要性の裏付けや根拠(経験だけでなく科学的にも書いてあって面白かった)があって俄然読書家になる気が湧いてきました。笑
興味を持ったテーマ
読書が頭や心にいい理由を脳科学の知識を織り交ぜて述べていたりするところが面白かったので、
著者の珠玉の31冊にも課題図書にも入っている
茂木健一郎さんの脳を活かす勉強法を読みたいです。
悲しいことに本屋に売ってなかったので、次は話題の「嫌われる勇気」を読みますが、その次で!
多分私は理屈っぽいから、心理学とか哲学とか好きなんだけど、
それを深めるとすべてを法則や理論で語れるようになって、人間味が無くなってしまうイメージがありました。
でもそれは大誤解でむしろ逆な予感がしてきたので、
その領域にもっと詳しくなりたいなと思いました。
自分の考えに自信がつきそう。
ドットインストールでタスクアプリを作ってみたよ【projectの詳細を表示する】
今回はこのページの次のページを作ります。
要はp1にリンクをつけたいと思います。
流れとしては、
-
projectのindexにlinkタグのような命令を入れる
-
projectにshowを定義する
-
show.htmlをviewの中に作る
といった感じです。
・linkをつける
まずはp1をクリックしたら詳細が見れるようにlinkをつけます。
htmlファイルを変更したいので
app/views/projects/index.html.erbに書いていきます。
p1を表示させているコードに追加して、以下のようにします。
<%= link_to project.title,project_path(project.id) %>
(pathを渡すときにidを渡さなきゃいけない)
そして、前にrake routeで出てきた結果を参考に、
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PATCH /products/:id(.:format) products#update
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
projectにshowというアクションを作ればいいことがわかります。
・コントローラにshowを定義する
project.controller.rbに
def show
@project = Project.find(params[:id])
end
を追加します。
これは、URLで渡ってきたidはparams でとれる、という意味らしい。
・showのviewを作る
views/projectの中にshow.html.erbを作ります。
中身は
<h1><% = @project.title %></h1>
というコードにします。
そうすると、しっかりp1にリンクがついて
そのページにはproject.title、要はp1と書いてあります。
おまけ
・ロゴを入れてみよう
まずロゴにしたい画像をapp/assets/imageに入れておきます。
そしてviews/layout/application.html.erbに
<%= image_tag"ファイル名" %>
と書きます。
・homeボタン(リンク)を作ろう
views/layout/application.html.erbに
<%= link_to "Home","/" %>
を追加するだけ!
IT企業に就職するなら見ろ、と言われスティーブジョブズを見て感じたこと
親しい人から
「ITに興味があるんだったらスティーブジョブズを見ないでどうする!」と叱られたので、
IT企業に就職する私はおとなしく見ることにしました。
そうですよね、見てないことが恥です。
洋画が苦手(?)とは言え、
テーマが興味のど真ん中だしいけるだろうと思い
GWの暇な時間を使い自宅で鑑賞。
初めにざっくりとした感想だけ言うと、
最高でした!!!笑
以下、概要を映画.comから引用します。
「スラムドッグ$ミリオネア」のオスカー監督ダニー・ボイルが、アップル社の共同設立者スティーブ・ジョブズの生き様を描いた伝記ドラマ。ジョブズ本人や家族、関係者へのインタビューを中心に執筆された伝記作家ウォルター・アイザックソンによるベストセラー「スティーブ・ジョブズ」をもとに、「ソーシャル・ネットワーク」でアカデミー脚色賞を受賞したアーロン・ソーキンが脚本を担当。1984年のMacintosh、88年のNeXT Cube、98年のiMacというジョブズの人生の中で最も波乱に満ちていた時期に行なわれた3つの新作発表会にスポットを当て、人々を魅了した伝説のプレゼンテーションの舞台裏を通し、信念を貫き通そうとする姿や、卓越したビジネスセンスを浮かび上がらせていく。さらに娘リサとの確執と和解といったエピソードも盛り込み、ジョブズの素顔を浮き彫りにする。「それでも夜は明ける」のマイケル・ファスベンダーがジョブズを熱演し、共演にも「タイタニック」のケイト・ウィンスレット、「グリーン・ホーネット」のセス・ローゲンら豪華キャストが集結。
ジョブズが波乱万丈な人生を歩んできて、こだわりが物凄く強い人、ということは中学の英語の教科書に書いてあったのでなんとなく知っていましたが笑
彼の生き様をリアルに知れて、映画っていいな(洋画って案外いいな)と今更ながら思いました。
ジョブズだって初めは小さなガレージから始め、ベンチャーキャピタルに100回以上しつこく電話をかけ、自分が思い描いている理想の未来像だけを信じて行動し続けていました。
だけど、まっすぐ盲目に突き進むと、周囲と衝突する。
それは誰だって懸念することで、
むしろその折り合いをどうつけていくかも、個人のスキルの一つであると捉えている人は、日本人、というか社会人には多いのではないでしょうか。
というか、そうであるべきな世の中かと。
だってそうじゃないと、お金が稼げないしチームが成り立たないし。
でもそんなみんなの当たり前を情熱で無視できてしまうのって、
本当に才能。
そういう人に人って一定数ついていくと思う。
なんか魅力なんだもん。
でもやっぱり一つ思うのは、
ジョブズは会社に要らないと思った人材は
どんな情も捨ててリストラしたけれど、
そのときどんな気持ちだったのかは全然わからない。
捨てて、って書いたけど、そもそもそんな感情芽生えないのか、
簡単に捨てられるのか、
実は一瞬辛いのか。
ジョブズはどんな人だったのだろう。
そんなことを考えながら見ていました。
結局、こういう、まっすぐで時に不器用ででも絶対に本質は逃がさない、そんな人が世の中を変えていくのだなぁ。
私も IT企業に就職するので、やっぱり世の中に新しい価値を生み出す瞬間(のシーン)では涙が出てきました。感動です。
中学生のときは、こんなすごい人がいるよって教えられたって自分とはかけ離れすぎた存在で、目指すどころか憧れることさえ憚れるようなイメージがありました。笑
でも、娘リサとの確執を描いた一連のストーリーの中でプライベートを見てみると、
あ、この人も私たちと同じ人間でありひとりの男性なんだと思わせてくれる、そんなおまけストーリーもついてました。
こういう偉人の人生を映画にしたもの、もっと見ようと思います。
私が見た数少なすぎる洋画のレパートリーの中には
ソーシャルネットワークもあって、超面白かったし。笑
映画を見た後に、すぐには現実に戻れなくなって、
この世の中がなんなのかわからなくなる瞬間は本当に嫌いじゃない。
私はSFだと逆にその世界に入り込めないので
ヒューマンドラマ系でまた周りの友達にオススメを聞いて
見てみようと思います。
なんらかの形で人生の肥やしになれ〜〜⭐️⭐️
ドットインストールでタスクアプリを作ってみる【コントローラー編】
前回はモデルを作ったので、今回はコントローラーを作ります。
と言いたいところですが、用語の意味もよく理解せずに進めていたことに気がついたので、復習します。笑
モデル
モデルとは
データベースの情報を操作する仕組み
リファレンス▶︎モデル(model) - - Railsドキュメント
コントローラー
コントローラーとは
モデルからデータを受け取り、ビューにレンダリングを行わせる仕組み
リファレンス▶︎コントローラ(controller) - - Railsドキュメント
railsの構造がとてもわかりやすく載っているブログ(これ、とってもわかりやすくてありがたいです。今まで何をしていたのか頭がすっきりしました。)▶︎
ここまで実際に触って動かしてたから、
こういうの読んでちゃんと頭に入ってくる!😂
さてさて本題です!
・コントローラーを作る
rails g controlller projects
projectsという名前のコントローラーを作りました。
そうすると
こんな感じでappの中にcontrollerフォルダができていたりファイルが増えていたりしていて、
この色付きのファイルをこれから書き換えていきます。
ですがその前に、ちゃんとローカル環境に表示されるように
ルーティングの設定を行います。
・ルーティングの設定
configの中のroute.rbを開きます。
(config:Railsで使うデータベースの設定を記述)▶︎設定ファイル(config) - - Railsドキュメント
そこに
resourses :projects
を追加。
これは、projectに関するURLみたいなものを自動生成してくれるものらしいです。
そしてターミナルに
rake routes
で今のルーティング設定がちゃんとできていたのか確認します。
そうするとこんなのが出てきます。
Prefix Verb URI Pattern Controller#Action
projects GET /projects(.:format) projects#index
POST /projects(.:format) projects#create
例えば赤字のところは
今作ったprojectの一覧を表示させたいなら
projectsのindexに書き込みなさいっていうことみたい。(?)
後々何か新しくページを作ったりするときに
これを参考にするみたい!
・project(タイトルがp1のやつ)をサイトに表示させる
taskapp/views/の中に
index.html.erbというファイルを作ります。
中身は
<h1>projects</h1><ul><% @projects.each do |project| %><li><%= project.title %></li><% end %></ul>
リストにprojectを呼び出しています。
そうしてrails sしてlocalhost:3000/projectsを確認すると
前回入れておいたp1がきちんと表示されました!
こんな感じに表示されました!
・localhost:3000で表示されるようにする
3000/projectsにあったものを
3000(トップ画面的な)というURLで表示されるようにします。
よくあるルーティング設定らしいです。
config/routes.rb
に
root 'projects#index'
を追加します。
するとlocalhost:3000で上記と同じものが反映されました!
(何か間違っているところがあったらご指摘いただけたら嬉しいです)
railsのディレクトリ構成について
おはようございます。
少し作ってみてディレクトリ構成の意味を理解し始めたので、
改めてリファレンスを見ると分かりやすくてびっくり!笑
今のところよく出てきたディレクトリの構造をまとめて
頭をすっきりさせました。
ドットインストールでタスクアプリを作ってみる【モデル編】
ruby on railsがコントローラーとビューとモデルでできてるとか、
知識としては入ってても
やっぱり開発経験がないとピンとこないんですよね。
早いかもしれないけどタスクアプリ作ってみます。
※浅い知識のためニュアンスとか間違ってたらすみません
タスクアプリを作ろう
この動画に沿って開発を進めます
ドットインストール様→#07 Controllerを作ってみよう | Ruby on Rails 4入門 - プログラミングならドットインストール
準備
rails new Taskapp
Taskappという名前でアプリケーションを作ります
cd Taskappでディレクトリを移動しておきます
まずはモデルを作る
rails g model Project title(:string)←デフォルトでstringだから省略可
これでProjectって名前のモデルができました
rake db:migrate
dbに反映されます
rails db
dbを一応確認してみました
rails console
ここで作ったモデルをインタラクティブにrubyを使っていじれます
要はターミナル上でテーブル作ったりできるみたい
この命令をするとrubyの授業でやってた懐かしのirb(main):001:0>ってやつが出てきたので、
p = Project.new(title="p1")
を定義してp.saveを入力したら
以下の文が出てきました
irb(main):003:0> p
=> #<Project id: 1, title: "p1", created_at: "2016-05-04 18:01:00", updated_at: "2016-05-04 18:01:00">
ちゃんとpが定義されてました