paramsについて
コントローラー内でリクエストから送信されたパラメータを扱うためのメソッドです。これを使うことで、フォームから送信されたデータやURLのクエリパラメータを簡単に取得できます。
基本的な使い方
-
フォームデータの取得:
フォームから送信されたデータはparams
を使って取得できます。例えば、以下のようなフォームがあります。
<form action="/questions" method="post">
<input type="text" name="question[title]" />
<input type="text" name="question[content]" />
<input type="submit" />
</form>
このフォームが送信されると、コントローラーでは以下のようにデータを取得できます。
defcreate
@question = Question.new(params[:question])
if @question.save
redirect_to action: :index
else
render :new
endend
2.ストロングパラメーター:
セキュリティを確保するために、特定のパラメータだけを許可する「ストロングパラメータ」を使用します。以下のように設定します。
defcreate
@question = Question.new(question_params)
if @question.save
redirect_to action: :index
else
render :new
endend
private
defquestion_params
params.require(:question).permit(:title, :content, :name)
end
具体的なシナリオと使用例
-
新規作成フォームの送信データを扱う:
フォームでユーザーが入力したデータを、params
を使って取得し、新しいモデルオブジェクトを作成するのが一般的です。 -
URLのクエリパラメータを取得する:
URLに含まれるクエリパラメータ(例:?search=example
)を取得することもできます。