Saya ingin melakukan sesuatu seperti ini di rel
Inilah yang sejauh ini saya miliki di pagar:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
Tapi kemudian saya mendapatkan kesalahan ini:
undefined method `merge' for "test":String
Bagaimana saya bisa meneruskan nilai di hidden_field saya di rails?
Jawaban:
Kamu seharusnya melakukan:
hidden_field
mengharapkan hash sebagai argumen keduasumber
<%= hidden_field_tag :service, "test" %>
ketika tidak menggunakanform_for |f|
...Anda menggunakan hidden_field alih-alih hidden_field_tag. Karena Anda menggunakan versi non-_tag, diasumsikan bahwa controller Anda telah menetapkan nilai untuk atribut itu pada objek yang mendukung formulir. Sebagai contoh:
pengontrol:
melihat:
sumber
Ini berfungsi dengan baik di Ruby 1.9 & rails 4
sumber
Versi dengan sintaks baru untuk hash di ruby 1.9:
sumber
Ini juga berfungsi di Rails 3.2.12:
<%= f.hidden_field :service, :value => "test" %>
sumber
Omong-omong, saya tidak menggunakan bidang tersembunyi untuk mengirim data dari server ke browser. Atribut data mengagumkan. Anda dapat melakukan
Dan kemudian dapatkan nilai atribut dengan jquery
sumber