0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

params[:id]とprivateで定義して取得するparamsの違い

Last updated at Posted at 2024-09-08

初めに

疑問に思ったことや上手くいかなかったことのアウトプットをしています。
自分なりの理解でアウトプットしていきます。初学者なので誤りもあると思います。
その際はご指摘いただけると幸いです。

疑問に思った点

コントローラでparamsの記述するときはprivateで定義をして取得している時があります。

private

  def xxxxx_params
    params.require(:user).permit(:email)
  end

なのに

@token = params[:id]

と記述するだけで取得できるコードもあります。違いはなんでしょう。

調べた結果

params[:id]とxxxxx_paramsでの違いはAPIで送られるデータかそうでないかです。
idはAPIリクエストの一部として送信されるので、pramas[:id]で取得できます。
モデルから取得する必要があるデータと、直接送られてくるデータで区別をしています。

修正・追記

privateでparamsを定義しなくてもparamsは使えます。
それでも定義するのはセキュリティの強化、コードの可読性や明示性を高めるためです。
これによって、どのメソッドが外部からアクセスできるかが明確になります。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?