Я делаю проект, для которого у меня есть класс online_score
, который имеет в качестве одного из своих атрибутов массив с именем url
из online_score_url
объектов. То, что я сделал до сих пор, заключается в следующем.
просмотров / online_score / новый:
<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>
просмотров / 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
объектов, которые я пытаюсь сделать с JQuery. Я пытаюсь сделать это путем рендеринга частичного следующим образом:
хелперы / 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
? Как это сделать?
Я предполагаю, что мой главный вопрос: как мне перебирать массив контролируемым образом, и для каждого элемента создавать набор форм ввода, как в частичном И, чтобы иметь возможность «добавлять» одну или несколько динамически?
Спасибо за ваше время.