- イベント詳細ページに編集リンクを追加
- 編集をクリックすると編集フォームに移る
- 間違った入力にはエラーを表示する
- 正しく入力されていると更新
- イベント削除のリンクを追加
- イベント作成者にだけ表示する
- 削除をクリックすると確認ダイアログが出て、OKすると削除される
イベント編集機能を作る
まず編集ボタン。event/show.html.erbにp197の通り追記。<% if @event.created_by?(current_user) %>
<% link_to 'イベントを編集する', edit_event_path(@event), class: 'btn btn-info btn-lg btn-block' %>
<% end %>
特に上の部分で、イベント作成者にのみ編集ボタンを表示させている。created_by?についてはEventクラスmodels/event.rbで定義する。
def created_by?(user)
return false unless user
owner_id == user.owner_id
end
こんなのを追記しましたが、内容がイマイチわからない。
returnの行でuserが空ならfalseを戻り値にして返す。
unless userと同じ意味みたい。
return false
end
owner_id〜では、イベント作者のowner_idとログインユーザーのowner_idが同じかをチェックしている?演算子の説明とかちょっとだけしてほしい。辛い。
EventsControllerにedit/updateアクションを追加。
def edit
@event = current_user.created_events.find(params[:id])
end
def update
@event = current_user.created_events.find(params[:id])
if @event.update(event_params)
redirect_to @event, notice: '更新しました'
else
render :edit
end
end
編集時に問題があると編集ページがリロードされちゃうのかな?
未完。
0 件のコメント:
コメントを投稿