学習記録(Rails)
RESTfulとは
・ステートレスである事
・ここの情報へのアクセスがHTTPmethodとして統一されている
・リソースごとのURIが一意である事
RESTfulにする事で、わかりやすいコードになる。URLやHTTPmethodに悩むことがなくなる等のメリットがある。
strong parameterを条件分岐する
有料会員のみ使用可能な機能を作成するとして、そのカラムが有料会員を表す意味のpremiumだとする。premiumカラムに値が入っていれば有料サービスのspecialが使用可能とする。
def task_params
task_params = if user.premium
params.require(:task).permit(:name, :description,:special)
else
params.require(:task).permit(:name, :description)
end
end
こんな感じでuserの条件でストロングパラメーターを条件分岐する事で、対応できる。
CSRF対策とは
別のwebサイトに設置してあるリンクを踏んだ時に、自分がログインしているwebサイトに悪意ある操作を行う事を防ぐ事。
CSRFを防ぐにはそのリクエストが同じwebアプリが出したものか判断する必要がある。一般的には同じwebアプリから出したものだと証明するためにセキュリティトークンを発行する。
Railsのform_withなどのヘルパーで送った場合には、自動で適用される。
しかしgetには適用されないので、変更を行うような対応を行う時には必ずpostリクエストで行う。
参考:Ruby on Rails速習実践ガイド