Chcę zrobić coś takiego na torach
Oto co mam do tej pory w szynach:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
Ale potem pojawia się ten błąd:
undefined method `merge' for "test":String
Jak mogę przekazać wartości w moim hidden_field w railsach?
Odpowiedzi:
Powinieneś zrobić:
hidden_field
oczekuje skrótu jako drugiego argumentuźródło
<%= hidden_field_tag :service, "test" %>
gdy nie używamyform_for |f|
...Używasz pola hidden_field zamiast tagu hidden_field_tag. Ponieważ używasz wersji innej niż _tag, zakłada się, że kontroler ustawił już wartość tego atrybutu w obiekcie, który tworzy kopię zapasową formularza. Na przykład:
kontroler:
widok:
źródło
Działa dobrze w Ruby 1.9 i szynach 4
źródło
Wersja z nową składnią skrótów w Rubim 1.9:
źródło
Działa to również w Railsach 3.2.12:
<%= f.hidden_field :service, :value => "test" %>
źródło
Nawiasem mówiąc, nie używam ukrytych pól do przesyłania danych z serwera do przeglądarki. Atrybuty danych są niesamowite. Możesz to zrobić
A następnie uzyskaj wartość atrybutu za pomocą jquery
źródło