ドットインストールでRails学んだよ(2回目)

ドットインストールでRails学んだよ(2回目)ドットインストールでRails学んでみました。といっても2回めです。200日前くらいに一回終了させていて、その後Railsあまりいじっていなかったので。あと2週間位Web側の基礎知識学んだらサービスなんか作ってみよう。

また、ちょっと気になったことや覚えておきたいことをメモしていくスタイルで書いていきます。

一番簡単なサイト作成手順

$ rails new myapp
$ rails cd myapp
$ rails generate scaffold User name:string score:integer
$ rake db:migrate

とりあえずこれで、/usersなどの画面が作成される。

gemのインストールをスキップする

既に必要なライブラリがインストールされているならばこれをすると速い。

$ rails new taksapp --skip-bundle

db

  • $ rails db: 今使っているdbにアクセスできる
  • $ rails console: インタラクティブにdbをいじれる。
  • $ Project.new: 新規追加。
  • $ Project.create: newとsaveを一緒にやってくれる。

routes

  • $ rake routes: ルーティングを表示する。

書き方はroutes.rb参照。

便利メソッド

  • image_tag "logo.png"と書くと、app/assets/imagesを見に行ってくれる。
  • link_to "Home", "/"と書くと/にリンクを張ってくれる。
  • link_to "Home", projects_pathと、rake routesで表示されるPrefixに_pathをつけるとそこへのリンクを張ってくれる。

フォーム

相当シンプルな作り方。

<h1>Add New

<%= form_for @project do |f| %>
<p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
    <%= @project.errors.messages[:title][0] %> # エラーを出力する
</p>
<p>
    <%= f.submit %>
</p>

<% end %>
// create メソッド
def create
    @project = Project.new(project_params)
    @project.save
    redirect_to projects_path
end

// projectから渡ってきたものの中からtitleだけ取り出す
def project_params
    params[:project].permit(:title)
end

バリデーション

モデルに書く。

class Project < ActiveRecord::Base
    validates :title, presence: true
end

controllerではsaveに成功したら一覧に戻る。失敗したらnewに戻るというように書いておく。

def create
    @project = Project.new(project_params)
    if @project.save
        redirect_to projects_path
    else
        render 'new'
    end
end

その他

controllerでは渡ってきた値をparamsで取得できる。下記の例の:idというのはroutesで確認できる。

def show
    @project = Project.find(params[:id])
end

参考

Pocket
LINEで送る

You may also like...