学習記録(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速習実践ガイド