Formulir pendaftaran saya, yang merupakan formulir untuk model Pengguna, mengambil nilai string untuk perusahaan. Namun, saya baru saja membuat perubahan sehingga pengguna menjadi milik perusahaan. Oleh karena itu, saya perlu meneruskan objek Perusahaan ke model Pengguna.
Saya ingin menggunakan nilai string dari formulir untuk mendapatkan objek Perusahaan:
@user.company = Company.find_by_name(params[:company])
Saya yakin cara di atas berfungsi, namun formulirnya meneruskan: perusahaan (yang merupakan string) ke dalam model ketika saya memanggil:
@user = User.new(params[:user])
Oleh karena itu, saya ingin tahu (dan tidak dapat menemukan cara) untuk menghapus: parameter perusahaan sebelum meneruskannya ke model Pengguna.
sumber
model_params.delete :key_name
tidak berfungsi - tahu mengapa?assin_params = params.dup.delete(:company)
. tidak pernah menghapus dari params secara langsungassign_params = params.dup; assign_params.delete(:company)
model_params
adalah fungsi, yang menarik parameter yang relevan dariparams
. Jadi ketika Andadelete
darimodel_params
Anda benar-benar hanya menghapus dari hash yangmodel_params
kembali.Anda mungkin harus menggunakan hash.except
Ini menyelesaikan 2 hal: memungkinkan Anda mengecualikan lebih dari 1 kunci sekaligus, dan tidak mengubah hash asli.
sumber
"-1"
sebagai kuncinya. {"utf8" => "✓", "_method" => "patch", "authenticity_token" => "VtY ...", "brochure" => {"title" => "Hello world", "profilings_attributes" => {"-1" => {"member_profile_id" => "3"}, "0" => {"persentase" => "10.0", "description" => "Beberapa deskripsi!", "_Destroy" = > "false", "id" => "10"}, "1" => {...}}, "sponsorings_attributes" => {"-1" => {"sponsor_id" => "2"}, "0" => {"brochure_id" => "Cara yang benar untuk mencapai ini adalah dengan menggunakan
strong_params
Dengan cara ini Anda memiliki kontrol lebih terhadap parameter mana yang harus diteruskan ke model
sumber
ini akan menghapus params dari url
sumber
Agar bisa menghapus Anda bisa melakukan memo :
Sekarang Anda dapat melakukan:
sumber