1. ホーム
  2. ruby-on-rails

[解決済み】Railsのparamsの説明?

2022-04-04 19:29:26

質問

どなたか説明してください。 params は、どこから来て、何を参照しているのでしょうか?

  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

このコードを一行ずつ読んで、何が起こっているのかを理解できるようにしたいのですが。

どのように解決するのですか?

paramsは、ユーザーがページを要求したときに、ユーザーのブラウザーから送られてくるものです。 最も一般的なHTTP GETリクエストの場合、パラメータはURLの中にエンコードされています。 たとえば、ユーザーのブラウザから

http://www.example.com/?foo=1&boo=octopus

では params[:foo] は "1"、そして params[:boo] は"octopus"となります。

HTTP/HTMLでは、paramは実際にはキーと値が文字列である一連のキーと値のペアに過ぎませんが、Ruby on Railsではparamを内部にハッシュを持つハッシュにするための特別な構文が用意されています。 たとえば、ユーザーのブラウザが次のようにリクエストしたとします。

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配列 .