У меня проблемы с формастастом. Сначала я постараюсь набросать ситуацию настолько хорошо, насколько смогу.
У меня есть модель с именем onlinescore
, которая имеет атрибуты publisher
, id
и некоторые другие базовые. Однако одним из его атрибутов является массив с urls
. Эти urls
являются хешами с таким содержимым:
{"url" => "http://www.example.com", "description" => "blabla"}
Итак, массив выглядит так:
[{"url" => "http://www.example0.com", "description" => "blabla0"},
{"url" => "http://www.example1.com", "description" => "blabla1"},
{"url" => "http://www.example2.com", "description" => "blabla2"}]
Сейчас я делаю форму для создания нового onlinescore
, и для этого мне нужен способ сбора входных данных для этого массива. Я хотел бы иметь 2 поля ("url" и "description"), которые каким-то образом отображаются в массиве urls. Как только это сработает, я бы хотел, чтобы пользователь мог добавлять несколько URL-адресов одновременно, например, с помощью кнопки «Добавить новый URL-адрес», которая генерирует еще два из этих полей.
Я уже пытался выполнить это несколькими способами, например, вот так:
#rest of form
<% @onlinescore.url.each do |link| %>
<% form.inputs :for => link do |urls| %>
<%= urls.input :url, :as => :url %>
<%= urls.input :description, :as => :string %>
<% end %>
<% end %>
#rest of form
, который выдает ошибку:
неопределенный метод `имя_модели 'для Hash: Class
Я также попытался определить новый тип ввода: score_url, но я тоже не смог продвинуться в этом, потому что мне нужен кортеж из 2 полей, а не одного, и я пока не нашел способа сделать это. Я смотрел на формы без модели, но на самом деле я не думаю, что это то, что мне нужно ...
У кого-нибудь есть идеи, как это сделать?