Я делаю проект, для которого у меня есть класс online_score
, одним из атрибутов которого является массив с именем url
из online_score_url
объектов. То, что я сделал до сих пор, заключается в следующем. просмотры/онлайн_оценка/новый:
<div class="urlInput">
<% f.fields_for :url do |b| %>
<%= render "online_score_url_fields", :f => b %>
<% end %>
<%= add_url_link "Add Another link", f %>
</div>
views/online_score/_online_score_url_fields:
<div class="inputset">
<%= f.label :url %> <%= f.url_field :url, :value => "http://www.google.be"%>
<%= f.label :description %> <%= f.text_field :description %>
<%= link_to_remove_fields "remove", f %>
</div>
Теперь моя проблема в том, что я хочу иметь возможность динамически добавлять входные данные для online_score_url
objects, которые я пытаюсь сделать с помощью JQuery. Я пытаюсь сделать это, визуализируя партиал следующим образом: helpers/online_scores_helper.rb:
def add_url_link(name, form)
link_to_function name do |page|
online_score_url = render(:partial => 'online_score_url_fields', :f => form )
page << %{
$('.links').append("#{ escape_javascript online_score_url }");
}
end
end
Проблема в том, что f
кажется неопределенным в партиале. Я ожидаю, что это как-то связано со строкой <% f.fields_for :url do |b| %>
, которая, на мой взгляд, не выполняется с помощью динамического добавления. Но я действительно не знаю, как исправить. Думаю, мне нужна альтернатива методу form_for
? Как это сделать?
Я предполагаю, что мой главный вопрос: как мне перебирать массив контролируемым образом и для каждого элемента создавать набор форм ввода, как в частичном, И иметь возможность «добавлять» одну или несколько динамически?
Спасибо за ваше время.