Допустим, у вас есть ресурс Invoice, и каждый счет-фактура имеет вложенные ресурсы InvoiceLine, то есть очень общий вложенный шаблон ресурса.Вложенные маршруты RESTful в Rails: как мне организовать свои представления?
Теперь, где следует помещать представление для отображения каждой отдельной строки счета-фактуры в виде строки внутри счета-фактуры? Должны ли строки счетов быть представлены как частичные под invoices/_line.html.erb
, или они должны получить свой собственный полноценный вид под invoices_lines/show.html.erb
? Обычно первый был бы очевидным выбором, но когда вы добавляете функциональность AJAX (для добавления и редактирования строк в режиме просмотра счетов), все становится сложнее.
Я нахожусь на самом деле, борясь с этим на регулярной основе, и я не уверен в правильном способе борьбы с ним.
Вот что я имею в виду:
успокоительной маршрут для этого, вероятно, выглядеть следующим образом:
map.resoures :invoices do |invoice|
invoice.resources :lines, :controller => :invoice_lines
end
Стандартная структура папок для взглядов:
app/
views/
invoices/
invoice_lines/
Теперь, когда вы делаете весь счет-фактуру со всеми его линиями, мой наклон будет заключаться в том, чтобы каждая строка была в _line.html.erb
частичной под invoices/
. Но тогда, когда я хочу добавить некоторые функциональные возможности AJAX для добавления и редактирования строк, PUT и POST будут перенаправлены в контроллер строк счетов, поэтому строки строк не должны отображаться стандартным show.html.erb
видом под invoice_lines.erb
?
Так должны мои взгляды выглядеть следующим образом:
app/
views/
invoices/
index.html.erb
show.html.erb
_line.html.erb
invoice_lines/
Или так:
app/
views/
invoices/
index.html.erb
show.html.erb
invoice_lines/
index.html.erb
show.html.erb
Я застрял между имея InvoiceLinesController оказывать свой ответ на AJAX запросов с использованием частичного в invoices/_line.html.erb
, или я могу поместить код шаблона строки строки в invoice_lines/show.html.erb
и иметь invoices/show.html.erb
визуализировать отдельные строки в качестве компонента или запрос AJAX индексу InvoiceLinesController #.
Ни одна альтернатива не чувствует себя хорошо. Какие-нибудь предложения по лучшей практике здесь?
Похоже, что контроллер линий счетов должен иметь собственный набор представлений при визуализации в контексте счета-фактуры, но у Rails действительно нет очевидного положения для «контекстуализированных» представлений.
Не ожидал такой оглушительной тишины. Разве я не достаточно ясен, или все остальные тоже не понимают этого? –