0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rails初心者が使用したコードのおさらい

Last updated at Posted at 2020-09-30

#はじめに
progateとドットインストールでrailsの学習を行い、使用したコードの説明をしてみました。
学習の効率を向上させるためのアウトプットとしての活用なので、間違いがあればご指摘いただけると嬉しいです。

#使用したコードと説明
##コマンドライン

$ rails new myblog

アプリケーションを作成する。

$ rails g model Post title:string body:text

モデルとテーブルを作成する。
モデルとは、データベースとのやり取りを行うクラスのこと。
stringは文字列、textは長い文字列を作成する。

$ rails db:migrate

データベースに変更を反映させる

$ rails g controller Posts

controllerを作成する。
controller:ブラウザからリクエストを受け取り、model・viewとのやり取りをする役割を持つ。

$ rails routes

設定されているルーティングの内容を確認する。
ルーティング:受け取ったURLを認識し、適切なコントローラ内アクションに割り当てる役割を持つ。

$ rails c

rails consoleを実行する

$ rails s

railsのサーバを起動させる。

##controllser.rbファイルで使用したコード

@post = Post.find_by(id: params[:id])

データベースから、該当するidを見つけて、そのデータを@postに代入する。

@post.save

@postの中身をデータベースに保存する。

@post.destroy

@postの中身をデータベースから削除する。
destroyアクションへのリンクを記述するときは、メソッドを記述する。

def update
    redirect_to("フォルダ名/ファイル名")
end

redirect_toは、アクションを実行した後、指定したURLにページ遷移する。

def update
    render("フォルダ名/ファイル名")
end

renderは、別のアクションを経由せずに、指定したURLに直接viewを表示する。

def update
    flash[:notice] = "表示させたい文字を入れる"
end

<%= flash[:notice] %>を記述した箇所に、フラッシュメッセージを表示させる。
フラッシュメッセージの特徴は、ページ上に一度だけ表示されること。

def index
    @posts = Post.all
end

全てのデータを取得する。

##新しくページを作成する手順
例として詳細ページを作成する手順を見ていきます。
そのため、アクション名はshowとします。
コントローラ名は、コマンドラインの項目で記述したpostsとします。
手順は3つありますが、どの手順から行っても問題ないです。

posts_controller.rb
def show
end

controllerファイルにshowアクションを追加する。

routes.rb
get "posts/:id" => "posts#show"

showアクションへのルーティングを追加する。

③作成したアプリケーションの中にあるappviewspostsフォルダの中に、show.html.erbを作成する。

##リンクを作成する
indexから詳細ページへ移動するリンクを見てきます。

index.html.erb
<%= link_to(post.content, "/posts/#{post.id}") %>

link_toメソッドは<a>タグに相当する。
この場合、postに記述してあるテキストがリンクになり、データベースから取得したidのページに移動する。

##フォームに入力した内容をデータベースに保存する

new.html.erb
<%= form_tag("/posts/create") do %>
  <textarea name="content"></textarea>
<% end %>

form_tagは、入力フォームの値を送信する。
送信する値を指定するために、name属性を設定する。

posts_contoroller.rb
@post = Post.new(content: params[:content])
@post.save
redirect_to("/posts/index")

入力フォームから受け取ったデータをデータベースに保存する。
保存後に、index.html.erbページに移動する。

##カラムを追加する

ターミナル
rails g migration ファイル名

①マイグレーションファイルを作成する。

def
  add_column :テーブル名, :カラム名 , :データ名

②マイグレーションファイルの中身を記述する。

ターミナル
rails bg:migrate

③データベースに保存する。

#最後に
とにかくrailsで成果物を作れるくらいに学習を進めていきたいと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?