Đây có thể là câu hỏi ruby sau đó đặt câu hỏi nhưng tôi chắc rằng tôi có thể thực hiện điều này trong ứng dụng ruby.Sửa đổi băm ruby tại chỗ (thông số mạnh của đường ray)
Tôi đã xác định các thông số mạnh.
def trip_params
params.require(:trip).permit(:name, :date)
end
Bây giờ tôi nhận được các thông số đó trong một phương pháp điều khiển. Tôi muốn làm điều này.
def save
trip_params[:name] = 'Modifying name in place'
#trip_params[:name] still equals original value passed
end
Điều này không bao giờ hoạt động. Tên không bao giờ thay đổi. BTW: Loại trip_params là ActionController :: Tham số
Nếu tôi thực hiện một tập lệnh ruby chuẩn, nó hoạt động.
test = {}
test[:name] = "blah"
test[:name] = "ok"
puts test #{:name=>"ok"}
Chuyến đi có phải là bản ghi hoạt động không? Bạn có thể cần phải lưu nó một cách rõ ràng trong cơ sở dữ liệu: '@ trip.save' – Daiku
Tôi lấy phần Trip.new. Đừng để điều đó làm sao lãng. Tôi đang cố gắng sửa đổi các ActionController :: Tham số băm tại chỗ. –