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まで完成。あとは削除