Я разрабатываю приложение простых рельсов для собственного использования в учебных целях, и я пытаюсь обрабатывать 2 модели в 1 форме. Я следил за примером в главе 13 Advanced Rails Recipes и получил его с несколькими простыми модификациями для моих собственных целей.Нужна помощь в модификации нескольких примеров моделей из передовых релейных рецептов book
2 модели у меня есть счет-фактура и номер счета-фактуры. Каждый счет-фактура может иметь несколько номеров счетов-фактур. Я хочу, чтобы каждый счет-фактура имел по крайней мере 1 номер телефона, связанный с ним. Пример в книге помещает ссылку «удалить» рядом с каждым номером телефона (задачи в книге). Я хочу убедиться, что у самого последнего номера телефона нет ссылки для удаления рядом с ним, но я не могу понять, как это сделать. Частичный шаблон, который выводит каждую строку списка телефонных номеров в счете-фактуре, выглядит следующим образом:
<div class="invoice_phone_number">
<% new_or_existing = invoice_phone_number.new_record? ? 'new' : 'existing' %>
<% prefix = "invoice[#{new_or_existing}_invoice_phone_number_attributes][]" %>
<% fields_for prefix, invoice_phone_number do |invoice_form| -%>
<%= invoice_form.select :phone_type, %w{ home work mobile fax } %>
<%= invoice_form.text_field :phone_number %>
<%= link_to_function "remove", "$(this).up('.invoice_phone_number').remove()" %>
<% end -%>
</div>
Теперь, если я мог определить, когда первый номер телефона, вырабатываемый я мог бы поставить условие на link_to_function поэтому не выполняется. Это частично решило бы мою проблему и было бы удовлетворительным, хотя это означало бы, что если бы я действительно хотел, скажем, удалить первый номер телефона и сохранить второй, мне пришлось бы немного перетасовать.
Идеальный способ сделать это, предположительно, в браузере с помощью javascript, но я понятия не имею, как подойти к этому. Мне нужно было бы спрятать ссылку «удалить», когда был только один, и показать все ссылки «удалить», когда их больше одного. Функциональность метода .insert_html, которая используется в ссылке «добавить номер телефона», кажется недостаточной для этого.
Я не прошу пошаговую инструкцию для этого (на самом деле я бы предпочел не получать его - я хочу это понять), но есть ли у кого-нибудь какие-то предложения о том, с чего начать с этой проблемой?
Спасибо.
О, хорошо, не знал этого! – Veger
Спасибо, немного возиться, у меня это работает.Похоже, очень полезный метод, который я смогу использовать в другом месте. Это хорошая временная проблема для моей проблемы, но она не касается вопроса о том, чтобы оставить первый номер телефона un-delete-able (который поражает меня как-то для решения в javascript). Спасибо хоть. – brad