什麼是params?
params只是從您的瀏覽器發送HTTP request
時發送到您的控制器的參數。
類型的params?
如果你看rail guides
它說
There are two kinds of parameters possible in a web application. The first are parameters that are sent as part of the URL, called query string parameters. The query string is everything after "?" in the URL. The second type of parameter is usually referred to as POST data. This information usually comes from an HTML form which has been filled in by the user
是否有PARAMS是如何工作的規則?
由於@zwippie
指出,軌道不作任何區分是否您的PARAMS從窗體或查詢字符串,來,但他們的方式不同軌道放在一個哈希這些PARAMS,因此不同的方式來訪問這些控制器中
對於查詢字符串:
如果您的網址是這樣的:
http://www.example.com/?vote[item_id]=1&vote[user_id]=2
那麼你PARAMS看起來像:
{"item_id" => "1", "user_id" => "2"}
,因此你可以通過params[:item_id] and params[:user_id]
訪問它們在你的控制器POST數據,或從一種形式:
比方說你的形式是像
<%= form_for @person do |f| %>
<%= f.label :first_name %>:
<%= f.text_field :first_name %><br />
<%= f.label :last_name %>:
<%= f.text_field :last_name %><br />
<%= f.submit %>
<% end %>
並且當您提交表單時,參數將如下所示
{"person"=> {"first_name"=>"xyz", "last_name"=>"abc"}}
通知如何形式已經嵌套在一個哈希您的參數,以便對其進行訪問你的控制器,你就必須做params[:person]
,並讓你可以做params[:person][:first_name]
感謝zwippie單個值! – Khanetor