AR삽질러

Rails 一日一つメソッド (Day39) paramsメソッド 본문

Ruby/RubyOnRails-日本語

Rails 一日一つメソッド (Day39) paramsメソッド

아랑팡팡 2024. 2. 22. 20:28
728x90

 

Rails 一日一つメソッド (Day39) paramsメソッド

 

1. paramsメソッドとは?

 - HTTP Requestに送られてきた情報(パラメータ)を取得し扱うメソッド。

 

1) GET

 - URLのクエリ ストリングによって渡されたパラメータに接近する時に使う。

/articles?category=technology&order=asc

 このURLでは、params[:category]は "technologyを変換し、params[:order]は "asc"を変換する。

 

2) POST

 Form dataや JSONなどのによって渡されたパラメータに接近する時に使う。

 

3) route parameters

 - URLの一部に渡されたパラメータに接近する時に使う。

/users/1

 idパラメータに接近するために params[:id]を使うと 1 が変換される。

 

2. params使い方

 - paramsメソッドは、Controller内でHTTPリクエストを処理する役割を持っている。

 - 戻り値は hashと同様にアクセスできる。

params[キー]

 

1) URLリクエスト文字列とparams

http://example.com/posts?category=Rails&tag=ActiveRecord
def index
	@category = params[:category] # Rails
    @tag = params[:tag] # ActiveRecord
end

 

2) Formとparams

<%= form_with model: @post, local: true do |form| %>
	<%= form.text_field :title %>
    <%= form.text_area :body %>
    <%= form.submit "Submit" %>
<% end %>
def create
	@post = Post.new(params.require(:post).permit(:title, :body))
    if @post.save
    	redirect_to @post
    else
    	render :new
    end
end

 

3) routingとparams

get 'posts/:id', to: 'posts#show'
def show
	@post = Post.find(params[:id])
end

 

Strong Prameters

def user_params
	params.require(:user).permit(:name, :email)
end

 params.require(:user)

 - userキーの存在を確認し、permit(:name, :email)パラメータだけを許可する。

 

重畳されたパラメー

 - フォームやJSON要請により重畳されたパラメータが送信される場合、paramsを通じてアクセスすることができます。

params[:user][:address]

 

 

728x90
반응형
LIST