Frage

Ich habe diese Frage auf SO finden, aber es didn ‚t Hilfe, wirklich.

So, würde Ich mag ein Array durch einen versteckten Feld-Tag übergeben. Ab sofort ist mein Code:

<%= hidden_field_tag "article_ids", @articles.map(&:id) %>

Dies gilt natürlich nicht arbeiten, da es die ids als String übergibt.

Wie kann ich es tun?

War es hilfreich?

Lösung

Hallo vielleicht gibt es eine bessere Lösung, aber man kann versuchen,

<% @articles.map(&:id).each do |id| %>
  <%= hidden_field_tag "article_ids[]", id %>
<% end %>

Andere Tipps

Sie könnten versuchen, es zu analysieren, zu und von json:

articles_list = @articles.map(&:id).to_json # gives u: [1,2,3,4,5]
                                            # note that the result is a string instead of an array
article_ids = JSON.parse(articles_list)

Oder Sie könnten nur die Verwendung von Komma getrennt machen string:

articles_list = @articles.map(&:id).join(",") # gives u: 1,2,3,4,5
                                              # note that this result is a string also
article_ids = articles_list.split(/,/).map(&:to_i)

Im Folgenden arbeitete für mich auf Schienen 4.1.10

<% @your_array.map().each do |array_element| %>
    <%= hidden_field_tag "your_array[]", array_element %>
<% end %>

Auf Schienen 4 Sie tun können:

<% @articles.map(&:id).each do |id| %>
  <%= hidden_field_tag "article_ids", value: id, multiple: true %>
<% end %>

als Schienen automatisch append „[]“ auf den Namen des Feldes (wenn multiple verwendet wird) und die Steuerung, die die Form, werden sehen, empfängt als ein Array von Werten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top