Biểu mẫu của tôi nhận dữ liệu qua POST. Khi tôi làm puts params
tôi có thể thấy:Đọc và viết các tham số Sinatra bằng ký hiệu, ví dụ: params [: id]
{"id" => "123", "id2" => "456"}
nay là lệnh:
puts params['id'] # => 123
puts params[:id] # => 123
params['id'] = '999'
puts params # => {"id" => "999", "id2" => "456"}
nhưng khi tôi làm:
params[:id] = '888'
puts params
tôi nhận được
{"id" => "999", "id2" => "456", :id => "888"}
Trong IRB nó hoạt động tốt:
params
# => {"id2"=>"2", "id"=>"1"}
params[:id]
# => nil
params['id']
# => "1"
Tại sao tôi có thể đọc giá trị bằng cách sử dụng :id
, nhưng không đặt giá trị bằng cách sử dụng?
câu hỏi là lý do tại sao params [: id] đọc giá trị cho id tham số, trong khi gán: id tạo biến mới dưới tên mới –