params
Rails コントローラーについて、どこから来て、何を参照しているのかを説明してくれる人はいますか?
def create
@vote = Vote.new(params[:vote])
item = params[:vote][:item_id]
uid = params[:vote][:user_id]
@extant = Vote.find(:last, :conditions => ["item_id = ? AND user_id = ?", item, uid])
last_vote_time = @extant.created_at unless @extant.blank?
curr_time = Time.now
end
このコードを1行ずつ読んで、何が起こっているのか理解できるようになりたいです。
ベストアンサー1
パラメータは、ユーザーがページをリクエストしたときにユーザーのブラウザから取得されます。最も一般的なHTTP GETリクエストの場合、パラメータはURLにエンコードされます。たとえば、ユーザーのブラウザが
http://www.example.com/?foo=1&boo=octopus
するとparams[:foo]
「1」となり、params[:boo]
「タコ」となります。
HTTP/HTMLでは、パラメータはキーと値が文字列である一連のキーと値のペアですが、Ruby on Railsには、パラメータをハッシュ内にハッシュとして格納するための特別な構文があります。たとえば、ユーザーのブラウザが
http://www.example.com/?vote[item_id]=1&vote[user_id]=2
params[:vote]
ハッシュは「params[:vote][:item_id]
1」、そしてparams[:vote][:user_id]
「2」になります。
Ruby on Rails のパラメータは、PHP の $_REQUEST 配列に相当します。