#実現したいこと
以下をテストするコードを書きたいです。
「ユーザーが質問を投稿できるシステムにおいて、
質問作成者以外が編集画面にGETでアクセスしたら、質問詳細画面にリダイレクトされること」
#分からないこと
①ユーザーAとユーザーBおよびそれぞれが質問を作成する、というケースの書き方
②①を実行したうえで、かつ「質問を作成したユーザーでないユーザーが、
/quesionts/#{@question.id}/edit にアクセスした」
というケースの書き方
#現在のコード
ルーティング
edit_question GET /questions/:id/edit(.:format) questions#edit
question GET /questions/:id(.:format) questions#show
コントローラー
QuestionsController
Ruby
1before_action :ensure_correct_user, only: [:edit, :update, :destroy] 2~~ 3def show 4 @question = Question.find(params[:id]) 5 @answer = Answer.new 6end 7~~ 8def edit 9 @question = Question.find(params[:id]) 10end 11~~ 12def ensure_correct_user 13 @question = Question.find_by(id: params[:id]) 14 if @question.user_id != current_user.id 15 flash[:alert] = "権限がありません" 16 redirect_to("/questions/#{@question.id}") 17 end 18end
RSpec学習を始めたばかりで、かつ既に作成済みの自作アプリに対して市販の技術書のRSpecの作例をあてはめようとしているため、書き方のアレンジに苦戦しております。
お詳しいかた、お知恵をお貸しいただけないでしょうか。宜しくお願いいたします。
あなたの回答
tips
プレビュー