#ruby-on-rails #slim #hidden-field
#ruby-on-rails #тонкий #скрытое поле
Вопрос:
Я пытаюсь передать массив хэшей в hidden_field_tag в форме, но я получаю строку. Промежуточное программное обеспечение или сервер или что-то промежуточное изменяет хэши на строки. Перед отправкой контроллеру массив уже изменился на строку, прежде чем быть назначенным полю.
= hidden_field_tag :cities, @cities
= hidden_field_tag :longitude, params[:longitude]
= hidden_field_tag :address, params[:address]
= hidden_field_tag :category, params[:category]
= hidden_field_tag :city, @city
= hidden_field_tag :state, @state
= hidden_field_tag :category, @category
= hidden_field_tag :user_id, @user.id
Ответ №1:
Мне удалось решить проблему с помощью моего старшего коллеги,:
- В html / тонкий файл:
= hidden_field_tag :cities, @cities.map {|city| city.as_json}.to_json
- Настройка в контроллере:
cities = params[:cities].is_a?(String) ? JSON.parse(params[:cities]) : params[:cities]
cities.map { |city| city.with_indifferent_access }
Я все еще ищу предложения, если этот подход правильный, и очень хотел бы знать, есть ли лучший подход.