EditとUpdateアクション

編集(editアクション)

newで作ったモデルを編集するためには、editアクションを実行する。

edit用ページへのリンク(index.html.erb)
<%= link_to "[Edit]", edit_project_path(project.id) %>

編集対象のモデルのidを一緒に渡す必要がある。

editアクション
def edit
  @project = Project.find(params[:id]);
end
editのViewを作る

editのviewはnewと同様にフォームとボタンがある。railsのDRYに沿って、共通部分は共通化していく。

パーシャル

新たに_form.html.erbというファイルを作る。これがパーシャルというもので、ここにformのコードを書いておく。そうするとeditとnewのコードはこんな感じに。パーシャルとして使う場合のファイルの命名規則は_アンダーバーから始まること。

<%= render 'form' %>

更新(Update)

editの画面でsubmitを押した時の処理を書いていく。

updateアクション
def update
 @project = Project.find(params[:id])
 if @project.update(project_params)
    redirect_to projects_path
 else
    render 'edit'
 end 
end

編集したモデルを取得して、updateでモデルを更新する。その際に、newの時と同様にフィルタリングをやっておく。project_paramsでvalitation。saveの時と同様に、update時にvalitationされるっぽい。

これで、Create Read Updateまで完成。あとは削除