プログラミング学習(二日目) ProgateでRuby On Rails レッスン2
今日学んだこと
htmlファイルにRubyの埋め込み方と、変数の定義
拡張子を.html.erbとすると、htmlファイルにRubyのコードを埋め込める
erbとは「Embedded ruby(埋め込みRuby)」の略
具体的には<% %>で囲むと、ブラウザには表示されず、
<%= %>で囲むと、ブラウザに表示される。
また、Railsでは変数はビューファイルではなくアクションで定義するのが一般的。
アクション内で@を先頭につけることによって、ビューファイルでも使えるようになる。
こんな感じ
def index
@moneys=["yen", "us", "rupee"]
end
<% @moneys.each do |money| %>
<%= money %>
<% end %>
Railsでのデータベースの扱い方
データベースにデータを保存するには、テーブルを作る必要がある。(今回はpostsテーブルとする)
ちなみに縦の列を「カラム」、横の行を「レコード」という。
postsテーブルを作成する手順
①データベースに変更を指示する「マイグレーションファイル」を作成する
②データベースに変更を反映
マイグレーションファイルの作成方法
$rails generate model Post content:text
と入力。それぞれの意味は、
「Post」は「posts」テーブルを作成するために単数形で宣言。モデル名。
「content:」はカラム名
「text」はデータ型。この場合は、長い文字列を意味する。
そして上のコマンドで
アプリケーション名/db/migrate/ に、マイグレーションファイルができる。内容はまだ理解しなくていいらしい?
次に、
$rails db:migrate
で、マイグレーションファイルを使い、データベースに変更を反映してpostsテーブルを作る。
この時、「id」、「created_at」、「update_at」カラムが作られるが、意味は
「id」がデータベースに入れられた順につけられる番号
「created_at」がデータベースに保存された時間
「update_at」が更新された時間
ちなみに、データベースに反映されてないマイグレーションファイルが存在すると、マイグレーションエラーが起こるので注意。
テーブルの操作方法
$rails g model Post content:text
で、postsテーブルを操作するためのPostモデル(モデルはクラス)が生成されるので、このPostモデルを使って操作する。
このモデル(クラス)は上記のコマンド時に
app/models/post.rb(ファイル名は単数形)
に生成される。
class Post < ApplicationRecord
end
このように「ApplicationRecord」を継承したクラスをモデルという。
このモデルを使ってテーブルを操作する。
rails consoleの使い方
コンソールで
$rails console
と打つだけ。Rubyのコードを手軽に実行できるやつ。irbと似てる?。quitで終了。
Postモデルを使い、データベースのpostsテーブルにデータの追加方法
①newメソッドで、Postモデルのインスタンスを生成。
②saveメソッドを使い、postsテーブルに保存
まず①から
rails console上でも.rbファイル上でもいいが、今回はrails console上で行う。
$rails console
・
・
>post = Post.new(content:"Hello World")
これはcontentが"Hello World"のPostインスタンスを生成し、変数postに代入している。
そして、②の保存は
>post.save
で行う。
saveメソッドが使える理由は、「ApplicationRecord」クラスを継承しているため。
データベースからデータの取り出し方
>post=Post.first
>post.カラム名
で、一行目の指定してカラムのデータを取り出せる
>post=Post.all
で、postsテーブルのすべてのデータを配列として取得可能。
>Post.all[0]
で、idが1のレコードを取得可能。さらに
>Post.all[0].content
で、idが1(一行目)のcontentカラムのデータが取得できる。
このデータの取得は、コントローラのアクション内でも利用可能。
共通のレイアウトのまとめ方
Railsでは、「views/layouts/application.html.erb」に共通のHTMLを書いておける。
これの原理は、application.html.erbには<%= yield%>というコードがあり、各ビューファイルはこのコードに代入され、
application.html.erbの一部としてブラウザに表示されるので。
link_toメソッド
link_toメソッドはRubyのコードで、<%=%>コードで記述する。そうするとHTMLのaタグに対応する。
<%= link_to("投稿一覧", "/about") %>
↓
<a href="/about>投稿一覧</a>
思ったより書く時間がかかったので、これからはもう少し端折ります。
Author And Source
この問題について(プログラミング学習(二日目) ProgateでRuby On Rails レッスン2), 我々は、より多くの情報をここで見つけました https://qiita.com/koshikiya6/items/77f72e129b7968c1520d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .