RubyOnRailsの基本操作まとめ

RubyOnRailsの立ち上げ

1.railsの立ち上げ
RubyOnRailsの立ち上げは $rails server コマンドを使用する

Railsのコントローラーを作成する

2.railsのコントローラー
Railsのコントローラーはブラウザにビューを返すもの

RubyOnRailsのコントローラーを作成するには $rails generate controllerコマンドを使用する
$rails generate controller コントローラー名 アクション名 となるように記述する。

$rails generate controllerを実行するとルーティングとビューが作られる。

ルーティングの内容

3.railsのルーティング
RubyOnRailsのルーティングはURLとコントローラー、アクション名が記述されている。URLがどのコントローラー、アクションを呼び出すかを定義している。

アクション内の変数定義

4.アクション内の変数定義
RubyOnRailsのアクションはコントローラーに定義されており、アクション名と同じビューファイルを探しだして表示する。

アクション内で変数定義する場合は @ 記号を用いて定義する。

Railsでテーブルの作成

5.rails テーブルの作成
RubyOnRailsのテーブル作成は $rails generate modelコマンドを使用する。
【$ rails generate modell テーブル名 カラム名:データ型】のように記述する。

rails generate modelコマンドの次は db:migrateコマンドを実行する。これでテーブルが作成される。このとき2つのファイルが自動的に作成されている。またデータベースにはidカラムとcreated_atカラム、updated_atカラムが自動的に作成される

データベースのデータ作成やデータ取得

たとえばrails g modelコマンドを実行しPostテーブルを作成する。

$rails g model Post content:text

ApplicationRecordクラスを継承するPostクラスが作成される。

データの作成

  1. 変数 = テーブル名.new(content: “こんにちは”)
  2. 変数.save()

データの取得

  • テーブル名.all → テーブル全てのデータを取得
  • テーブル名.first → 1行分のデータを取得
  • テーブル名.all.カラム名 → カラムデータの取り出し

特定のデータを取得
テーブル名.find_by(id:3) → idが3の行のデータを取得

テーブルの並び替え

  • テーブル名.all.order(カラム名: :desc)
  • テーブル名.all.order(カラム名: :asc)

共通のビュー

6.共通のファイル

共通のビューはapplication.html.erbというファイルに記述されている。<%= yeild%> には各ビューの情報が格納されていて、<%= yeild%>が存在することによって各ページが表示される仕組みになっている。

Railsのリンクの作成

link_to()メソッドはリンクを作成するメソッド。link_to(文字列, URL)の第一引数には文字列、第二引数にはURLを指定する。

URLは 必ず / スラッシュからはじめる。

ページ番号つきのURL

7.ページ番号つきのURL
ページ番号付きのURLはルーティングのURLを変更する。get “posts:/id” => “postsー#アクション名”とするとページ番号付きのURLを表現できる。:idの部分がページ番号になっている。

アクションでページ番号を取得する
ルーティングで定義した :id はparams[]を使うことによって取得できる。

  • params[:id]でURLのページ番号に対応した値を取得することができる。
  • Post.find_by(id: params[:id])とするとURLのページ番号に対応したテーブルのレコードを取得できる

ページ番号に対応したデータを取得する
8.ページ番号に対応したテーブルデータを取得
データベースからページ番号に対応したデータを取得するには find_by()メソッドとparams[]を組み合わせて使います。

@post = Post.find_by(id: params[:id])と書くことによってページ番号と同じid番号のデータをデータベースから取得できます。

フォームの送信とリダイレクト

9.フォームの送信とデータベースへの保存

RubyOnRailsでフォームの送信を受け取るにはルーティングに受け取り用のurlとコントローラーを追加する必要があります。このとき属性はpostにしておきます。

post “url” => “コントローラー#アクション” のと記述します。

html側はform_tag()メソッドでフォームの送り先をルーティングと同じURLにしておきます。

フォームの値をうけとるには、アクションでparams[:content]を使用します。さらにそれをデータベースに反映するには
Post.new(conetnt: params[:content])と記述します。

フォーム送信を行った際にリダイレクトさせるにはredirect_to()メソッドにリダイレクト先のURLを指定します。


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78